pydantic-apply
Installation
Just use pip install pydantic-apply to install the library.
Note: pydantic-apply is compatible with pydantic version 2.x on Python 3.10, 3.11, 3.12,
3.13 and 3.14. This is also ensured running all tests on all those versions using tox.
About
With pydantic-apply you can apply changes to your pydantic models by using
the ApplyModelMixin it provides:
import pydantic
from pydantic_apply import ApplyModelMixin
class Something(ApplyModelMixin, pydantic.BaseModel):
name: str
age: int
obj = Something(name='John Doe', age=42)
obj.model_apply({
"age": 43,
})
assert obj.age == 43
As the apply data you may pass any dictionary or other pydanic object as you
wish. pydantic objects will be converted to dict's when being applied - but will
only use fields that where explicitly set on the model instance. Also note
that .apply() will ignore all fields not present in the model, like the
model constructor would.
Nested models
pydantic-apply will also know how to apply changes to nested models. If those
models are by themself subclasses of ApplyModelMixin it will call apply()
on those fields as well. Otherwise the whole attribute will be replaced.
Apply changes when using validate_assignment
When your models have validate_assignment enabled it may become tricky to
apply changes to the model. This is due to the fact that you only can assign
fields once at a time. But with validate_assignment enabled this means each
field assignment will trigger its own validation and this validation might
fail as the model state is not completely changes and thus in a "broken"
intermediate state.
pydantic-apply will take care of this issue and disable the validation for
each assignment while applying the changes. It will also ensure the resulting
object will still pass the validation, so you don't have to care about this
case at all.
Contributing
If you want to contribute to this project, feel free to just fork the project, create a dev branch in your fork and then create a pull request (PR). If you are unsure about whether your changes really suit the project please create an issue first, to talk about this.
Metadata
Release files for pydantic-apply 0.9.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pydantic_apply-0.9.1.tar.gz | 5.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pydantic_apply-0.9.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.6 kB
Release files / pydantic_apply-0.9.1.tar.gz
| Download URL | pydantic_apply-0.9.1.tar.gz |
|---|---|
| Size | 5.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c613c0dd2f6152fe6c93a79d8096583570aed01268eed69eb312975aafc6d849
|
|
BLAKE2b-256 checksum How to use checksums |
6579d5ff2cdbdf66804095e7bb4ba1551f1748afedf6adfd59d61f14316a77b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / pydantic_apply-0.9.1-py3-none-any.whl
| Download URL | pydantic_apply-0.9.1-py3-none-any.whl |
|---|---|
| Size | 6.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c99a5ef6f43f2c05ed37d16b1e411526ccae75729e95b0f3e2e63ad6560c16ca
|
|
BLAKE2b-256 checksum How to use checksums |
b5bde7288b6f9cf9e1eda2e776c7a9c67f168baf96b39ccb88eddfa773122b10
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for pydantic-apply 0.9.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.