# Path: mimesis/providers/generic.py
# class Generic(BaseProvider):
#     """Class which contain all providers at one."""
# 
#     _DEFAULT_PROVIDERS = (
#         Address,
#         BinaryFile,
#         Finance,
#         Choice,
#         Code,
#         Choice,
#         Datetime,
#         Development,
#         File,
#         Food,
#         Hardware,
#         Internet,
#         Numeric,
#         Path,
#         Payment,
#         Person,
#         Science,
#         Text,
#         Transport,
#         Cryptographic,
#     )
# 
#     def __init__(self, locale: Locale = Locale.DEFAULT, seed: Seed = None) -> None:
#         """Initialize attributes lazily."""
#         super().__init__(seed=seed)
#         self.locale = locale
# 
#         for provider in self._DEFAULT_PROVIDERS:
#             name = getattr(provider.Meta, "name")  # type: ignore
# 
#             # Check if a provider is locale-dependent.
#             if issubclass(provider, BaseDataProvider):
#                 setattr(self, f"_{name}", provider)
#             elif issubclass(provider, BaseProvider):
#                 setattr(self, name, provider(seed=self.seed))
# 
#     class Meta:
#         """Class for metadata."""
# 
#         name: Final[str] = "generic"
# 
#     def __getattr__(self, attrname: str) -> Any:
#         """Get attribute without underscore.
# 
#         :param attrname: Attribute name.
#         :return: An attribute.
#         """
#         attribute = object.__getattribute__(self, "_" + attrname)
#         if attribute and callable(attribute):
#             self.__dict__[attrname] = attribute(
#                 self.locale,
#                 self.seed,
#             )
#             return self.__dict__[attrname]
# 
#     def __dir__(self) -> List[str]:
#         """Available data providers.
# 
#         The list of result will be used in AbstractField to
#         determine method's class.
# 
#         :return: List of attributes.
#         """
#         attributes = []
#         exclude = BaseProvider().__dict__.keys()
# 
#         for a in self.__dict__:
#             if a not in exclude:
#                 if a.startswith("_"):
#                     attribute = a.replace("_", "", 1)
#                     attributes.append(attribute)
#                 else:
#                     attributes.append(a)
#         return attributes
# 
#     def reseed(self, seed: Seed = None) -> None:
#         """Reseed the internal random generator.
# 
#         Overrides method `BaseProvider.reseed()`.
# 
#         :param seed: Seed for random.
#         """
#         # Ensure that we reseed the random generator on Generic itself.
#         super().reseed(seed)
# 
#         for attr in self.__dir__():
#             try:
#                 provider = getattr(self, attr)
#                 provider.reseed(seed)
#             except AttributeError:
#                 continue
# 
#     def add_provider(self, cls: Type[BaseProvider], **kwargs: Any) -> None:
#         """Add a custom provider to Generic() object.
# 
#         :param cls: Custom provider.
#         :return: None
#         :raises TypeError: if cls is not class or is not a subclass
#             of BaseProvider.
#         """
#         if inspect.isclass(cls):
#             if not issubclass(cls, BaseProvider):
#                 raise TypeError(
#                     "The provider must be a "
#                     "subclass of mimesis.providers.BaseProvider"
#                 )
#             try:
#                 name = cls.Meta.name  # type: ignore
#             except AttributeError:
#                 name = cls.__name__.lower()
# 
#             if "seed" in kwargs:
#                 kwargs.pop("seed")
# 
#             setattr(self, name, cls(seed=self.seed, **kwargs))
#         else:
#             raise TypeError("The provider must be a class")
# 
#     def add_providers(self, *providers: Type[BaseProvider]) -> None:
#         """Add a lot of custom providers to Generic() object.
# 
#         :param providers: Custom providers.
#         :return: None
#         """
#         for provider in providers:
#             self.add_provider(provider)
# 
#     def __str__(self) -> str:
#         """Human-readable representation of locale."""
#         return f"{self.__class__.__name__} <{self.locale}>"
# 
# Path: mimesis/types.py
# JSON = Dict[str, Any]


import csv
import json
import pickle
import warnings
from typing import Any, Callable, ClassVar, Iterator, List, Optional, Sequence
from mimesis.exceptions import FieldError, SchemaError
from mimesis.locales import Locale
from mimesis.providers.generic import Generic
from mimesis.types import JSON, SchemaType, Seed
            return result
        except KeyError:
            raise FieldError(name)

    def __str__(self) -> str:
        return f"{self.__class__.__name__} <{self._gen.locale}>"


class Field(BaseField):
    """Greedy field.

    The field whcih evaluates immediately.

    Example:
        >>> _ = Field()
        >>> _('username')
        Dogtag_1836
    """

    def __call__(self, *args: Any, **kwargs: Any) -> Any:
        return self.perform(*args, **kwargs)


class Schema:
    """Class which return list of filled schemas."""

    _MIN_ITERATIONS_VALUE: ClassVar[int] = 1

    __slots__ = ("_schema",)


