fake.py


Namefake.py JSON
Version 0.6.9 PyPI version JSON
download
home_pageNone
SummaryMinimalistic, standalone alternative fake data generator with no dependencies.
upload_time2024-05-09 23:04:46
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseMIT
keywords fake data test data
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            =======
fake.py
=======
.. External references

.. _Faker: https://faker.readthedocs.io/
.. _factory_boy: https://factoryboy.readthedocs.io/
.. _faker-file: https://faker-file.readthedocs.io/
.. _Pillow: https://python-pillow.org/
.. _dateutil: https://dateutil.readthedocs.io/
.. _Django: https://www.djangoproject.com/
.. _TortoiseORM: https://tortoise.github.io/
.. _Pydantic: https://docs.pydantic.dev/
.. _SQLAlchemy: https://www.sqlalchemy.org/

.. Internal references

.. _fake.py: https://github.com/barseghyanartur/fake.py/
.. _Read the Docs: http://fakepy.readthedocs.io/
.. _Quick start: https://fakepy.readthedocs.io/en/latest/quick_start.html
.. _Recipes: https://fakepy.readthedocs.io/en/latest/recipes.html
.. _Factories: https://fakepy.readthedocs.io/en/latest/factories.html
.. _Customization: https://fakepy.readthedocs.io/en/latest/customization.html
.. _Creating PDF: https://fakepy.readthedocs.io/en/latest/creating_pdf.html
.. _Creating DOCX: https://fakepy.readthedocs.io/en/latest/creating_docx.html
.. _Creating images: https://fakepy.readthedocs.io/en/latest/creating_images.html
.. _Contributor guidelines: https://fakepy.readthedocs.io/en/latest/contributor_guidelines.html
.. _Examples: https://github.com/barseghyanartur/fake.py/tree/main/examples

Minimalistic, standalone alternative fake data generator with no dependencies.

.. image:: https://img.shields.io/pypi/v/fake.py.svg
   :target: https://pypi.python.org/pypi/fake.py
   :alt: PyPI Version

.. image:: https://img.shields.io/pypi/pyversions/fake.py.svg
    :target: https://pypi.python.org/pypi/fake.py/
    :alt: Supported Python versions

.. image:: https://github.com/barseghyanartur/fake.py/actions/workflows/test.yml/badge.svg?branch=main
   :target: https://github.com/barseghyanartur/fake.py/actions
   :alt: Build Status

.. image:: https://readthedocs.org/projects/fakepy/badge/?version=latest
    :target: http://fakepy.readthedocs.io
    :alt: Documentation Status

.. image:: https://img.shields.io/badge/license-MIT-blue.svg
   :target: https://github.com/barseghyanartur/fake.py/#License
   :alt: MIT

.. image:: https://coveralls.io/repos/github/barseghyanartur/fake.py/badge.svg?branch=main&service=github
    :target: https://coveralls.io/github/barseghyanartur/fake.py?branch=main
    :alt: Coverage

`fake.py`_ is a standalone, portable library designed for generating various
random data types for testing.

It offers a simplified, dependency-free alternative for creating random
texts, (person) names, URLs, dates, file names, IPs, primitive Python data
types (such as `uuid`, `str`, `int`, `float`, `bool`) and byte content
for multiple file formats including `PDF`, `DOCX`, `PNG`, `SVG`, `BMP`,
and `GIF`.

The package also supports file creation on the filesystem and includes
factories (dynamic fixtures) compatible with `Django`_, `TortoiseORM`_,
`Pydantic`_ and `SQLAlchemy`_.

Features
========
- Generation of random texts, (person) names, emails, URLs, dates, IPs, and
  primitive Python data types.
- Support for various file formats (`PDF`, `DOCX`, `TXT`, `PNG`, `SVG`,
  `BMP`, `GIF`) and file creation on the filesystem.
- Basic factories for integration with `Django`_, `Pydantic`_,
  `TortoiseORM`_ and `SQLAlchemy`_.

Prerequisites
=============
Python 3.8+

Installation
============
pip
---

.. code-block:: sh

    pip install fake.py

Download and copy
-----------------
``fake.py`` is the sole, self-contained module of the package. It includes
tests too. If it's more convenient to you, you could simply download the
``fake.py`` module and include it in your repository.

Since tests are included, it won't have a negative impact on your test
coverage (you might need to apply tweaks to your coverage configuration).

Documentation
=============
- Documentation is available on `Read the Docs`_.
- For various ready to use code examples see the `Recipes`_.
- For tips on how to use the factories see the `Factories`_.
- For customization tips see the `Customization`_.
- For tips on ``PDF`` creation see `Creating PDF`_.
- For tips on ``DOCX`` creation see `Creating DOCX`_.
- For tips on images creation see `Creating images`_.
- For guidelines on contributing check the `Contributor guidelines`_.
- For various implementation examples, see the `Examples`_.

Usage
=====
Generate data
-------------
Person names
~~~~~~~~~~~~
.. code-block:: python
    :name: test_person_names

    from fake import FAKER

    FAKER.first_name()  # str
    FAKER.first_names()  # list[str]
    FAKER.last_name()  # str
    FAKER.last_names()  # list[str]
    FAKER.name()  # str
    FAKER.names()  # list[str]
    FAKER.username()  # str
    FAKER.usernames()  # list[str]

Random texts
~~~~~~~~~~~~
.. code-block:: python
    :name: test_random_texts

    from fake import FAKER

    FAKER.slug()  # str
    FAKER.slugs()  # list[str]
    FAKER.word()  # str
    FAKER.words()  # list[str]
    FAKER.sentence()  # str
    FAKER.sentences()  # list[str]
    FAKER.paragraph()  # str
    FAKER.paragraphs()  # list[str]
    FAKER.text()  # str
    FAKER.texts()  # list[str]

Internet
~~~~~~~~
.. code-block:: python
    :name: test_internet

    from fake import FAKER

    FAKER.email()  # str
    FAKER.url()  # str
    FAKER.image_url()  # str
    FAKER.ipv4()  # str

Filenames
~~~~~~~~~
.. code-block:: python
    :name: test_filenames

    from fake import FAKER

    FAKER.file_name()  # str

Primitive data types
~~~~~~~~~~~~~~~~~~~~
.. code-block:: python
    :name: test_primitive_data_types

    from fake import FAKER

    FAKER.pyint()  # int
    FAKER.pybool()  # bool
    FAKER.pystr()  # str
    FAKER.pyfloat()  # flot
    FAKER.uuid()  # uuid.UUID

Dates
~~~~~
.. code-block:: python
    :name: test_dates

    from fake import FAKER

    FAKER.date()  # datetime.date
    FAKER.date_time()  # datetime.datetime

Generate files
--------------
As bytes
~~~~~~~~
.. code-block:: python
    :name: test_generate_files_as_bytes

    from fake import FAKER

    FAKER.pdf()  # bytes
    FAKER.docx()  # bytes
    FAKER.png()  # bytes
    FAKER.svg()  # bytes
    FAKER.bmp()  # bytes
    FAKER.gif()  # bytes

As files on the file system
~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: python
    :name: test_generate_files_as_files_on_file_system

    from fake import FAKER

    FAKER.pdf_file()  # str
    FAKER.docx_file()  # str
    FAKER.png_file()  # str
    FAKER.svg_file()  # str
    FAKER.bmp_file()  # str
    FAKER.gif_file()  # str
    FAKER.txt_file()  # str

Factories/dynamic fixtures
--------------------------
This is how you could define factories for `Django`_'s built-in ``Group``
and ``User`` models.

.. code-block:: python
    :name: test_factories

    from django.contrib.auth.models import Group, User
    from fake import (
        DjangoModelFactory,
        FACTORY,
        PostSave,
        PreSave,
        trait,
    )


    class GroupFactory(DjangoModelFactory):
        """Group factory."""

        name = FACTORY.word()

        class Meta:
            model = Group
            get_or_create = ("name",)


    def set_password(user: User, password: str) -> None:
        """Helper function for setting password for the User."""
        user.set_password(password)


    def add_to_group(user: User, name: str) -> None:
        """Helper function for adding the User to a Group."""
        group = GroupFactory(name=name)
        user.groups.add(group)


    class UserFactory(DjangoModelFactory):
        """User factory."""

        username = FACTORY.username()
        first_name = FACTORY.first_name()
        last_name = FACTORY.last_name()
        email = FACTORY.email()
        date_joined = FACTORY.date_time()
        last_login = FACTORY.date_time()
        is_superuser = False
        is_staff = False
        is_active = FACTORY.pybool()
        password = PreSave(set_password, password="test1234")
        group = PostSave(add_to_group, name="Test group")

        class Meta:
            model = User
            get_or_create = ("username",)

        @trait
        def is_admin_user(self, instance: User) -> None:
            """Trait."""
            instance.is_superuser = True
            instance.is_staff = True
            instance.is_active = True

And this is how you could use it:

.. code-block:: python

    # Create just one user
    user = UserFactory()

    # Create 5 users
    users = UserFactory.create_batch(5)

    # Create a user using `is_admin_user` trait
    user = UserFactory(is_admin_user=True)

    # Create a user with custom password
    user = UserFactory(
        password=PreSave(set_password, password="another-password"),
    )

    # Add a user to another group
    user = UserFactory(
        group=PostSave(add_to_group, name="Another group"),
    )

    # Or even add user to multiple groups at once
    user = UserFactory(
        group_1=PostSave(add_to_group, name="Another group"),
        group_2=PostSave(add_to_group, name="Yet another group"),
    )

Customize
---------
Make your own custom providers and utilize factories with them.

.. code-block:: python
    :name: test_customize

    import random
    import string

    from fake import Faker, Factory, provider


    class CustomFaker(Faker):

        @provider
        def postal_code(self) -> str:
            number_part = "".join(random.choices(string.digits, k=4))
            letter_part = "".join(random.choices(string.ascii_uppercase, k=2))
            return f"{number_part} {letter_part}"


    FAKER = CustomFaker()
    FACTORY = Factory(FAKER)

Now you can use it as follows (make sure to import your custom instances
of ``FAKER`` and ``FACTORY``):

.. code-block:: python

    FAKER.postal_code()

    from fake import ModelFactory


    class AddressFactory(ModelFactory):

        # ... other definitions
        postal_code = FACTORY.postal_code()
        # ... other definitions

        class Meta:
            model = Address

Tests
=====

Run the tests with unittest:

.. code-block:: sh

    python -m unittest fake.py

Or pytest:

.. code-block:: sh

    pytest

Differences with alternatives
=============================
`fake.py`_ is `Faker`_ + `factory_boy`_ + `faker-file`_ in one package,
radically simplified and reduced in features, but without any external
dependencies (not even `Pillow`_ or `dateutil`_).

`fake.py`_ is modeled after the famous `Faker`_ package. Its' API is highly
compatible, although drastically reduced. It's not multilingual and does not
support postal codes or that many RAW file formats. However, you could easily
include it in your production setup without worrying about yet another
dependency.

On the other hand, `fake.py`_ factories look quite similar to `factory_boy`_
factories, although again - drastically simplified and reduced in
features.

The file generation part of `fake.py`_ are modelled after the `faker-file`_.
You don't get a large variety of file types supported and you don't have that
much control over the content of the files generated, but you get
dependency-free valid files and if that's all you need, you don't need to look
further.

However, at any point, if you discover that you "need more", go for `Faker`_,
`factory_boy`_ and `faker-file`_ combination.

License
=======

MIT

Support
=======
For security issues contact me at the e-mail given in the `Author`_ section.

For overall issues, go to `GitHub <https://github.com/barseghyanartur/fake.py/issues>`_.

Author
======

