Newer
Older
from dataclasses import dataclass
from typing import Optional
@dataclass

Michał Pogoda
committed
class Detection:
def __init__(self, type_name: str) -> None:
self._type_name = type_name
def __hash__(self) -> int:
return tuple(self.__dict__.values()).__hash__()
class MorphosyntacticInfoMixin:
def __init__(self, morpho_tag: str, *args, **kwargs) -> None:
super().__init__(*args, **kwargs)
self._morpho_tag = morpho_tag
@property
def morpho_tag(self) -> str:
return self._morpho_tag

Michał Pogoda
committed
class NameDetection(MorphosyntacticInfoMixin, Detection):
def __init__(self, morpho_tag: Optional[str] = None) -> None:
super().__init__(morpho_tag=morpho_tag, type_name="name")

Michał Pogoda
committed
class SurnameDetection(MorphosyntacticInfoMixin, Detection):
def __init__(self, morpho_tag: Optional[str] = None) -> None:
super().__init__(morpho_tag=morpho_tag, type_name="surname")

Michał Pogoda
committed
class StreetNameDetection(MorphosyntacticInfoMixin, Detection):
def __init__(self, morpho_tag: Optional[str] = None) -> None:
super().__init__(morpho_tag=morpho_tag, type_name="street_name")

Michał Pogoda
committed
class CityDetection(MorphosyntacticInfoMixin, Detection):
def __init__(self, morpho_tag: Optional[str] = None) -> None:
super().__init__(morpho_tag=morpho_tag, type_name="city")

Michał Pogoda
committed
class CountryDetection(MorphosyntacticInfoMixin, Detection):
def __init__(self, morpho_tag: Optional[str] = None) -> None:
super().__init__(morpho_tag=morpho_tag, type_name="country")

Michał Pogoda
committed
class PhoneNumberDetection(Detection):
def __init__(self) -> None:
super().__init__("phone_number")

Michał Pogoda
committed
class UrlDetection(Detection):
def __init__(self) -> None:
super().__init__("url")

Michał Pogoda
committed
class UserDetection(Detection):
def __init__(self) -> None:
super().__init__("user")

Michał Pogoda
committed
class EmailDetection(Detection):
def __init__(self) -> None:
super().__init__("email")

Michał Pogoda
committed
class TINDetection(Detection): # Tax Identification Number
def __init__(self) -> None:
super().__init__("tin")

Michał Pogoda
committed
class KRSDetection(Detection): # National Court Register
def __init__(self) -> None:
super().__init__("krs")

Michał Pogoda
committed
class OtherDetection(Detection): # Non standard entity
def __init__(self) -> None:
super().__init__("other")