123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457 |
- Metadata-Version: 2.1
- Name: Faker
- Version: 0.9.1
- Summary: Faker is a Python package that generates fake data for you.
- Home-page: https://github.com/joke2k/faker
- Author: joke2k
- Author-email: joke2k@gmail.com
- License: MIT License
- Keywords: faker fixtures data test mock generator
- Platform: any
- Classifier: Development Status :: 5 - Production/Stable
- Classifier: Environment :: Console
- Classifier: Intended Audience :: Developers
- Classifier: Programming Language :: Python
- Classifier: Programming Language :: Python :: 2
- Classifier: Programming Language :: Python :: 2.7
- Classifier: Programming Language :: Python :: 3
- Classifier: Programming Language :: Python :: 3.4
- Classifier: Programming Language :: Python :: 3.5
- Classifier: Programming Language :: Python :: 3.6
- Classifier: Programming Language :: Python :: 3.7
- Classifier: Programming Language :: Python :: Implementation :: CPython
- Classifier: Programming Language :: Python :: Implementation :: PyPy
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
- Classifier: Topic :: Software Development :: Testing
- Classifier: Topic :: Utilities
- Classifier: License :: OSI Approved :: MIT License
- Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
- Requires-Dist: python-dateutil (>=2.4)
- Requires-Dist: six (>=1.10)
- Requires-Dist: text-unidecode (==1.2)
- Requires-Dist: ipaddress; python_version=="2.7"
- *Faker* is a Python package that generates fake data for you. Whether
- you need to bootstrap your database, create good-looking XML documents,
- fill-in your persistence to stress test it, or anonymize data taken from
- a production service, Faker is for you.
- Faker is heavily inspired by `PHP Faker`_, `Perl Faker`_, and by `Ruby Faker`_.
- ----
- ::
- _|_|_|_| _|
- _| _|_|_| _| _| _|_| _| _|_|
- _|_|_| _| _| _|_| _|_|_|_| _|_|
- _| _| _| _| _| _| _|
- _| _|_|_| _| _| _|_|_| _|
- |pypi| |unix_build| |windows_build| |coverage| |license|
- ----
- For more details, see the `extended docs`_.
- Basic Usage
- -----------
- Install with pip:
- .. code:: bash
- pip install Faker
- *Note: this package was previously called* ``fake-factory``.
- Use ``faker.Faker()`` to create and initialize a faker
- generator, which can generate data by accessing properties named after
- the type of data you want.
- .. code:: python
- from faker import Faker
- fake = Faker()
- fake.name()
- # 'Lucy Cechtelar'
- fake.address()
- # "426 Jordy Lodge
- # Cartwrightshire, SC 88120-6700"
- fake.text()
- # Sint velit eveniet. Rerum atque repellat voluptatem quia rerum. Numquam excepturi
- # beatae sint laudantium consequatur. Magni occaecati itaque sint et sit tempore. Nesciunt
- # amet quidem. Iusto deleniti cum autem ad quia aperiam.
- # A consectetur quos aliquam. In iste aliquid et aut similique suscipit. Consequatur qui
- # quaerat iste minus hic expedita. Consequuntur error magni et laboriosam. Aut aspernatur
- # voluptatem sit aliquam. Dolores voluptatum est.
- # Aut molestias et maxime. Fugit autem facilis quos vero. Eius quibusdam possimus est.
- # Ea quaerat et quisquam. Deleniti sunt quam. Adipisci consequatur id in occaecati.
- # Et sint et. Ut ducimus quod nemo ab voluptatum.
- Each call to method ``fake.name()`` yields a different (random) result.
- This is because faker forwards ``faker.Generator.method_name()`` calls
- to ``faker.Generator.format(method_name)``.
- .. code:: python
- for _ in range(10):
- print(fake.name())
- # Adaline Reichel
- # Dr. Santa Prosacco DVM
- # Noemy Vandervort V
- # Lexi O'Conner
- # Gracie Weber
- # Roscoe Johns
- # Emmett Lebsack
- # Keegan Thiel
- # Wellington Koelpin II
- # Ms. Karley Kiehn V
- Providers
- ---------
- Each of the generator properties (like ``name``, ``address``, and
- ``lorem``) are called "fake". A faker generator has many of them,
- packaged in "providers".
- Check the `extended docs`_ for a list of `bundled providers`_ and a list of
- `community providers`_.
- Localization
- ------------
- ``faker.Factory`` can take a locale as an argument, to return localized
- data. If no localized provider is found, the factory falls back to the
- default en\_US locale.
- .. code:: python
- from faker import Faker
- fake = Faker('it_IT')
- for _ in range(10):
- print(fake.name())
- > Elda Palumbo
- > Pacifico Giordano
- > Sig. Avide Guerra
- > Yago Amato
- > Eustachio Messina
- > Dott. Violante Lombardo
- > Sig. Alighieri Monti
- > Costanzo Costa
- > Nazzareno Barbieri
- > Max Coppola
- You can check available Faker locales in the source code, under the
- providers package. The localization of Faker is an ongoing process, for
- which we need your help. Please don't hesitate to create a localized
- provider for your own locale and submit a Pull Request (PR).
- Included localized providers:
- - `ar\_EG <https://faker.readthedocs.io/en/master/locales/ar_EG.html>`__ - Arabic (Egypt)
- - `ar\_PS <https://faker.readthedocs.io/en/master/locales/ar_PS.html>`__ - Arabic (Palestine)
- - `ar\_SA <https://faker.readthedocs.io/en/master/locales/ar_SA.html>`__ - Arabic (Saudi Arabia)
- - `bg\_BG <https://faker.readthedocs.io/en/master/locales/bg_BG.html>`__ - Bulgarian
- - `cs\_CZ <https://faker.readthedocs.io/en/master/locales/cs_CZ.html>`__ - Czech
- - `de\_DE <https://faker.readthedocs.io/en/master/locales/de_DE.html>`__ - German
- - `dk\_DK <https://faker.readthedocs.io/en/master/locales/dk_DK.html>`__ - Danish
- - `el\_GR <https://faker.readthedocs.io/en/master/locales/el_GR.html>`__ - Greek
- - `en\_AU <https://faker.readthedocs.io/en/master/locales/en_AU.html>`__ - English (Australia)
- - `en\_CA <https://faker.readthedocs.io/en/master/locales/en_CA.html>`__ - English (Canada)
- - `en\_GB <https://faker.readthedocs.io/en/master/locales/en_GB.html>`__ - English (Great Britain)
- - `en\_NZ <https://faker.readthedocs.io/en/master/locales/en_NZ.html>`__ - English (New Zealand)
- - `en\_US <https://faker.readthedocs.io/en/master/locales/en_US.html>`__ - English (United States)
- - `es\_ES <https://faker.readthedocs.io/en/master/locales/es_ES.html>`__ - Spanish (Spain)
- - `es\_MX <https://faker.readthedocs.io/en/master/locales/es_MX.html>`__ - Spanish (Mexico)
- - `et\_EE <https://faker.readthedocs.io/en/master/locales/et_EE.html>`__ - Estonian
- - `fa\_IR <https://faker.readthedocs.io/en/master/locales/fa_IR.html>`__ - Persian (Iran)
- - `fi\_FI <https://faker.readthedocs.io/en/master/locales/fi_FI.html>`__ - Finnish
- - `fr\_FR <https://faker.readthedocs.io/en/master/locales/fr_FR.html>`__ - French
- - `hi\_IN <https://faker.readthedocs.io/en/master/locales/hi_IN.html>`__ - Hindi
- - `hr\_HR <https://faker.readthedocs.io/en/master/locales/hr_HR.html>`__ - Croatian
- - `hu\_HU <https://faker.readthedocs.io/en/master/locales/hu_HU.html>`__ - Hungarian
- - `it\_IT <https://faker.readthedocs.io/en/master/locales/it_IT.html>`__ - Italian
- - `ja\_JP <https://faker.readthedocs.io/en/master/locales/ja_JP.html>`__ - Japanese
- - `ko\_KR <https://faker.readthedocs.io/en/master/locales/ko_KR.html>`__ - Korean
- - `lt\_LT <https://faker.readthedocs.io/en/master/locales/lt_LT.html>`__ - Lithuanian
- - `lv\_LV <https://faker.readthedocs.io/en/master/locales/lv_LV.html>`__ - Latvian
- - `ne\_NP <https://faker.readthedocs.io/en/master/locales/ne_NP.html>`__ - Nepali
- - `nl\_NL <https://faker.readthedocs.io/en/master/locales/nl_NL.html>`__ - Dutch (Netherlands)
- - `no\_NO <https://faker.readthedocs.io/en/master/locales/no_NO.html>`__ - Norwegian
- - `pl\_PL <https://faker.readthedocs.io/en/master/locales/pl_PL.html>`__ - Polish
- - `pt\_BR <https://faker.readthedocs.io/en/master/locales/pt_BR.html>`__ - Portuguese (Brazil)
- - `pt\_PT <https://faker.readthedocs.io/en/master/locales/pt_PT.html>`__ - Portuguese (Portugal)
- - `ro\_RO <https://faker.readthedocs.io/en/master/locales/ro_RO.html>`__ - Romanian
- - `ru\_RU <https://faker.readthedocs.io/en/master/locales/ru_RU.html>`__ - Russian
- - `sl\_SI <https://faker.readthedocs.io/en/master/locales/sl_SI.html>`__ - Slovene
- - `sv\_SE <https://faker.readthedocs.io/en/master/locales/sv_SE.html>`__ - Swedish
- - `tr\_TR <https://faker.readthedocs.io/en/master/locales/tr_TR.html>`__ - Turkish
- - `uk\_UA <https://faker.readthedocs.io/en/master/locales/uk_UA.html>`__ - Ukrainian
- - `zh\_CN <https://faker.readthedocs.io/en/master/locales/zh_CN.html>`__ - Chinese (China)
- - `zh\_TW <https://faker.readthedocs.io/en/master/locales/zh_TW.html>`__ - Chinese (Taiwan)
- - `ka\_GE <https://faker.readthedocs.io/en/master/locales/ka_GE.html>`__ - Georgian (Georgia)
- Command line usage
- ------------------
- When installed, you can invoke faker from the command-line:
- .. code:: bash
- faker [-h] [--version] [-o output]
- [-l {bg_BG,cs_CZ,...,zh_CN,zh_TW}]
- [-r REPEAT] [-s SEP]
- [-i {package.containing.custom_provider otherpkg.containing.custom_provider}]
- [fake] [fake argument [fake argument ...]]
- Where:
- - ``faker``: is the script when installed in your environment, in
- development you could use ``python -m faker`` instead
- - ``-h``, ``--help``: shows a help message
- - ``--version``: shows the program's version number
- - ``-o FILENAME``: redirects the output to the specified filename
- - ``-l {bg_BG,cs_CZ,...,zh_CN,zh_TW}``: allows use of a localized
- provider
- - ``-r REPEAT``: will generate a specified number of outputs
- - ``-s SEP``: will generate the specified separator after each
- generated output
- - ``-i {my.custom_provider other.custom_provider}`` list of additional custom providers to use.
- Note that is the import path of the package containing your Provider class, not the custom Provider class itself.
- - ``fake``: is the name of the fake to generate an output for, such as
- ``name``, ``address``, or ``text``
- - ``[fake argument ...]``: optional arguments to pass to the fake (e.g. the profile fake takes an optional list of comma separated field names as the first argument)
- Examples:
- .. code:: bash
- $ faker address
- 968 Bahringer Garden Apt. 722
- Kristinaland, NJ 09890
- $ faker -l de_DE address
- Samira-Niemeier-Allee 56
- 94812 Biedenkopf
- $ faker profile ssn,birthdate
- {'ssn': u'628-10-1085', 'birthdate': '2008-03-29'}
- $ faker -r=3 -s=";" name
- Willam Kertzmann;
- Josiah Maggio;
- Gayla Schmitt;
- How to create a Provider
- ------------------------
- .. code:: python
- from faker import Faker
- fake = Faker()
- # first, import a similar Provider or use the default one
- from faker.providers import BaseProvider
- # create new provider class. Note that the class name _must_ be ``Provider``.
- class Provider(BaseProvider):
- def foo(self):
- return 'bar'
- # then add new provider to faker instance
- fake.add_provider(Provider)
- # now you can use:
- fake.foo()
- > 'bar'
- How to customize the Lorem Provider
- -----------------------------------
- You can provide your own sets of words if you don't want to use the
- default lorem ipsum one. The following example shows how to do it with a list of words picked from `cakeipsum <http://www.cupcakeipsum.com/>`__ :
- .. code:: python
- from faker import Faker
- fake = Faker()
- my_word_list = [
- 'danish','cheesecake','sugar',
- 'Lollipop','wafer','Gummies',
- 'sesame','Jelly','beans',
- 'pie','bar','Ice','oat' ]
- fake.sentence()
- #'Expedita at beatae voluptatibus nulla omnis.'
- fake.sentence(ext_word_list=my_word_list)
- # 'Oat beans oat Lollipop bar cheesecake.'
- How to use with Factory Boy
- ---------------------------
- `Factory Boy` already ships with integration with ``Faker``. Simply use the
- ``factory.Faker`` method of ``factory_boy``:
- .. code:: python
- import factory
- from myapp.models import Book
- class BookFactory(factory.Factory):
- class Meta:
- model = Book
- title = factory.Faker('sentence', nb_words=4)
- author_name = factory.Faker('name')
- Accessing the `random` instance
- -------------------------------
- The ``.random`` property on the generator returns the instance of ``random.Random``
- used to generate the values:
- .. code:: python
- from faker import Faker
- fake = Faker()
- fake.random
- fake.random.getstate()
- By default all generators share the same instance of ``random.Random``, which
- can be accessed with ``from faker.generator import random``. Using this may
- be useful for plugins that want to affect all faker instances.
- Seeding the Generator
- ---------------------
- When using Faker for unit testing, you will often want to generate the same
- data set. For convenience, the generator also provide a ``seed()`` method, which
- seeds the shared random number generator. Calling the same methods with the
- same version of faker and seed produces the same results.
- .. code:: python
- from faker import Faker
- fake = Faker()
- fake.seed(4321)
- print(fake.name())
- > Margaret Boehm
- Each generator can also be switched to its own instance of ``random.Random``,
- separate to the shared one, by using the ``seed_instance()`` method, which acts
- the same way. For example:
- .. code-block:: python
- from faker import Faker
- fake = Faker()
- fake.seed_instance(4321)
- print(fake.name())
- > Margaret Boehm
- Please note that as we keep updating datasets, results are not guaranteed to be
- consistent across patch versions. If you hardcode results in your test, make sure
- you pinned the version of ``Faker`` down to the patch number.
- Tests
- -----
- Installing dependencies:
- .. code:: bash
- $ pip install -r tests/requirements.txt
- Run tests:
- .. code:: bash
- $ python setup.py test
- or
- .. code:: bash
- $ python -m unittest -v tests
- Write documentation for providers:
- .. code:: bash
- $ python -m faker > docs.txt
- Contribute
- ----------
- Please see `CONTRIBUTING`_.
- License
- -------
- Faker is released under the MIT License. See the bundled `LICENSE`_ file for details.
- Credits
- -------
- - `FZaninotto`_ / `PHP Faker`_
- - `Distribute`_
- - `Buildout`_
- - `modern-package-template`_
- .. _FZaninotto: https://github.com/fzaninotto
- .. _PHP Faker: https://github.com/fzaninotto/Faker
- .. _Perl Faker: http://search.cpan.org/~jasonk/Data-Faker-0.07/
- .. _Ruby Faker: https://github.com/stympy/faker
- .. _Distribute: https://pypi.org/project/distribute/
- .. _Buildout: http://www.buildout.org/
- .. _modern-package-template: https://pypi.org/project/modern-package-template/
- .. _extended docs: https://faker.readthedocs.io/en/latest/
- .. _bundled providers: https://faker.readthedocs.io/en/latest/providers.html
- .. _community providers: https://faker.readthedocs.io/en/latest/communityproviders.html
- .. _LICENSE: https://github.com/joke2k/faker/blob/master/LICENSE.txt
- .. _CONTRIBUTING: https://github.com/joke2k/faker/blob/master/CONTRIBUTING.rst
- .. _Factory Boy: https://github.com/FactoryBoy/factory_boy
- .. |pypi| image:: https://img.shields.io/pypi/v/Faker.svg?style=flat-square&label=version
- :target: https://pypi.org/project/Faker/
- :alt: Latest version released on PyPi
- .. |coverage| image:: https://img.shields.io/coveralls/joke2k/faker/master.svg?style=flat-square
- :target: https://coveralls.io/r/joke2k/faker?branch=master
- :alt: Test coverage
- .. |unix_build| image:: https://img.shields.io/travis/joke2k/faker/master.svg?style=flat-square&label=unix%20build
- :target: http://travis-ci.org/joke2k/faker
- :alt: Build status of the master branch on Mac/Linux
- .. |windows_build| image:: https://img.shields.io/appveyor/ci/joke2k/faker/master.svg?style=flat-square&label=windows%20build
- :target: https://ci.appveyor.com/project/joke2k/faker
- :alt: Build status of the master branch on Windows
- .. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square
- :target: https://raw.githubusercontent.com/joke2k/faker/master/LICENSE.txt
- :alt: Package license
|