diff --git a/CHANGELOG.rst b/CHANGELOG.rst index aa55c2dbc..362d2be20 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -4,7 +4,7 @@ Version 3.2.0 **Added**: - Added built-in provider DenmarkSpecProvider - +- Added meta classes for providers for internal usage (see `#619 `_.) **Fixed**: diff --git a/mimesis/providers/address.py b/mimesis/providers/address.py index cd537e682..72d188f50 100755 --- a/mimesis/providers/address.py +++ b/mimesis/providers/address.py @@ -36,6 +36,11 @@ def __init__(self, *args, **kwargs) -> None: self._datafile = 'address.json' self.pull(self._datafile) + class Meta: + """Class for metadata.""" + + name = 'address' + @staticmethod def _dd_to_dms(num: float, _type: str) -> str: """Convert decimal number to DMS format. diff --git a/mimesis/providers/business.py b/mimesis/providers/business.py index 0cbeecca0..70fed20c7 100755 --- a/mimesis/providers/business.py +++ b/mimesis/providers/business.py @@ -25,6 +25,11 @@ def __init__(self, *args, **kwargs): self._datafile = 'business.json' self.pull(self._datafile) + class Meta: + """Class for metadata.""" + + name = 'business' + def company(self) -> str: """Get a random company name. diff --git a/mimesis/providers/clothing.py b/mimesis/providers/clothing.py index b532a5bbc..f902341ed 100755 --- a/mimesis/providers/clothing.py +++ b/mimesis/providers/clothing.py @@ -10,6 +10,11 @@ class Clothing(BaseProvider): """Class for generate data related to clothing.""" + class Meta: + """Class for metadata.""" + + name = 'clothing' + def international_size(self) -> str: """Get a random size in international format. diff --git a/mimesis/providers/code.py b/mimesis/providers/code.py index f3683d3e0..2c58a9e77 100755 --- a/mimesis/providers/code.py +++ b/mimesis/providers/code.py @@ -28,6 +28,11 @@ def __init__(self, *args, **kwargs): """ super().__init__(*args, **kwargs) + class Meta: + """Class for metadata.""" + + name = 'code' + def locale_code(self) -> str: """Get a random locale code (MS-LCID). @@ -46,7 +51,8 @@ def issn(self, mask: str = '####-####') -> str: """ return self.random.custom_code(mask=mask) - def isbn(self, fmt: Optional[ISBNFormat] = None, locale: str = 'en') -> str: + def isbn(self, fmt: Optional[ISBNFormat] = None, + locale: str = 'en') -> str: """Generate ISBN for current locale. To change ISBN format, pass parameter ``fmt`` with needed value of diff --git a/mimesis/providers/cryptographic.py b/mimesis/providers/cryptographic.py index 9dd43ee3e..337510785 100755 --- a/mimesis/providers/cryptographic.py +++ b/mimesis/providers/cryptographic.py @@ -24,6 +24,11 @@ def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) self.__words = Text('en')._data.get('words', {}) + class Meta: + """Class for metadata.""" + + name = 'cryptographic' + def uuid(self, version: int = None) -> str: """Generate random UUID. diff --git a/mimesis/providers/date.py b/mimesis/providers/date.py index 218ae4c48..d80adecde 100755 --- a/mimesis/providers/date.py +++ b/mimesis/providers/date.py @@ -26,6 +26,11 @@ def __init__(self, *args, **kwargs): self._datafile = 'datetime.json' self.pull(self._datafile) + class Meta: + """Class for metadata.""" + + name = 'datetime' + @staticmethod def bulk_create_datetimes(date_start: DateTime, date_end: DateTime, **kwargs) -> List[DateTime]: diff --git a/mimesis/providers/development.py b/mimesis/providers/development.py index f85452b96..9c3131989 100755 --- a/mimesis/providers/development.py +++ b/mimesis/providers/development.py @@ -11,6 +11,11 @@ class Development(BaseProvider): """Class for getting fake data for Developers.""" + class Meta: + """Class for metadata.""" + + name = 'development' + def software_license(self) -> str: """Get a random software license. diff --git a/mimesis/providers/file.py b/mimesis/providers/file.py index c503ffb16..4c526b26e 100755 --- a/mimesis/providers/file.py +++ b/mimesis/providers/file.py @@ -25,6 +25,11 @@ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.__text = Text('en', seed=self.seed) + class Meta: + """Class for metadata.""" + + name = 'file' + def __sub(self, string: str = '') -> str: """Replace spaces in string. diff --git a/mimesis/providers/food.py b/mimesis/providers/food.py index 3a6cb1bcd..1afc89e00 100755 --- a/mimesis/providers/food.py +++ b/mimesis/providers/food.py @@ -19,6 +19,11 @@ def __init__(self, *args, **kwargs): self._datafile = 'food.json' self.pull(self._datafile) + class Meta: + """Class for metadata.""" + + name = 'food' + def _choice_from(self, key: str) -> str: """Choice random element.""" data = self._data[key] diff --git a/mimesis/providers/generic.py b/mimesis/providers/generic.py index 73a5ddd54..2105280fc 100755 --- a/mimesis/providers/generic.py +++ b/mimesis/providers/generic.py @@ -63,6 +63,11 @@ def __init__(self, *args, **kwargs) -> None: self.structure = Structure(seed=self.seed) self.choice = Choice(seed=self.seed) + class Meta: + """Class for metadata.""" + + name = 'generic' + def __getattr__(self, attrname: str) -> Any: """Get attribute without underscore. diff --git a/mimesis/providers/hardware.py b/mimesis/providers/hardware.py index be3835edf..8ec7763fd 100755 --- a/mimesis/providers/hardware.py +++ b/mimesis/providers/hardware.py @@ -24,6 +24,11 @@ class Hardware(BaseProvider): """Class for generate data related to hardware.""" + class Meta: + """Class for metadata.""" + + name = 'hardware' + def resolution(self) -> str: """Get a random screen resolution. diff --git a/mimesis/providers/internet.py b/mimesis/providers/internet.py index 5f21b8552..2226d6162 100755 --- a/mimesis/providers/internet.py +++ b/mimesis/providers/internet.py @@ -38,6 +38,11 @@ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.__file = File(seed=self.seed) + class Meta: + """Class for metadata.""" + + name = 'internet' + def content_type(self, mime_type: Optional[MimeType] = None) -> str: """Get a random HTTP content type. diff --git a/mimesis/providers/numbers.py b/mimesis/providers/numbers.py index d534f1ef5..74e7d0c8b 100755 --- a/mimesis/providers/numbers.py +++ b/mimesis/providers/numbers.py @@ -12,6 +12,11 @@ class Numbers(BaseProvider): """Class for generating numbers.""" + class Meta: + """Class for metadata.""" + + name = 'numbers' + def floats(self, n: int = 2) -> List[float]: """Generate a list of random float numbers. diff --git a/mimesis/providers/path.py b/mimesis/providers/path.py index abe74990c..e99983216 100755 --- a/mimesis/providers/path.py +++ b/mimesis/providers/path.py @@ -33,6 +33,11 @@ def __init__(self, platform: str = sys.platform, *args, **kwargs) -> None: else PurePosixPath() self._pathlib_home /= PLATFORMS[platform]['home'] + class Meta: + """Class for metadata.""" + + name = 'path' + def root(self) -> str: """Generate a root dir path. diff --git a/mimesis/providers/payment.py b/mimesis/providers/payment.py index bf2718873..e89f116ec 100644 --- a/mimesis/providers/payment.py +++ b/mimesis/providers/payment.py @@ -29,6 +29,11 @@ def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) self.__person = Person('en', seed=self.seed) + class Meta: + """Class for metadata.""" + + name = 'payment' + def cid(self) -> int: """Generate a random CID. diff --git a/mimesis/providers/person.py b/mimesis/providers/person.py index dc43b01cd..e04c85699 100755 --- a/mimesis/providers/person.py +++ b/mimesis/providers/person.py @@ -40,6 +40,11 @@ def __init__(self, *args, **kwargs) -> None: 'age': 0, } + class Meta: + """Class for metadata.""" + + name = 'person' + def age(self, minimum: int = 16, maximum: int = 66) -> int: """Get a random integer value. @@ -258,7 +263,8 @@ def email(self, domains: Union[tuple, list] = None) -> str: domain=domain, ) - def social_media_profile(self, site: Optional[SocialNetwork] = None) -> str: + def social_media_profile(self, + site: Optional[SocialNetwork] = None) -> str: """Generate profile for random social network. :return: Profile in some network. diff --git a/mimesis/providers/science.py b/mimesis/providers/science.py index 2da27eca9..1b2a6c664 100755 --- a/mimesis/providers/science.py +++ b/mimesis/providers/science.py @@ -23,6 +23,11 @@ def __init__(self, *args, **kwargs): self._datafile = 'science.json' self.pull(self._datafile) + class Meta: + """Class for metadata.""" + + name = 'science' + def math_formula(self) -> str: """Get a random mathematical formula. diff --git a/mimesis/providers/structure.py b/mimesis/providers/structure.py index 05d614999..8c3c67997 100755 --- a/mimesis/providers/structure.py +++ b/mimesis/providers/structure.py @@ -29,6 +29,11 @@ def __init__(self, *args, **kwargs) -> None: self.__inet = Internet(seed=self.seed) self.__text = Text('en', seed=self.seed) + class Meta: + """Class for metadata.""" + + name = 'structure' + def css(self) -> str: """Generate a random snippet of CSS. diff --git a/mimesis/providers/text.py b/mimesis/providers/text.py index 7f216935e..166dc2299 100755 --- a/mimesis/providers/text.py +++ b/mimesis/providers/text.py @@ -23,6 +23,11 @@ def __init__(self, *args, **kwargs): self._datafile = 'text.json' self.pull(self._datafile) + class Meta: + """Class for metadata.""" + + name = 'text' + def alphabet(self, lower_case: bool = False) -> list: """Get an alphabet for current locale. diff --git a/mimesis/providers/transport.py b/mimesis/providers/transport.py index b728a64c9..47028460a 100755 --- a/mimesis/providers/transport.py +++ b/mimesis/providers/transport.py @@ -21,6 +21,11 @@ def __init__(self, *args, **kwargs) -> None: """ super().__init__(*args, **kwargs) + class Meta: + """Class for metadata.""" + + name = 'transport' + def truck(self, model_mask: str = '#### @@') -> str: """Generate a truck model. diff --git a/mimesis/providers/units.py b/mimesis/providers/units.py index 697b58c6c..b067347a3 100755 --- a/mimesis/providers/units.py +++ b/mimesis/providers/units.py @@ -14,6 +14,11 @@ class UnitSystem(BaseProvider): """Class for generating data related to units.""" + class Meta: + """Class for metadata.""" + + name = 'unit_system' + def unit(self, name: Optional[UnitName] = None, symbol=False): """Get unit name.