Skip to content

data_handler

Classes:

Name Description
DataHandler

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.

Methods:#

patch_parameters #
patch_parameters() -> Self
Source code in tsdat/io/base/data_handler.py
@model_validator(mode="after")
def patch_parameters(self) -> Self:
    for dataclass in ["reader", "writer"]:
        v = getattr(self, dataclass)
        params = self.parameters.get(dataclass, {})
        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 self