-------------
**Warning**: This release contains some breaking changes in API.
**Python compatibility**:
Mimesis 5.0 supports Python 3.8, 3.9, and 3.10.
The Mimesis 4.1.3 is the last to support Python 3.6 and 3.7.
**Reworked**:
- A method ``Person().username()``, now it accepts a parameters ``mask`` and ``drange``.
**Renamed**:
- Renamed ``enums.UnitName`` to ``enums.MeasureUnit``
- Renamed ``enums.PrefixSign`` to ``enums.MetricPrefixSign``
- Renamed ``Business()`` to ``Finance()``
- Renamed ``BaseDataProvider.pull`` to ``BaseDataProvider._load_datafile``
- Renamed ``mimesis.providers.numbers.Numbers`` to ``mimesis.providers.numeric.Numeric``
- Renamed ``fmt`` argument of ``Address().country_code()`` to ``code``
**Fixed**:
- Fix inheritance issues for ``Generic``, now it inherits ``BaseProvider`` instead of ``BaseDataProvider``
- Fix locale-independent provider to make them accepts keyword-only arguments
- Fix DenmarkSpecProvider CPR to generate valid CPR numbers.
- Fix ``.cvv()`` to make it return string
- Fix ``.cid()`` to make it return string
- Fix ``.price()`` of ``Finance`` to make it return float.
**Added**:
- Added method ``hostname()`` for ``Internet`` data provider
- Added support of ``**kwargs`` for a method ``add_provider`` of ``Generic()`` provider
- Added enum ``Locale`` to ``mimesis.enums`` and ``mimesis.locales``
- Added ``measure_unit`` and ``metric_prefix`` methods for the ``Science`` provider.
- Added ``.iterator()`` for ``schema.Schema``
- Added methods ``.slug()`` and ``ip_v4_with_port()`` for ``Internet()``
- Added ``increment()`` method for ``Numbers()``
- Added methods ``.stock_ticker()``, ``.stock_name()`` and ``.stock_exchange()`` for ``Finance()``
- Added ``BinaryFile`` data provider which provides binary data files, such as ``.mp3``, ``.mp4``, ``.png``, etc.
**Removed**:
- Removed module ``decorators``. Use ``shortcuts.romanize`` to romanize Cyrillic strings.
- Removed ``as_object`` parameter for ``.uuid()``. Now it returns string by default, if you need uuid4 object then use ``.uuid_object()``
- Removed invalid names and surnames from ``person.json`` for ``ru`` locale
- Removed data provider ``UnitSystem()``, use ``Science()`` instead
- Removed data provider ``Structure()``, use ``schema.Schema`` instead
- Removed builtin provider ``GermanySpecProvider``
- Removed data provider ``Clothing``, use ``Numbers`` instead
- Removed method ``copyright()`` of ``Finance()``
- Removed method ``network_protocol()`` of ``Internet()``
- Removed params ``with_port`` and ``port_range`` for ``ip_v4()`` of ``Internet()``. Use ``ip_v4_with_port()`` instead.
- Removed methods ``sexual_orientation``, ``social_media_profile`` and ``avatar`` of the ``Person()`` provider.
- Removed a bunch of useless custom exceptions and replaced them with ``FieldError``.
- Removed completely useless ``chemical_element`` and ``atomic_number`` methods of ``Science`` data provider and made it locale-independent.