<commit_before>## Elizabeth
[![Build Status](https://travis-ci.org/lk-geimfari/elizabeth.svg?branch=master)](https://travis-ci.org/lk-geimfari/elizabeth)
[![codecov](https://codecov.io/gh/lk-geimfari/elizabeth/branch/master/graph/badge.svg)](https://codecov.io/gh/lk-geimfari/elizabeth)
[![Documentation Status](https://readthedocs.org/projects/elizabeth/badge/?version=latest)](http://elizabeth.readthedocs.io/en/latest/?badge=latest)
[![PyPI version](https://badge.fury.io/py/elizabeth.svg)](https://badge.fury.io/py/elizabeth)
[![Python Version](https://img.shields.io/badge/python-v3.3%2C%20v3.4%2C%20v3.5%2C%20v3.6-brightgreen.svg)](https://github.com/lk-geimfari/elizabeth/)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/d773f20efa67430683bb24fff5af9db8)](https://www.codacy.com/app/likid-geimfari/church)

<p align="center">
  <img src="https://raw.githubusercontent.com/lk-geimfari/elizabeth/master/other/elizabeth_1.png">
  <br>
</p>

**Elizabeth** is a fast and easy to use Python library for generating dummy data for a variety of purposes.  This data can be particularly useful during software development and testing.  For example, it could be used to populate a testing database for a web application with user information such as email addresses, usernames, first names, last names, etc.  Elizabeth uses a JSON-based datastore and does not require any modules that are not in the Python standard library. There are over nineteen different [data providers](https://github.com/lk-geimfari/elizabeth/blob/master/PROVIDERS.md) available, which can produce data related to food, people, computer hardware, transportation, addresses, and more.

## Documentation
Elizabeth is simple to use, and the below examples should help you get started.  Complete documentation for `Elizabeth` is available here: [http://elizabeth.readthedocs.io/en/latest/](http://elizabeth.readthedocs.io/)

## Installation
To install `Elizabeth`, simply:

```zsh
➜  ~ pip install elizabeth
```

Also you can install it manually:
```zsh
➜  ~ git clone https://github.com/lk-geimfari/elizabeth.git
➜  ~ cd elizabeth
➜  make install
```


## Basic Usage

```python
>>> from elizabeth import Personal
>>> p = Personal('en')
>>>
>>> p.full_name(gender='female')
'<NAME>'
>>> p.blood_type()
'O-'
>>> p.occupation()
'Programmer'
```

## 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.  `Elizabeth` currently includes support for 23 different [locales](https://github.com/lk-geimfari/elizabeth/blob/master/LOCALES.md).

Using locales:

```python
>>> from elizabeth import Text
>>> en = Text()  # English is Elizabeth's default locale
>>> de = Text('de')

>>> en.sentence()
'Ports are used to communicate with the external world.'
>>> de.sentence()
'Wir müssen nicht vergessen Zickler.'
>>>
>>> en.color()
'Blue'
>>> de.color()
'Türkis'
```

When you only need to generate data for a single locale, use the `Generic` provider, and you can access all `Elizabeth`
providers from one object.

```python
>>> from elizabeth import Generic
>>> g = Generic('es')
>>>
>>> g.datetime.month()
'Agosto'
>>> g.code.imei()
'353918052107063'
>>> g.food.fruit()
'Limón'
```

## Advantages

`Elizabeth` offers a number of advantages over other similar libraries, such as `Faker`:

* Performance. `Elizabeth` is significantly [faster](http://i.imgur.com/ZqkE1k2.png) than other similar libraries.
* Completeness. `Elizabeth` strives to provide many detailed providers that offer a variety of data generators.
* Simplicity. `Elizabeth` does not require any modules other than the Python standard library.

See [here](https://gist.github.com/lk-geimfari/461ce92fd32379d7b73c9e12164a9154) for an example of how we compare
performance with other libraries.

## Integration with Web Application Frameworks

You can use `Elizabeth` during development and testing of applications built on a variety of frameworks. Here is an
example of integration with a `Flask` application:

```python
class Patient(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(120), unique=True)
    phone_number = db.Column(db.String(25))
    full_name = db.Column(db.String(100))
    weight = db.Column(db.String(64))
    height = db.Column(db.String(64))
    blood_type = db.Column(db.String(64))
    age = db.Column(db.Integer)

    def __init__(self, **kwargs):
        super(Patient, self).__init__(**kwargs)

    @staticmethod
    def _bootstrap(count=2000, locale='en'):
        from elizabeth import Personal

        person = Personal(locale)

        for _ in range(count):
            patient = Patient(
                email=person.email(),
                phone_number=person.telephone(),
                full_name=person.full_name(gender='female'),<commit_msg>Fixed errors<commit_after>## Elizabeth
[![Build Status](https://travis-ci.org/lk-geimfari/elizabeth.svg?branch=master)](https://travis-ci.org/lk-geimfari/elizabeth)
[![codecov](https://codecov.io/gh/lk-geimfari/elizabeth/branch/master/graph/badge.svg)](https://codecov.io/gh/lk-geimfari/elizabeth)
[![Documentation Status](https://readthedocs.org/projects/elizabeth/badge/?version=latest)](http://elizabeth.readthedocs.io/en/latest/?badge=latest)
[![PyPI version](https://badge.fury.io/py/elizabeth.svg)](https://badge.fury.io/py/elizabeth)
[![Python Version](https://img.shields.io/badge/python-v3.3%2C%20v3.4%2C%20v3.5%2C%20v3.6-brightgreen.svg)](https://github.com/lk-geimfari/elizabeth/)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/d773f20efa67430683bb24fff5af9db8)](https://www.codacy.com/app/likid-geimfari/church)

<p align="center">
  <img src="https://raw.githubusercontent.com/lk-geimfari/elizabeth/master/other/elizabeth_1.png">
  <br>
</p>

**Elizabeth** is a fast and easy to use Python library for generating dummy data for a variety of purposes.  This data can be particularly useful during software development and testing.  For example, it could be used to populate a testing database for a web application with user information such as email addresses, usernames, first names, last names, etc.  Elizabeth uses a JSON-based datastore and does not require any modules that are not in the Python standard library. There are over nineteen different [data providers](https://github.com/lk-geimfari/elizabeth/blob/master/PROVIDERS.md) available, which can produce data related to food, people, computer hardware, transportation, addresses, and more.

## Documentation
Elizabeth is simple to use, and the below examples should help you get started.  Complete documentation for `Elizabeth` is available here: [http://elizabeth.readthedocs.io/en/latest/](http://elizabeth.readthedocs.io/)

## Installation
To install `Elizabeth`, simply:

```zsh
➜  ~ pip install elizabeth
```

Also you can install it manually:
```zsh
➜  ~ git clone https://github.com/lk-geimfari/elizabeth.git
➜  ~ cd elizabeth
➜  make install
```


## Basic Usage

```python
>>> from elizabeth import Personal
>>> p = Personal('en')
>>>
>>> p.full_name(gender='female')
'<NAME>'
>>> p.blood_type()
'O-'
>>> p.occupation()
'Programmer'
```

## 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.  `Elizabeth` currently includes support for 23 different [locales](https://github.com/lk-geimfari/elizabeth/blob/master/LOCALES.md).

Using locales:

```python
>>> from elizabeth import Text
>>> en = Text()  # English is Elizabeth's default locale
>>> de = Text('de')

>>> en.sentence()
'Ports are used to communicate with the external world.'
>>> de.sentence()
'Wir müssen nicht vergessen Zickler.'
>>>
>>> en.color()
'Blue'
>>> de.color()
'Türkis'
```

When you only need to generate data for a single locale, use the `Generic` provider, and you can access all `Elizabeth`
providers from one object.

```python
>>> from elizabeth import Generic
>>> g = Generic('es')
>>>
>>> g.datetime.month()
'Agosto'
>>> g.code.imei()
'353918052107063'
>>> g.food.fruit()
'Limón'
```

## Advantages

`Elizabeth` offers a number of advantages over other similar libraries, such as `Faker`:

* Performance. `Elizabeth` is significantly [faster](http://i.imgur.com/ZqkE1k2.png) than other similar libraries.
* Completeness. `Elizabeth` strives to provide many detailed providers that offer a variety of data generators.
* Simplicity. `Elizabeth` does not require any modules other than the Python standard library.

See [here](https://gist.github.com/lk-geimfari/461ce92fd32379d7b73c9e12164a9154) for an example of how we compare
performance with other libraries.

## Integration with Web Application Frameworks

You can use `Elizabeth` during development and testing of applications built on a variety of frameworks. Here is an
example of integration with a `Flask` application:

```python
class Patient(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(120), unique=True)
    phone_number = db.Column(db.String(25))
    full_name = db.Column(db.String(100))
    weight = db.Column(db.String(64))
    height = db.Column(db.String(64))
    blood_type = db.Column(db.String(64))
    age = db.Column(db.Integer)

    def __init__(self, **kwargs):
        super(Patient, self).__init__(**kwargs)

    @staticmethod
    def _bootstrap(count=500, locale='en', gender):
        from elizabeth import Personal

        person = Personal(locale)

        for _ in range(count):
            patient = Patient(
                email=person.email(),
                phone_number=person.telephone(),
                full_name=person.full_name(gender=gender),
{'fraction_non_alphanumeric': 0.13521560574948666, 'fraction_numerical': 0.019609856262833677, 'mean_word_length': 4.556759840273816, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 133, 'https://': 32, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2026638', 'n_tokens_mistral': 3320, 'n_tokens_neox': 3009, 'n_words': 861}