# Path: mimesis/providers/generic.py
# class Generic(BaseProvider):
#     """Class which contain all providers at one."""
# 
#     _DEFAULT_PROVIDERS = (
#         Address,
#         BinaryFile,
#         Finance,
#         Choice,
#         Code,
#         Choice,
#         Datetime,
#         Development,
#         File,
#         Food,
#         Hardware,
#         Internet,
#         Numeric,
#         Path,
#         Payment,
#         Person,
#         Science,
#         Text,
#         Transport,
#         Cryptographic,
#     )
# 
#     def __init__(self, locale: Locale = Locale.DEFAULT, seed: Seed = None) -> None:
#         """Initialize attributes lazily."""
#         super().__init__(seed=seed)
#         self.locale = locale
# 
#         for provider in self._DEFAULT_PROVIDERS:
#             name = getattr(provider.Meta, "name")  # type: ignore
# 
#             # Check if a provider is locale-dependent.
#             if issubclass(provider, BaseDataProvider):
#                 setattr(self, f"_{name}", provider)
#             elif issubclass(provider, BaseProvider):
#                 setattr(self, name, provider(seed=self.seed))
# 
#     class Meta:
#         """Class for metadata."""
# 
#         name: Final[str] = "generic"
# 
#     def __getattr__(self, attrname: str) -> Any:
#         """Get attribute without underscore.
# 
#         :param attrname: Attribute name.
#         :return: An attribute.
#         """
#         attribute = object.__getattribute__(self, "_" + attrname)
#         if attribute and callable(attribute):
#             self.__dict__[attrname] = attribute(
#                 self.locale,
#                 self.seed,
#             )
#             return self.__dict__[attrname]
# 
#     def __dir__(self) -> List[str]:
#         """Available data providers.
# 
#         The list of result will be used in AbstractField to
#         determine method's class.
# 
#         :return: List of attributes.
#         """
#         attributes = []
#         exclude = BaseProvider().__dict__.keys()
# 
#         for a in self.__dict__:
#             if a not in exclude:
#                 if a.startswith("_"):
#                     attribute = a.replace("_", "", 1)
#                     attributes.append(attribute)
#                 else:
#                     attributes.append(a)
#         return attributes
# 
#     def reseed(self, seed: Seed = None) -> None:
#         """Reseed the internal random generator.
# 
#         Overrides method `BaseProvider.reseed()`.
# 
#         :param seed: Seed for random.
#         """
#         # Ensure that we reseed the random generator on Generic itself.
#         super().reseed(seed)
# 
#         for attr in self.__dir__():
#             try:
#                 provider = getattr(self, attr)
#                 provider.reseed(seed)
#             except AttributeError:
#                 continue
# 
#     def add_provider(self, cls: Type[BaseProvider], **kwargs: Any) -> None:
#         """Add a custom provider to Generic() object.
# 
#         :param cls: Custom provider.
#         :return: None
#         :raises TypeError: if cls is not class or is not a subclass
#             of BaseProvider.
#         """
#         if inspect.isclass(cls):
#             if not issubclass(cls, BaseProvider):
#                 raise TypeError(
#                     "The provider must be a "
#                     "subclass of mimesis.providers.BaseProvider"
#                 )
#             try:
#                 name = cls.Meta.name  # type: ignore
#             except AttributeError:
#                 name = cls.__name__.lower()
# 
#             if "seed" in kwargs:
#                 kwargs.pop("seed")
# 
#             setattr(self, name, cls(seed=self.seed, **kwargs))
#         else:
#             raise TypeError("The provider must be a class")
# 
#     def add_providers(self, *providers: Type[BaseProvider]) -> None:
#         """Add a lot of custom providers to Generic() object.
# 
#         :param providers: Custom providers.
#         :return: None
#         """
#         for provider in providers:
#             self.add_provider(provider)
# 
#     def __str__(self) -> str:
#         """Human-readable representation of locale."""
#         return f"{self.__class__.__name__} <{self.locale}>"
# 
# Path: mimesis/types.py
# JSON = Dict[str, Any]


# Path: mimesis/schema.py
import csv
import json
import pickle
import warnings
from typing import Any, Callable, ClassVar, Iterator, List, Optional, Sequence
from mimesis.exceptions import FieldError, SchemaError
from mimesis.locales import Locale
from mimesis.providers.generic import Generic
from mimesis.types import JSON, SchemaType, Seed

            return result
        except KeyError:
            raise FieldError(name)

    def __str__(self) -> str:
        return f"{self.__class__.__name__} <{self._gen.locale}>"


class Field(BaseField):
    """Greedy field.

    The field whcih evaluates immediately.

    Example:
        >>> _ = Field()
        >>> _('username')
        Dogtag_1836
    """

    def __call__(self, *args: Any, **kwargs: Any) -> Any:
        return self.perform(*args, **kwargs)


class Schema:
    """Class which return list of filled schemas."""

    _MIN_ITERATIONS_VALUE: ClassVar[int] = 1

    __slots__ = ("_schema",)


    def __init__(self, schema: SchemaType) -> None: