Skip to main content

Mock data generation for pydantic based models and python dataclasses

Project description

Starlite Logo - Light Starlite Logo - Dark

PyPI - License PyPI - Python Version

Discord Matrix Reddit

⚠️

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 TypeDicts. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydantic_factories-1.17.3.tar.gz (25.7 kB view details)

Uploaded Source

Built Distribution

pydantic_factories-1.17.3-py3-none-any.whl (31.9 kB view details)

Uploaded Python 3

File details

Details for the file pydantic_factories-1.17.3.tar.gz.

File metadata

  • Download URL: pydantic_factories-1.17.3.tar.gz
  • Upload date:
  • Size: 25.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.0 CPython/3.11.2 Darwin/22.3.0

File hashes

Hashes for pydantic_factories-1.17.3.tar.gz
Algorithm Hash digest
SHA256 de36e0db7108af5f4328308da9a4049311c4d5e0814553d2f39078b08b05e48d
MD5 f8609a841ef72ea5fd48f5ac1e6c7ff7
BLAKE2b-256 31c173e688b29bee1d68604b45e8ce3ee410b4bd09ded23546e18263c1855c74

See more details on using hashes here.

File details

Details for the file pydantic_factories-1.17.3-py3-none-any.whl.

File metadata

File hashes

Hashes for pydantic_factories-1.17.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5a1522a31d27e1af414719c510a4a934365292f3ea6fdc843ed65d0564242636
MD5 a6e822e2024c15c95b6b448d33a7f61d
BLAKE2b-256 404981bbfccaf7174e7a94be1fa95d9ed46da6663372b2a7cd597c1c6fdfcabe

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page