No summary available
Project Links
Meta
Author: Roman Right
Requires Python: >=3.9,<4.0
Classifiers
License
- OSI Approved :: Apache Software License
Programming Language
- Python :: 3
- Python :: 3.9
- Python :: 3.10
Lazy parsing for Pydantic models
This library provides a lazy interface for parsing objects from dictionaries. During the parsing, it saves the raw data inside the object and parses each field on demand.
Install
poetry
poetry add lazy-model
pip
pip install lazy-model
Usage
from lazy_model import LazyModel
from pydantic import validator
class Sample(LazyModel):
i: int
s: str
@validator("s")
def s_upper(cls, v):
return v.upper()
obj = Sample.lazy_parse({"i": "10", "s": "test"})
# at this point the data is stored in a raw format inside the object
print(obj.__dict__)
# >>> {'i': NAO, 's': NAO}
# NAO - Not An Object. It shows that the field was not parsed yet.
print(obj.s)
# >>> TEST
# Custom validator works during lazy parsing
print(obj.__dict__)
# >>> {'i': NAO, 's': 'TEST'}
# The `s` field was already parsed by this step
print(obj.i, type(obj.i))
# >>> 10 <class 'int'>
# It converted `10` from string to int based on the annotations
print(obj.__dict__)
# >>> {'i': 10, 's': 'TEST'}
# Everything was parsed
Aug 07, 2025
0.4.0
Apr 22, 2025
0.3.0
Sep 10, 2023
0.2.0
Jul 06, 2023
0.1.0b0
Dec 19, 2022
0.0.5
Dec 02, 2022
0.0.4
Dec 01, 2022
0.0.3
Nov 30, 2022
0.0.2
Nov 30, 2022
0.0.1
Wheel compatibility matrix
Files in release
Extras:
None
Dependencies:
(>=1.9.0)
pydantic