NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2829 most downloaded on PyPI
Mimesis: Fake Data Generator.
Last release 11 days ago
23 Sep 2026
Ships unpredictably
gaps range from 9 days to 1.3 years
Most releases are documented
notes for 51 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
65 releases · first in 2017
Nothing published for this version
Removed deprecated low value APIs :
Removed deprecated low value APIs:
Person.political_views(), Person.worldview(), and Person.views_on()Datetime.century()Payment.paypal()Science.measure_unit() and Science.metric_prefix()MeasureUnit and MetricPrefixSignInternet.stock_image_url()This release introduces a new SchemaBuilder for generating related fake data, replacing the legacy schema system. It also includes documentation impro
One column per quarter.
This release introduces a new SchemaBuilder for generating related fake data, replacing the legacy schema system. It also includes documentation improvements, updates to the documentation site, improved linting with Ruff, additional tests, and various code cleanup and internal improvements.
See https://mimesis.name/master/schema.html#relational-schemas
This release introduces a new schema generation system for relational data.
Breaking changes:
Added SchemaBuilder in mimesis.builder.
Removed the legacy mimesis.schema.SchemaBuilder.
Removed SchemaContext.pick_from() and SchemaContext.ref(). Existing schemas must be migrated to the new API.
SchemaBuilder:
Supports lazy fields, record references, nested schemas, and automatic dependency resolution.
Includes reseed(), clear(), and reset() helpers.
Available via from mimesis import SchemaBuilder.
Added support for E.164 phone number formatting to the Person provider’s phone_number() ( #1690 by @rodrigobnogueira )
Person provider’s phone_number() (#1690 by @rodrigobnogueira)secondary_address() method to the Address provider (#1691 by @rodrigobnogueira)Added support for E.164 phone number formatting to the Person provider's phone_number() method.
Added secondary_address() method to the Address provider.
Add SHA-3 family hash algorithms (SHA3_224, SHA3_256, SHA3_384, SHA3_512, SHAKE128, SHAKE256) to the Algorithm enum.
Add future_date(), future_datetime(), past_date() and past_datetime() methods for the Datetime provider. See (#775).
Added many key functions for various transformations. See mimesis/keys.py for the complete list.
mimesis/keys.py for the complete list.pytest plugin from the package. Use project-specific fixtures and the Field class instead.builtins module from the package. Use custom field handlers instead.Cryptographic provider now uses a seedable random number generator instead of the secrets module. See #1656.jwt, api_key, and certificate_fingerprint methods to the Cryptographic provider.SchemaBuilder for generating relational data.ip_v4_cidr(), ip_v6_cidr(), and cloud_region() methods to the Internet provider.Added many key functions for various transformations.
Removed the pytest plugin from the package. Use project-specific fixtures and the Field class instead.
Removed the builtins module from the package. Use custom field handlers.
The Cryptographic provider now uses a seedable random number generator instead of the secrets module. See (#1656).
Add jwt, api_key and certificate_fingerprint methods for the Cryptographic provider.
Add SchemaBuilder for generating relational data.
Add ip_v4_cidr(), ip_v6_cidr() and cloud_region() methods for the Internet provider.
Added support for Arabic language in various Arabic-speaking countries.
Mimesis now supports data for following countries:
Special thanks for @linuxscout, @yah04dev, @WatheqAlshowaiter, @zayedalsaidi.
Added mimesis.enums.DurationUnit enum.
mimesis.enums.DurationUnit enum..duration() method for Datetime provider to generate random durations.Fix file permissions in Windows.
Removed unsafe and inaproppriate words from datasets. See #1511
Fix file permissions in Windows.
Minor fixes in factory_boy plugin.
factory_boy plugin.Integrated mimesis-factory into Mimesis itself. See mimesis-factory#246 and mimesis#1494 for more information.
mimesis-factory into Mimesis itself. See mimesis-factory#246 and mimesis#1494 for more information.Fixed street suffixes for locale Locale.HR .
Locale.HR.pytest-mimesis a part of Mimesis itself. See #1473Removed the age() and work_experience() methods from the Person provider. Use person.random.randint() instead.
Added Croatian locale support (Locale.HR). Great appreciation to @CerealKiller0807 _ for this contribution.
Added Croatian locale support (Locale.HR). Great appreciation to @CerealKiller0807 for this contribution.
Nothing published for this version
Methods gender_code() and gender_symbol() have been added for the Person provider.
Methods gender_code() and gender_symbol() have been added for the Person provider.
The methods gender() and sex() no longer accept arguments like iso5218 and symbol. Please use gender_code() and gender_symbol() instead.
Added a stub for mimesis.providers.generic.py, enabling type hints for Generic.
Python 3.8 and 3.9 are no longer supported.
Python 3.8 and 3.9 are no longer supported.
Added support for field aliases. See the docs for more information.
Added the method calver for Development.
Added the method stage for Development.
Added the method country_emoji_flag for Address.
Removed the method hashtags from the Internet provider. Use the words method from the Text provider instead.
Removed the providers parameter for Field and Fieldset. Use custom field handlers instead.
Removed the parameters pre_release and calver for Development.version. Use the stage and calver methods instead.
Moved the method emoji from the Internet provider to the Text provider.
Moved the method dsn from the Development provider to the Internet provider.
The Text().emoji() method now supports the category parameter and EmojiCategory enum. It also returns an emoji instead of an emoji shortcut string.
Added the decorator @handle for Field and Fieldset to register custom fields.
Renamed register_field to register_handler for Field and Fieldset.
Renamed register_fields to register_handlers for Field and Fieldset.
Renamed unregister_field to unregister_handler for Field and Fieldset.
Renamed unregister_fields to unregister_handlers for Field and Fieldset.
Renamed unregister_all_fields to unregister_all_handlers for Field and Fieldset.
Nothing published for this version
Added support for registering custom fields for Schema. This allows you to use your own fields in schemas. See docs for more information.
Added:
Added support for registering custom fields for Schema. This allows you to use your own fields in schemas. See docs for more information.
Nothing published for this version
Added a new method system_quality_attribute() (and its alias ility()) for Development.
Added:
Added a new method system_quality_attribute() (and its alias ility()) for Development.
Added a new enum TimestampFormat for the timestamp() method.
Added:
Added a new enum TimestampFormat for the timestamp() method.
Updated:
The method timestamp() for Datetime() now expects one of the following timestamp formats: TimestampFormat.POSIX, TimestampFormat.RFC_3339, or TimestampFormat.ISO_8601.
The datetime() method now has default parameters start and end set to the current year.
Removed:
The method timestamp() no longer accepts the posix parameter.
romanize() is a key function now. See docs for more information.
Updated:
romanize() is a key function now. See docs for more information.
Removed:
Removed method swear_word() of Text(). This method is inappropriate and lacks practical utility.
This release contains some breaking changes in Schema's API.
Note
This release contains some breaking changes in Schema's API.
Updated:
Key functions now may accept additional random as a parameter. See docs for more information.
Removed:
The loop method for the Schema, which was considered deprecated and unsafe, has been removed.
The iterations parameter for all methods of Schema has been removed. Instead, you now have to specify the number of iterations on instantiation of Schema passing the iterations parameter.
The iterator method for Schema has been removed. Instead, you can now use an instance of Schema directly as an iterator.
The multiplication is no longer supported for Schema. Instead, you can use the iterations parameter on instantiation of Schema.
Added:
Add weighted_choice() method for Random(). See docs for more information.
Add module keys for generating key functions.
Fieldset() to generate a set of fields at once. See docs for more information.
Added
Fieldset() to generate a set of fields at once. See docs for more information.
bank() method for Finance().
default_country for Address(), which always returns the country associated with the current locale (i.e United States for en, Россия for ru).
Removed:
Removed parameter allow_random for country(). Now method returns random country by default.
pytest-randomly integration, not by default it will set the global seed for every provider and all fields. This can still be reseeded as usual.
Added
pytest-randomly integration, not by default it will set the global seed for every provider and all fields. This can still be reseeded as usual.
http_request_headers() and http_response_headers() methods for Internet provider. These methods return a dictionary of common headers.
reseed() method for Field.
Removed:
stock_image() method which required an active HTTP connection. Use stock_image_url instead.
Removed parameter model_mask for airplane()
Updated:
Actualized data
Removed outdated data
Removed:
Removed parameter model_mask for airplane()
Removed method truck() of Transport(), use menufacturer() instead.
Removed method cpu_model() of Hardware().
Improve random sampling performance.
Improve random sampling performance.
Make field support different delimiters for provider.method.
Make field support different delimiters for provider.method.
Fixed memory leak on using Field.
Fixed:
Fixed memory leak on using Field.
Optimizations:
Improved performance of _load_data().
Fixed ValidationFailure for Internet().uri().
Fixed:
Fixed ValidationFailure for Internet().uri().
Removed:
Removed support of port parameter in Internet().uri().
Version 5.6.0
Added:
Multiplication support for schemas. Now you can use * on the schema to specify the number of iterations. See docs for more information.
Method dsn() for Development()
Method public_dns() for Internet()
Nothing published for this version
Fixed infinite loop on using Datetime.bulk_create_datetimes().
Fixed:
Fixed infinite loop on using Datetime.bulk_create_datetimes().
Fixed some typing issues
Removed deprecated method image_placeholder() from Internet()
Fixed:
Fixed TypeError: 'Datetime' object is not callable error on using Field (See #1139).
Added:
Added items Algorithm.BLAKE2B and Algorithm.BLAKE2S.
Removed:
Removed deprecated method image_placeholder() from Internet()
Added method to_pickle(), to_json() and to_csv() for schema.Schema.
Added:
Added method to_pickle(), to_json() and to_csv() for schema.Schema.
Optimizations:
Significantly improved performance of shortcuts.romanize()
Use random.choices() to generate random strings instead of random.choice() for selecting individual characters. This can lead to a significant speed up, but will also change the reproducibility of values when upgrading to this version as the two methods use different algorithms.
Optimized Address.latitude(), Address.longitude(), and Address.coordinates() when passing dms=True.
Optimized Development.version().
Fixed:
Fix duplication of parameter name on using Internet.query_parameter() (See #1177).
Fix reseeding of the random generator of Generic. This was a regression in v5.1.0. (See #1150).
Development.version() now supports use of both the calver and pre_release flags together.
Providers now have an isolated random instance when using a seed of None.
Removed all params of mnemonic_phrase()
Removed:
Removed all params of mnemonic_phrase()
Added parameter region for Datetime().timezone() and enum object enums.TimezoneRegion
Added:
Added parameter region for Datetime().timezone() and enum object enums.TimezoneRegion
Fix mechanism of reseeding of the internal providers of Generic (See #1115 _).
Fixed:
Fix mechanism of reseeding of the internal providers of Generic (See #1115).
Removed:
Removed inappropriate words from mimesis.data.int.USERNAMES.
Warning: This release contains some breaking changes in API.
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.
Added py.typed file to the package
Added:
Added py.typed file to the package
Added Python 3.9 support
Fixed type hint issue for schema.Schema (#928 _)
Fix:
Fixed type hint issue for schema.Schema (#928)
Fixed issue with non-unique uuid
Fix:
Fixed issue with non-unique uuid
Removed the deprecated download_image() function from the shortcuts module, use your own custom downloader instead.
Added:
Added method manufacturer() for class Transport()
Added sk (Slovak) locale support
Added new parameter unique for method Person().email()
Added new parameter as_object for method Cryptographic().uuid()
Updated:
Updated parameter end for some methods of provider Datetime() (Fix #870)
Updated .price() to make it supported locales (Fix #875)
Rename:
Renamed decorators.romanized to decorators.romanize
Renamed Random.schoice to Random.generate_string
Renamed BaseDataProvider.pull to BaseDataProvider._pull
Removed:
Removed the deprecated download_image() function from the shortcuts module, use your own custom downloader instead.
Removed parameter version for method Cryptographic().uuid()
.. warning:: This release (4.0.0) contains some insignificant but breaking changes in API, please be careful.
Warning
This release (4.0.0) contains some insignificant but breaking changes in API, please be careful.
Added:
Added an alias first_name(*args, **kwargs) for the method Person().name()
Added an alias sex(*args, **kwargs) for the method Person().gender()
Added method randstr() for class Random()
Added method complexes() for the provider Numbers()
Added method matrix for the provider Numbers()
Added method integer_number() for the provider Numbers()
Added method float_number() for the provider Numbers()
Added method complex_number() for the provider Numbers()
Added method decimal_number() for the provider Numbers()
Added method ip_v4_object() and ip_v6_object for the provider Internet(). Now you can generate IP objects, not just strings.
Added new parameter port_range for method ip_v4()
Added new parameter separator for method Cryptographic().mnemonic_phrase()
Fixed:
Fixed issue with invalid email addresses on using custom domains without @ for Person().email()
Updated:
Updated names and surnames for locale ru
The floats() function in the Numbers provider now accepts arguments about the range of the generated float numbers and the rounding used. By default, it generates a list of n float numbers instead of a list of 10^n elements.
The argument length of the function integers is renamed to n.
Removed:
Removed the rating() method from the Numbers provider. It can be replaced with float_number().
Removed the primes() method from the Numbers provider.
Removed the digit() method from the Numbers provider. Use integer_number() instead.
Removed the between() method from the Numbers provider. Use integer_number() instead.
Removed the math_formula() method from the Science provider.
Removed rounding argument from floats(). Now it's precision.
country() from the Address() provider now by default returns the country name of the current locale.
Fixed:
country() from the Address() provider now by default returns the country name of the current locale.
Separated Europe and Asia continents in Italian locale.
Removed:
Removed duplicated names in the countries of et locale.
Added built-in provider DenmarkSpecProvider
Added:
Added built-in provider DenmarkSpecProvider
Added meta classes for providers for internal usage (see #621.)
Added support for custom templates in Person().username()
Added ItalianSpecProvider()
Fixed:
Support of seed for custom providers
currency_iso_code from the Business() provider now by default returns the currency code of the current locale.
Removed:
Removed multiple_choice() in the random module because it was unused and it could be replaced with random.choices.
Removed legacy method child_count() from provider Person()
Fixed UnsupportedField on using field choice, #619 _
Fixed:
Fixed UnsupportedField on using field choice, #619
.. warning:: This release (3.0.0) contains some breaking changes in API
Warning
This release (3.0.0) contains some breaking changes in API
Warning
In this release (3.0.0) we've reject support of Python 3.5
Added:
Added provider Choice()
Added method formatted_time() for Datetime() provider
Added method formatted_date() for Datetime() provider
Added method formatted_datetime() for Datetime() provider
Added support of timezones (optional) for Datetime().datetime()
Added method to bulk create datetime objects: Datetime().bulk_create_datetimes()
Added kpp for RussiaSpecProvider
Added PolandSpecProvider builtin data provider
Added context manager to temporarily overriding locale - BaseDataProvider.override_locale()
Added method token_urlsafe() for Cryptographic provider
Added 6k+ username words
Updated:
Updated documentation
Updated data for pl and fr
Updated SNILS algorithm for RussiaSpecProvider
Updated method Datetime().time() to return only datetime.time object
Updated method Datetime().date() to return only datetime.date object
Completely annotated all functions
Locale independent providers inherit BaseProvider instead of BaseDataProvider (it's mean that locale independent providers does not support parameter locale anymore)
Now you can add to Generic only providers which are subclasses of BaseProvider to ensure a single instance of random.Random() for all providers
Renamed:
Renamed provider ClothingSizes to Clothing, so now it can contain any data related to clothing, not sizes only
Renamed Science().dna() to Science().dna_sequence()
Renamed Science().rna() to Science().rna_sequence()
Renamed module helpers.py to random.py
Renamed module config.py to locales.py
Renamed module utils.py to shortcuts.py
Renamed Cryptographic().bytes() to Cryptographic.token_bytes()
Renamed Cryptographic().token() to Cryptographic.token_hex()
Removed:
Removed deprecated argument fmt for Datetime().date(), use Datetime().formatted_date() instead
Removed deprecated argument fmt for Datetime().time(), use Datetime().formatted_time() instead
Removed deprecated argument humanize for Datetime().datetime(), use Datetime().formatted_datetime() instead
Removed deprecated method Science.scientific_article()
Removed deprecated providers Games
Removed deprecated method Structure().json(), use schema.Schema() and schema.Field instead
Removed deprecated and useless method: Development().backend()
Removed deprecated and useless method: Development().frontend()
Removed deprecated and useless method: Development().version_control_system()
Removed deprecated and useless method: Development().container()
Removed deprecated and useless method: Development().database()
Removed deprecated method Internet().category_of_website()
Removed duplicated method Internet().image_by_keyword(), use Internet().stock_image() with keywords instead
Removed deprecated JapanSpecProvider (it didn't fit the definition of the data provider)
Removed deprecated method Internet().subreddit()
Removed Cryptographic().salt() use Cryptographic().token_hex() or Cryptographic().token_bytes() instead
Removed methods Person.favorite_movie(), Person.favorite_music_genre(), Person.level_of_english() because they did not related to Person provider
Fixed:
Fixed bug with seed
Fixed issue with names on downloading images
Fixed issue with None in username for Person().username()
Other minor improvements and fix
Added a list of all supported locales as mimesis/locales.py
Added:
Added a list of all supported locales as mimesis/locales.py
Updated:
Changed how Internet provider works with stock_image
Changed how random module works, now exposing global Random instance
Updated dependencies
Updated choice to make it a provider with more output types
Fixed:
Prevents ROMANIZED_DICT from mutating
Fixed appveyour builds
Fixed flake8-builtins checks
Fixed some mypy issues with strict mode
Fixed number of elements returned by choice with unique=True
Removed internal function utils.locale_info which duplicate utils.setup_locale
Removed:
Removed internal function utils.locale_info which duplicate utils.setup_locale
.. note:: This release (2.0.0) contains some breaking changes and this means that you should update names of classes and methods in your code.
Note
This release (2.0.0) contains some breaking changes and this means that you should update names of classes and methods in your code.
Added:
Added items IOC and FIFA for enum object CountryCode
Added support of custom providers for schema.Field
Added support of parameter dms for coordinates, longitude, latitude
Added method Text.rgb_color
Added support of parameter safe for method Text.hex_color
Added an alias zip_code for Address.postal_code
Optimizations:
Significantly improved performance of schema.Field
Other minor improvements
Updated/Renamed:
Updated method integers
Renamed provider Personal to Person
Renamed provider Structured to Structure
Renamed provider ClothingSizes to Clothing
Renamed json file personal.json to person.json for all locales
Renamed country_iso_code to country_code in Address data provider
Added method RussiaSpecProvider.inn
Added:
Added method RussiaSpecProvider.inn
Fixed:
Fixed issue with seed for providers.Cryptographic.bytes
Fixed issue #375
Optimizations:
Optimized method Text.hex_color
Optimized method Address.coordinates
Optimized method Internet.ip_v6
Tests:
Grouped tests in classes
Added tests for seeded data providers
Other minor optimizations and improvements
Added function for multiple choice helpers.Random.multiple_choice
Added:
Added function for multiple choice helpers.Random.multiple_choice
Fixed:
Fixed issue with seed #325
Optimizations:
Optimized method username()
Moved custom_code to helpers.Random
Mover/Removed:
Moved custom_code to helpers.Random
Optimizations:
Optimized function custom_code and it works faster by ≈ 50%
Other minor optimizations in data providers
Added method ethereum_address for Payment
Added:
Added method ethereum_address for Payment
Added method get_current_locale for BaseProvider
Added method boolean for Development which returns random boolean value
Added method integers for Numbers
Added new built in specific provider UkraineSpecProvider
Added support of key functions for the object schema.Field
Added object schema.Schema which helps generate data by schema
Fixed:
Fixed issue full_name when method return female surname for male name and vice versa
Fixed bug with improper handling of attributes that begin with an underscore for class schema.Field
Updated:
Updated method version for supporting pre-releases and calendar versioning
Renamed methods international, european and custom to international_size, european_size and custom_size
Updated: - Fixed #304
Updated:
Fixed #304
This is a first major version of mimesis and here are breaking changes (including changes related to support for only the latest versions of Python, i…
This is a first major version of mimesis and here are breaking changes (including changes related to support for only the latest versions of Python, i.e Python 3.5 and Python 3.6), so there is no backwards compatibility with early versions of this library.
Added:
Added Field for generating data by schema
Added new module typing.py for custom types
Added new module enums.py and support of enums in arguments of methods
Added category_of_website and port to Internet data provider
Added mnemonic_phrase for Cryptography data provider
Added price_in_btc and currency_symbol to Business data provider
Added dna, rna and atomic_number to Science data provider
Added vehicle_registration_code to Transport data provider
Added generate_string method for Random
Added alias last_name for surname in Personal data provider
Added alias province, region, federal_subject for state in Address data provider
Added annotations for all methods and functions for supporting type hints
Added new data provider Payment
Added new methods to Payment: credit_card_network, credit_card_owner
Fixed:
Fixed issue with primes in Numbers data provider
Fixed issue with repeated output on using Code().custom code
Other minor fix and improvements
Mover/Removed:
Moved credit_card, credit_card_expiration_date, cid, cvv, paypal and bitcoin to Payment from Personal
Moved custom_code to utils.py from providers.code.Code
Removed some useless methods
Removed module constants, in view of adding more convenient and useful module enums
Removed non informative custom exception WrongArgument and replaced one with KeyError and NonEnumerableError
Parameter category of method hashtags is deprecated and was removed
Removed all methods from UnitSystem and replaced ones with unit().
Updated/Renamed:
Updated data for de-at, en, fr, pl, pt-br, pt, ru, uk
Other minor updates in other languages
Renamed currency_iso to currency_iso_code in Business data provider
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →