The GitHub Actions job "Tests" on airflow.git has succeeded.
Run started by GitHub user potiuk (triggered by potiuk).

Head commit for run:
ae98c57ef57caf8c8b1403953bd5518e04dead38 / Jarek Potiuk <[email protected]>
Add Pydantic-powered ORM models serialization for internal API.

Add basic serialization capabilities for the ORM SqlAlchemy models
that we use on the client side of the Internal API. Serializing
the whole ORM models is rather complex, therefore it seems much
more reasonable to convert the ORM models into serializable
form and use them - rather than the SQLAlchemy models.

There are just a handful of those models that we need to serialize,
and it is important to maintain typing of the fields in the objects
for MyPy verification so we can allow some level of duplication
and redefine the models as pure Python objects.

We only need one-way converstion (from database models to Python models),
because all the DB operations and modifications of the Database
entries will be done in the internal API server, so the server side
of any method will be able to use primary key stored in the serializable
object, to retrieve the actual DB model to update.

We also need to serialization to work both way - an easy way to convert
such Python classees to json and back - including validation.

We could serialize those models manually, but this would be quite an
overhead to develop and maintain - therefore we are harnessing the
power of Pydantic, that has already ORM mapping to plain Python
(Pydantic) classes built in.

This PR implements definition of the Pydantic classes and tests
for the classes testing:

* conversion of the ORM models to Pydantic objects
* serialization of the Pydantic classes to json
* deserialization of the json-serialized classes to Pydantic objects

Report URL: https://github.com/apache/airflow/actions/runs/4276045939

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to