Mimesis (/mɪˈmiːsɪs) is a robust data generator for Python that can produce a wide range of fake data in various languages. This tool is useful for populating testing databases, creating fake API endpoints, filling pandas DataFrames
, generating JSON and XML files with custom structures, and anonymizing production data, among other purposes.
To install mimesis, simply use pip:
pip install mimesis
To work with Mimesis on Python versions 3.8 and 3.9, the final compatible version is Mimesis 11.1.0. Install this specific version to ensure compatibility.
- Multilingual: Supports 35 different locales.
- Extensibility: Supports custom data providers and custom field handlers.
- Ease of use: Features a simple design and clear documentation for straightforward data generation.
- Performance: Widely recognized as the fastest data generator among Python solutions.
- Data variety: Includes various data providers designed for different use cases.
- Schema-based generators: Offers schema-based data generators to effortlessly produce data of any complexity.
- Intuitive: Great editor support. Fully-typed, thus autocompletion almost everywhere.
You can find the complete documentation on the Read the Docs.
It is divided into several sections:
- About Mimesis
- Quickstart
- Locales
- Data Providers
- Structured Data Generation
- Random and Seed
- Integration with Pytest
- Integration with factory_boy
- Tricks and Tips
- API Reference
- Additional Information
- Changelog
You can improve it by sending pull requests to this repository.
The library is exceptionally user-friendly, and it only requires you to import a Data Provider object that corresponds to the desired data type.
For instance, the Person provider can be imported to access personal information, including name, surname, email, and other related fields:
>>> from mimesis import Person
>>> from mimesis.locales import Locale
>>> person = Person(Locale.EN)
>>> person.full_name()
'Brande Sears'
>>> person.email(domains=['example.com'])
'[email protected]'
>>> person.email(domains=['mimesis.name'], unique=True)
'[email protected]'
>>> person.telephone(mask='1-4##-8##-5##3')
'1-436-896-5213'
You can learn more about other providers and locales in our documentation.
- Take a look at contributing guidelines.
- Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
- Fork the repository on GitHub to start making your changes to the your_branch branch.
- Add yourself to the list of contributors.
- Send a pull request and bug the maintainer until it gets merged and published.
Mimesis is licensed under the MIT License. See LICENSE for more information.