Mimesis - Fake Data Generator
-----------------------------, .. image:: https://raw.githubusercontent.com/lk-geimfari/mimesis/master/media/readme-logo.png
:target: https://github.com/lk-geimfari/mimesis, Description
.. image:: https://travis-ci.org/lk-geimfari/mimesis.svg?branch=master
:target: https://travis-ci.org/lk-geimfari/mimesis
:alt: Travis CI
.. image:: https://readthedocs.org/projects/mimesis/badge/?version=latest
:target: https://mimesis.name/
:alt: Documentation Status
.. image:: https://codecov.io/gh/lk-geimfari/mimesis/branch/master/graph/badge.svg
:target: https://codecov.io/gh/lk-geimfari/mimesis
:alt: Code Coverage
.. image:: https://badge.fury.io/py/mimesis.svg
:target: https://badge.fury.io/py/mimesis
:alt: Package version
.. image:: https://img.shields.io/badge/python-3.6%20%7C%203.7%20%7C%203.8-brightgreen.svg
:target: https://badge.fury.io/py/mimesis
:alt: Python version
Mimesis is a package for Python, which helps generate big volumes of fake data for a variety of purposes in a variety of languages. The fake data could be used to populate a testing database, create beautiful JSON and XML files, anonymize data taken from production and etc.
Installation
To install mimesis, simply use pip:
.. code:: text
[env] ~ ⟩ pip install mimesis
Getting started
This library is really easy to use and everything you need is just import an object which
represents a type of data you need (we call such object Provider).
In example below we import provider Person <https://mimesis.name/api.html#person>
_,
which represents data related to personal information, such as name, surname, email and etc:
.. code:: python
>>> from mimesis import Person
>>> person = Person('en')
>>> person.full_name()
'Antonetta Garrison'
>>> person.occupation()
'Backend Developer'
>>> person.telephone()
'1-408-855-5063'
More about the other providers you can read in our documentation
_.
.. _documentation: https://mimesis.name/getting_started.html#providers
Locales
Mimesis currently includes support for 33 different locales
_. You can
specify a locale when creating providers and they will return data that
is appropriate for the language or country associated with that locale.
Let's take a look how it works:
.. code:: python
>>> from mimesis import Person
>>> from mimesis.enums import Gender
>>> de = Person('de')
>>> en = Person('en')
>>> de.full_name(gender=Gender.FEMALE)
'Sabrina Gutermuth'
>>> en.full_name(gender=Gender.MALE)
'Layne Gallagher'
.. _locales: https://mimesis.name/getting_started.html#locales
Providers
Mimesis support over twenty different data providers available,
which can produce data related to people, food, computer hardware,
transportation, addresses, and more.
See API Reference <https://mimesis.name/api.html>
_ for more info.
Generating structured data
You can generate dictionaries which can be easily converted to any
format you want (JSON/XML/YAML etc.) with any structure you want.
Just use object Field()
as shown below:
.. code:: python
>>> from mimesis.schema import Field, Schema
>>> from mimesis.enums import Gender
>>> _ = Field('en')
>>> description = (
... lambda: {
... 'id': _('uuid'),
... 'name': _('text.word'),
... 'version': _('version', pre_release=True),
... 'timestamp': _('timestamp', posix=False),
... 'owner': {
... 'email': _('person.email', key=str.lower),
... 'token': _('token_hex'),
... 'creator': _('full_name', gender=Gender.FEMALE),
... },
... }
... )
>>> schema = Schema(schema=description)
>>> schema.create(iterations=1)
Output:
.. code:: text
[
{
'id': '7a41f446-57a8-ec17-b9ad-367742251679',
'name': 'desert',
'version': '7.3.7-alpha.6',
'timestamp': '2026-06-06T14:00:52Z',
'owner': {
'email': 'damaged1829@gmail.com',
'token': 'acfd799af9b46e5560a51dabace593033171ec81e997905acfc602c93a741735',
'creator': 'Keena Hendricks'
}
}
]
See Schema and Fields <https://mimesis.name/getting_started.html#schema-and-fields>
_ for more info.
Documentation
You can find the complete documentation on the Read the Docs
_.
It is divided into several sections:
Foreword
_Getting Started
_Tips and Tricks
_API Reference
_Contributing
_Changelog
_
You can improve it by sending pull requests to this repository.
.. _Read the Docs: https://mimesis.name
.. _Foreword: https://mimesis.name/foreword.html
.. _Getting Started: https://mimesis.name/getting_started.html
.. _Tips and Tricks: https://mimesis.name/tips.html
.. _API Reference: https://mimesis.name/api.html
.. _Contributing: https://mimesis.name/contributing.html
.. _Changelog: https://mimesis.name/changelog.html
How to Contribute
- 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.
.. _contributing guidelines: https://github.com/lk-geimfari/mimesis/blob/master/CONTRIBUTING.rst
.. _contributors: https://github.com/lk-geimfari/mimesis/blob/master/CONTRIBUTORS.rst
License
Mimesis is licensed under the MIT License. See LICENSE
_ for more
information.
.. _LICENSE: https://github.com/lk-geimfari/mimesis/blob/master/LICENSE