Skip to content

data_handler

Classes:

Name Description
DataHandler

Groups a DataReader subclass and a DataWriter subclass together.

Classes#

DataHandler #

Bases: ParameterizedClass

Groups a DataReader subclass and a DataWriter subclass together.

This provides a unified approach to data I/O. DataHandlers are typically expected to be able to round-trip the data, i.e. the following psuedocode is generally true:

`handler.read(handler.write(dataset))) == dataset`

Methods:

Name Description
patch_parameters

Attributes:

Name Type Description
parameters Dict[str, Any]
reader DataReader

The DataReader subclass responsible for reading input data.

writer DataWriter

The FileWriter subclass responsible for writing output data.

Attributes#

parameters class-attribute instance-attribute #
parameters: Dict[str, Any] = Field(default_factory=dict)
reader instance-attribute #
reader: DataReader

The DataReader subclass responsible for reading input data.

writer instance-attribute #
writer: DataWriter

The FileWriter subclass responsible for writing output data.

Functions#

patch_parameters #
patch_parameters(
    v: DataReader, values: Dict[str, Any], field: ModelField
)
Source code in tsdat/io/base/data_handler.py
@validator("reader", "writer", pre=True, check_fields=False, always=True)
def patch_parameters(cls, v: DataReader, values: Dict[str, Any], field: ModelField):
    params = values.get("parameters", {}).pop(field.name, {})
    for param_name, param_value in params.items():
        if isinstance(v.parameters, dict):
            v.parameters[param_name] = param_value
        else:
            setattr(v.parameters, param_name, param_value)
    return v