Artur Barseghyan <artur.barseghyan@gmail.com>

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "fake.py",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "fake data, test data",
    "author": null,
    "author_email": "Artur Barseghyan <artur.barseghyan@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/dc/64/9869483c337d11f8dbd45f2d57f1634ad273b6a25cf57fad9d447343c4e3/fake_py-0.6.9.tar.gz",
    "platform": null,
    "description": "=======\nfake.py\n=======\n.. External references\n\n.. _Faker: https://faker.readthedocs.io/\n.. _factory_boy: https://factoryboy.readthedocs.io/\n.. _faker-file: https://faker-file.readthedocs.io/\n.. _Pillow: https://python-pillow.org/\n.. _dateutil: https://dateutil.readthedocs.io/\n.. _Django: https://www.djangoproject.com/\n.. _TortoiseORM: https://tortoise.github.io/\n.. _Pydantic: https://docs.pydantic.dev/\n.. _SQLAlchemy: https://www.sqlalchemy.org/\n\n.. Internal references\n\n.. _fake.py: https://github.com/barseghyanartur/fake.py/\n.. _Read the Docs: http://fakepy.readthedocs.io/\n.. _Quick start: https://fakepy.readthedocs.io/en/latest/quick_start.html\n.. _Recipes: https://fakepy.readthedocs.io/en/latest/recipes.html\n.. _Factories: https://fakepy.readthedocs.io/en/latest/factories.html\n.. _Customization: https://fakepy.readthedocs.io/en/latest/customization.html\n.. _Creating PDF: https://fakepy.readthedocs.io/en/latest/creating_pdf.html\n.. _Creating DOCX: https://fakepy.readthedocs.io/en/latest/creating_docx.html\n.. _Creating images: https://fakepy.readthedocs.io/en/latest/creating_images.html\n.. _Contributor guidelines: https://fakepy.readthedocs.io/en/latest/contributor_guidelines.html\n.. _Examples: https://github.com/barseghyanartur/fake.py/tree/main/examples\n\nMinimalistic, standalone alternative fake data generator with no dependencies.\n\n.. image:: https://img.shields.io/pypi/v/fake.py.svg\n   :target: https://pypi.python.org/pypi/fake.py\n   :alt: PyPI Version\n\n.. image:: https://img.shields.io/pypi/pyversions/fake.py.svg\n    :target: https://pypi.python.org/pypi/fake.py/\n    :alt: Supported Python versions\n\n.. image:: https://github.com/barseghyanartur/fake.py/actions/workflows/test.yml/badge.svg?branch=main\n   :target: https://github.com/barseghyanartur/fake.py/actions\n   :alt: Build Status\n\n.. image:: https://readthedocs.org/projects/fakepy/badge/?version=latest\n    :target: http://fakepy.readthedocs.io\n    :alt: Documentation Status\n\n.. image:: https://img.shields.io/badge/license-MIT-blue.svg\n   :target: https://github.com/barseghyanartur/fake.py/#License\n   :alt: MIT\n\n.. image:: https://coveralls.io/repos/github/barseghyanartur/fake.py/badge.svg?branch=main&service=github\n    :target: https://coveralls.io/github/barseghyanartur/fake.py?branch=main\n    :alt: Coverage\n\n`fake.py`_ is a standalone, portable library designed for generating various\nrandom data types for testing.\n\nIt offers a simplified, dependency-free alternative for creating random\ntexts, (person) names, URLs, dates, file names, IPs, primitive Python data\ntypes (such as `uuid`, `str`, `int`, `float`, `bool`) and byte content\nfor multiple file formats including `PDF`, `DOCX`, `PNG`, `SVG`, `BMP`,\nand `GIF`.\n\nThe package also supports file creation on the filesystem and includes\nfactories (dynamic fixtures) compatible with `Django`_, `TortoiseORM`_,\n`Pydantic`_ and `SQLAlchemy`_.\n\nFeatures\n========\n- Generation of random texts, (person) names, emails, URLs, dates, IPs, and\n  primitive Python data types.\n- Support for various file formats (`PDF`, `DOCX`, `TXT`, `PNG`, `SVG`,\n  `BMP`, `GIF`) and file creation on the filesystem.\n- Basic factories for integration with `Django`_, `Pydantic`_,\n  `TortoiseORM`_ and `SQLAlchemy`_.\n\nPrerequisites\n=============\nPython 3.8+\n\nInstallation\n============\npip\n---\n\n.. code-block:: sh\n\n    pip install fake.py\n\nDownload and copy\n-----------------\n``fake.py`` is the sole, self-contained module of the package. It includes\ntests too. If it's more convenient to you, you could simply download the\n``fake.py`` module and include it in your repository.\n\nSince tests are included, it won't have a negative impact on your test\ncoverage (you might need to apply tweaks to your coverage configuration).\n\nDocumentation\n=============\n- Documentation is available on `Read the Docs`_.\n- For various ready to use code examples see the `Recipes`_.\n- For tips on how to use the factories see the `Factories`_.\n- For customization tips see the `Customization`_.\n- For tips on ``PDF`` creation see `Creating PDF`_.\n- For tips on ``DOCX`` creation see `Creating DOCX`_.\n- For tips on images creation see `Creating images`_.\n- For guidelines on contributing check the `Contributor guidelines`_.\n- For various implementation examples, see the `Examples`_.\n\nUsage\n=====\nGenerate data\n-------------\nPerson names\n~~~~~~~~~~~~\n.. code-block:: python\n    :name: test_person_names\n\n    from fake import FAKER\n\n    FAKER.first_name()  # str\n    FAKER.first_names()  # list[str]\n    FAKER.last_name()  # str\n    FAKER.last_names()  # list[str]\n    FAKER.name()  # str\n    FAKER.names()  # list[str]\n    FAKER.username()  # str\n    FAKER.usernames()  # list[str]\n\nRandom texts\n~~~~~~~~~~~~\n.. code-block:: python\n    :name: test_random_texts\n\n    from fake import FAKER\n\n    FAKER.slug()  # str\n    FAKER.slugs()  # list[str]\n    FAKER.word()  # str\n    FAKER.words()  # list[str]\n    FAKER.sentence()  # str\n    FAKER.sentences()  # list[str]\n    FAKER.paragraph()  # str\n    FAKER.paragraphs()  # list[str]\n    FAKER.text()  # str\n    FAKER.texts()  # list[str]\n\nInternet\n~~~~~~~~\n.. code-block:: python\n    :name: test_internet\n\n    from fake import FAKER\n\n    FAKER.email()  # str\n    FAKER.url()  # str\n    FAKER.image_url()  # str\n    FAKER.ipv4()  # str\n\nFilenames\n~~~~~~~~~\n.. code-block:: python\n    :name: test_filenames\n\n    from fake import FAKER\n\n    FAKER.file_name()  # str\n\nPrimitive data types\n~~~~~~~~~~~~~~~~~~~~\n.. code-block:: python\n    :name: test_primitive_data_types\n\n    from fake import FAKER\n\n    FAKER.pyint()  # int\n    FAKER.pybool()  # bool\n    FAKER.pystr()  # str\n    FAKER.pyfloat()  # flot\n    FAKER.uuid()  # uuid.UUID\n\nDates\n~~~~~\n.. code-block:: python\n    :name: test_dates\n\n    from fake import FAKER\n\n    FAKER.date()  # datetime.date\n    FAKER.date_time()  # datetime.datetime\n\nGenerate files\n--------------\nAs bytes\n~~~~~~~~\n.. code-block:: python\n    :name: test_generate_files_as_bytes\n\n    from fake import FAKER\n\n    FAKER.pdf()  # bytes\n    FAKER.docx()  # bytes\n    FAKER.png()  # bytes\n    FAKER.svg()  # bytes\n    FAKER.bmp()  # bytes\n    FAKER.gif()  # bytes\n\nAs files on the file system\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n.. code-block:: python\n    :name: test_generate_files_as_files_on_file_system\n\n    from fake import FAKER\n\n    FAKER.pdf_file()  # str\n    FAKER.docx_file()  # str\n    FAKER.png_file()  # str\n    FAKER.svg_file()  # str\n    FAKER.bmp_file()  # str\n    FAKER.gif_file()  # str\n    FAKER.txt_file()  # str\n\nFactories/dynamic fixtures\n--------------------------\nThis is how you could define factories for `Django`_'s built-in ``Group``\nand ``User`` models.\n\n.. code-block:: python\n    :name: test_factories\n\n    from django.contrib.auth.models import Group, User\n    from fake import (\n        DjangoModelFactory,\n        FACTORY,\n        PostSave,\n        PreSave,\n        trait,\n    )\n\n\n    class GroupFactory(DjangoModelFactory):\n        \"\"\"Group factory.\"\"\"\n\n        name = FACTORY.word()\n\n        class Meta:\n            model = Group\n            get_or_create = (\"name\",)\n\n\n    def set_password(user: User, password: str) -> None:\n        \"\"\"Helper function for setting password for the User.\"\"\"\n        user.set_password(password)\n\n\n    def add_to_group(user: User, name: str) -> None:\n        \"\"\"Helper function for adding the User to a Group.\"\"\"\n        group = GroupFactory(name=name)\n        user.groups.add(group)\n\n\n    class UserFactory(DjangoModelFactory):\n        \"\"\"User factory.\"\"\"\n\n        username = FACTORY.username()\n        first_name = FACTORY.first_name()\n        last_name = FACTORY.last_name()\n        email = FACTORY.email()\n        date_joined = FACTORY.date_time()\n        last_login = FACTORY.date_time()\n        is_superuser = False\n        is_staff = False\n        is_active = FACTORY.pybool()\n        password = PreSave(set_password, password=\"test1234\")\n        group = PostSave(add_to_group, name=\"Test group\")\n\n        class Meta:\n            model = User\n            get_or_create = (\"username\",)\n\n        @trait\n        def is_admin_user(self, instance: User) -> None:\n            \"\"\"Trait.\"\"\"\n            instance.is_superuser = True\n            instance.is_staff = True\n            instance.is_active = True\n\nAnd this is how you could use it:\n\n.. code-block:: python\n\n    # Create just one user\n    user = UserFactory()\n\n    # Create 5 users\n    users = UserFactory.create_batch(5)\n\n    # Create a user using `is_admin_user` trait\n    user = UserFactory(is_admin_user=True)\n\n    # Create a user with custom password\n    user = UserFactory(\n        password=PreSave(set_password, password=\"another-password\"),\n    )\n\n    # Add a user to another group\n    user = UserFactory(\n        group=PostSave(add_to_group, name=\"Another group\"),\n    )\n\n    # Or even add user to multiple groups at once\n    user = UserFactory(\n        group_1=PostSave(add_to_group, name=\"Another group\"),\n        group_2=PostSave(add_to_group, name=\"Yet another group\"),\n    )\n\nCustomize\n---------\nMake your own custom providers and utilize factories with them.\n\n.. code-block:: python\n    :name: test_customize\n\n    import random\n    import string\n\n    from fake import Faker, Factory, provider\n\n\n    class CustomFaker(Faker):\n\n        @provider\n        def postal_code(self) -> str:\n            number_part = \"\".join(random.choices(string.digits, k=4))\n            letter_part = \"\".join(random.choices(string.ascii_uppercase, k=2))\n            return f\"{number_part} {letter_part}\"\n\n\n    FAKER = CustomFaker()\n    FACTORY = Factory(FAKER)\n\nNow you can use it as follows (make sure to import your custom instances\nof ``FAKER`` and ``FACTORY``):\n\n.. code-block:: python\n\n    FAKER.postal_code()\n\n    from fake import ModelFactory\n\n\n    class AddressFactory(ModelFactory):\n\n        # ... other definitions\n        postal_code = FACTORY.postal_code()\n        # ... other definitions\n\n        class Meta:\n            model = Address\n\nTests\n=====\n\nRun the tests with unittest:\n\n.. code-block:: sh\n\n    python -m unittest fake.py\n\nOr pytest:\n\n.. code-block:: sh\n\n    pytest\n\nDifferences with alternatives\n=============================\n`fake.py`_ is `Faker`_ + `factory_boy`_ + `faker-file`_ in one package,\nradically simplified and reduced in features, but without any external\ndependencies (not even `Pillow`_ or `dateutil`_).\n\n`fake.py`_ is modeled after the famous `Faker`_ package. Its' API is highly\ncompatible, although drastically reduced. It's not multilingual and does not\nsupport postal codes or that many RAW file formats. However, you could easily\ninclude it in your production setup without worrying about yet another\ndependency.\n\nOn the other hand, `fake.py`_ factories look quite similar to `factory_boy`_\nfactories, although again - drastically simplified and reduced in\nfeatures.\n\nThe file generation part of `fake.py`_ are modelled after the `faker-file`_.\nYou don't get a large variety of file types supported and you don't have that\nmuch control over the content of the files generated, but you get\ndependency-free valid files and if that's all you need, you don't need to look\nfurther.\n\nHowever, at any point, if you discover that you \"need more\", go for `Faker`_,\n`factory_boy`_ and `faker-file`_ combination.\n\nLicense\n=======\n\nMIT\n\nSupport\n=======\nFor security issues contact me at the e-mail given in the `Author`_ section.\n\nFor overall issues, go to `GitHub <https://github.com/barseghyanartur/fake.py/issues>`_.\n\nAuthor\n======\n\nArtur Barseghyan <artur.barseghyan@gmail.com>\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Minimalistic, standalone alternative fake data generator with no dependencies.",
    "version": "0.6.9",
    "project_urls": {
        "Bug Tracker": "https://github.com/barseghyanartur/fake.py/issues",
        "Changelog": "https://fakepy.readthedocs.io/en/latest/changelog.html",
        "Documentation": "https://fakepy.readthedocs.io/",
        "Homepage": "https://github.com/barseghyanartur/fake.py/",
        "Source Code": "https://github.com/barseghyanartur/fake.py/"
    },
    "split_keywords": [
        "fake data",
        " test data"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "265580b4b9acd8f3625e8a4758ae23b04b612da26a0eb3e0d95bc2c72297a363",
                "md5": "720e12231d6d0bdbfa1a00eb8e88b1b9",
                "sha256": "f7e8fb69415a5e04fe9727383e6f8d5685cb47a299e6d242fb4e4b3ce8c49029"
            },
            "downloads": -1,
            "filename": "fake.py-0.6.9-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "720e12231d6d0bdbfa1a00eb8e88b1b9",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 29739,
            "upload_time": "2024-05-09T23:04:44",
            "upload_time_iso_8601": "2024-05-09T23:04:44.100038Z",
            "url": "https://files.pythonhosted.org/packages/26/55/80b4b9acd8f3625e8a4758ae23b04b612da26a0eb3e0d95bc2c72297a363/fake.py-0.6.9-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dc649869483c337d11f8dbd45f2d57f1634ad273b6a25cf57fad9d447343c4e3",
                "md5": "11d4be169b3d5a9c9b5b62f25e99cf59",
                "sha256": "6a40784a816c8b048731429d401659ebe517d9a595cf35832cded4991227f5ce"
            },
            "downloads": -1,
            "filename": "fake_py-0.6.9.tar.gz",
            "has_sig": false,
            "md5_digest": "11d4be169b3d5a9c9b5b62f25e99cf59",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 107631,
            "upload_time": "2024-05-09T23:04:46",
            "upload_time_iso_8601": "2024-05-09T23:04:46.722757Z",
            "url": "https://files.pythonhosted.org/packages/dc/64/9869483c337d11f8dbd45f2d57f1634ad273b6a25cf57fad9d447343c4e3/fake_py-0.6.9.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-09 23:04:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "barseghyanartur",
    "github_project": "fake.py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "fake.py"
}
        
Elapsed time: 0.25608s