model#

Root models for data structures used within the package.

Module Contents#

Classes#

DataStructure

A parent for all data structures.

Functions#

deserialize_function(→ Callable[Ellipsis, Any])

Import a python function from a dotted import string (e.g.,

deserialize_class(→ type)

Import a python class from a dotted import string (e.g.,

class DataStructure(/, **data: Any)[source]#

Bases: pydantic.BaseModel

A parent for all data structures.

Data attributes are generated from the class’ type annotations, similarly to dataclasses. If data attributes are JSON-serializable, data structure can be serialized using json() method. This string can be deserialized using parse_raw() classmethod of a correspondent child class.

If required, data fields can be validated, see examples for more information. It is also possible to define custom field types with advanced validation.

This class is a pre-configured pydantic model. See its documentation for details of usage information.

model_config[source]#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

deserialize_function(fun: str) Callable[Ellipsis, Any][source]#

Import a python function from a dotted import string (e.g., “quantify_scheduler.structure.model.deserialize_function”).

Parameters:

fun (str) – A dotted import path to a function (e.g., “quantify_scheduler.waveforms.square”), or a function pointer.

Return type:

Callable[[Any], Any]

Raises:

ValueError – Raised if the function cannot be imported from path in the string.

deserialize_class(cls: str) type[source]#

Import a python class from a dotted import string (e.g., “quantify_scheduler.structure.model.DataStructure”).

Parameters:

cls (str) – A dotted import path to a class (e.g., “quantify_scheduler.structure.model.DataStructure”), or a class pointer.

Returns:

The type you are trying to import.

Raises:

ValueError – Raised if the class cannot be imported from path in the string.