Mock data generation for pydantic based models and python dataclasses
Project description
⚠️
The next version of this library is released as polyfactory. Users are encouraged to migrate to it.
⚠️
Pydantic-Factories
This library offers powerful mock data generation capabilities for pydantic
based models, dataclasses
and TypeDict
s. It can also be used with other libraries that use pydantic as a foundation.
Check out the documentation 📚.
Installation
pip install pydantic-factories
Example
from datetime import date, datetime
from typing import List, Union
from pydantic import BaseModel, UUID4
from pydantic_factories import ModelFactory
class Person(BaseModel):
id: UUID4
name: str
hobbies: List[str]
age: Union[float, int]
birthday: Union[datetime, date]
class PersonFactory(ModelFactory):
__model__ = Person
result = PersonFactory.build()
That's it - with almost no work, we are able to create a mock data object fitting the Person
class model definition.
This is possible because of the typing information available on the pydantic model and model-fields, which are used as a source of truth for data generation.
The factory parses the information stored in the pydantic model and generates a dictionary of kwargs that are passed to
the Person
class' init method.
Features
- ✅ supports both built-in and pydantic types
- ✅ supports pydantic field constraints
- ✅ supports complex field types
- ✅ supports custom model fields
- ✅ supports dataclasses
- ✅ supports TypedDicts
Why This Library?
- 💯 powerful
- 💯 extensible
- 💯 simple
- 💯 rigorously tested
Contributing
This library is open to contributions - in fact we welcome it. Please see the contribution guide!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pydantic_factories-1.17.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | de36e0db7108af5f4328308da9a4049311c4d5e0814553d2f39078b08b05e48d |
|
MD5 | f8609a841ef72ea5fd48f5ac1e6c7ff7 |
|
BLAKE2b-256 | 31c173e688b29bee1d68604b45e8ce3ee410b4bd09ded23546e18263c1855c74 |
Hashes for pydantic_factories-1.17.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a1522a31d27e1af414719c510a4a934365292f3ea6fdc843ed65d0564242636 |
|
MD5 | a6e822e2024c15c95b6b448d33a7f61d |
|
BLAKE2b-256 | 404981bbfccaf7174e7a94be1fa95d9ed46da6663372b2a7cd597c1c6fdfcabe |