Metadata-Version: 2.4
Name: exdrf-pd
Version: 0.1.17
Summary: Use Pydantic with Ex-DRF.
Author-email: Nicu Tofan <nicu.tofan@gmail.com>
License-Expression: MIT
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Development Status :: 3 - Alpha
Classifier: Typing :: Typed
Requires-Python: >=3.12.2
Description-Content-Type: text/markdown
Requires-Dist: exdrf>=0.1.17
Requires-Dist: pydantic>=2.10.6
Provides-Extra: dev
Requires-Dist: autoflake; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: isort; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: pyproject-flake8; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: pytest-mock; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: wheel; extra == "dev"
Requires-Dist: click<9,>=8.2.1; extra == "dev"

# Pydantic support for Ex-DRF

**exdrf-pd** connects **Pydantic v2** models to the **exdrf** dataset tree. It
is the usual path for HTTP APIs and validators that prefer **`BaseModel`** over
SQLAlchemy declarative classes.

## What it provides

- **`ExModel`** subclasses and visitors that expose resources and fields in the
  same shapes **exdrf** uses elsewhere, so codegen and tooling can treat ORM and
  Pydantic sources uniformly where supported.
- **`dataset_from_pydantic`** (and related imports under **`exdrf_pd`**) for
  building an **`ExDataset`** from your model modules—used by plugins such as
  **exdrf-gen-pd2dare**.

## Dependencies

**exdrf** and **pydantic** (see `pyproject.toml`). Python **3.12.2+** is
required.

## Related packages

- **exdrf-gen-al2pd** — emits Pydantic `Xxx` / `XxxEx` / `XxxCreate` / `XxxEdit`
  from SQLAlchemy metadata (often paired with **exdrf-gen-al2r**).
- **exdrf-ts** — maps field types and Python annotations to TypeScript for DARE
  and other TS emitters; depends on **exdrf-pd**.
- **exdrf-gen-pd2dare** — generates DARE TypeScript from **`ExModel`** classes.

Install **exdrf-gen** and the plugin you need; see **`exdrf-gen`** README for
the plugin entry-point pattern.
