Source code for tsdat.io.handlers

from pydantic import Field
from .base import FileHandler
from .readers import NetCDFReader, CSVReader, ParquetReader, ZarrReader
from .writers import (
    NetCDFWriter,
    SplitNetCDFWriter,
    CSVWriter,
    ParquetWriter,
    ZarrWriter,
)

__all__ = [
    "NetCDFHandler",
    "SplitNetCDFHandler",
    "CSVHandler",
    "ParquetHandler",
    "ZarrHandler",
]


[docs]class NetCDFHandler(FileHandler):
[docs] extension: str = "nc"
[docs] reader: NetCDFReader = Field(default_factory=NetCDFReader)
[docs] writer: NetCDFWriter = Field(default_factory=NetCDFWriter)
[docs]class SplitNetCDFHandler(FileHandler):
[docs] extension: str = "nc"
[docs] reader: NetCDFReader = Field(default_factory=NetCDFReader)
[docs] writer: SplitNetCDFWriter = Field(default_factory=SplitNetCDFWriter)
[docs]class CSVHandler(FileHandler):
[docs] extension: str = "csv"
[docs] reader: CSVReader = Field(default_factory=CSVReader)
[docs] writer: CSVWriter = Field(default_factory=CSVWriter)
[docs]class ParquetHandler(FileHandler):
[docs] extension: str = "parquet"
[docs] reader: ParquetReader = Field(default_factory=ParquetReader)
[docs] writer: ParquetWriter = Field(default_factory=ParquetWriter)
[docs]class ZarrHandler(FileHandler):
[docs] extension: str = "zarr"
[docs] reader: ZarrReader = Field(default_factory=ZarrReader)
[docs] writer: ZarrWriter = Field(default_factory=ZarrWriter)