tsdat.io.filehandlers.file_handlers
¶
Classes¶
Abstract class to define methods required by all FileHandlers. Classes |
|
Class to provide methods to read and write files with a variety of |
Functions¶
Python decorator to register an AbstractFileHandler in the FileHandler |
Function Descriptions
-
class
tsdat.io.filehandlers.file_handlers.
AbstractFileHandler
(parameters: Union[Dict, None] = None)[source]¶ Abstract class to define methods required by all FileHandlers. Classes derived from AbstractFileHandler should implement one or more of the following methods:
write(ds: xr.Dataset, filename: str, config: Config, **kwargs)
read(filename: str, **kwargs) -> xr.Dataset
- Parameters
parameters (Dict, optional) – Parameters that were passed to the FileHandler when it was registered in the storage config file, defaults to {}.
Class Methods
Reads in the given file and converts it into an Xarray dataset for
Saves the given dataset to a file.
Method Descriptions
-
read
(self, filename: str, **kwargs) → xarray.Dataset[source]¶ Reads in the given file and converts it into an Xarray dataset for use in the pipeline.
- Parameters
filename (str) – The path to the file to read in.
- Returns
A xr.Dataset object.
- Return type
xr.Dataset
-
write
(self, ds: xarray.Dataset, filename: str, config: tsdat.config.Config = None, **kwargs) → None[source]¶ Saves the given dataset to a file.
- Parameters
ds (xr.Dataset) – The dataset to save.
filename (str) – The path to where the file should be written to.
config (Config, optional) – Optional Config object, defaults to None
-
class
tsdat.io.filehandlers.file_handlers.
FileHandler
[source]¶ Class to provide methods to read and write files with a variety of extensions.
Class Methods
Reads in the given file and converts it into an xarray dataset object using the
Method to register a FileHandler for reading from or writing to files matching one or
Calls the appropriate FileHandler to write the dataset to the provided filename.
Method Descriptions
-
static
read
(filename: str, **kwargs) → xarray.Dataset[source]¶ Reads in the given file and converts it into an xarray dataset object using the registered FileHandler for the provided filepath.
- Parameters
filename (str) – The path to the file to read in.
- Returns
The raw file as an Xarray.Dataset object.
- Return type
xr.Dataset
-
static
register_file_handler
(method: Literal[read, write], patterns: Union[str, List[str]], handler: AbstractFileHandler)[source]¶ Method to register a FileHandler for reading from or writing to files matching one or more provided file patterns.
- Parameters
method ("Literal") – The method the FileHandler should call if the pattern is
Must be one of (matched.) – “read”, “write”.
patterns (Union[str, List[str]]) – The file pattern(s) that determine if this
should be run on a given filepath. (FileHandler) –
handler (AbstractFileHandler) – The AbstractFileHandler to register.
-
static
write
(ds: xarray.Dataset, filename: str, config: tsdat.config.Config = None, **kwargs) → None[source]¶ Calls the appropriate FileHandler to write the dataset to the provided filename.
- Parameters
ds (xr.Dataset) – The dataset to save.
filename (str) – The path to the file where the dataset should be written.
config (Config, optional) – Optional Config object. Defaults to None.
-
static
-
tsdat.io.filehandlers.file_handlers.
register_filehandler
(patterns: Union[str, List[str]]) → AbstractFileHandler[source]¶ Python decorator to register an AbstractFileHandler in the FileHandler object. The FileHandler object will be used by tsdat pipelines to read and write raw, intermediate, and processed data.
This decorator can be used to work with a specific AbstractFileHandler without having to specify a config file. This is useful when using an AbstractFileHandler for analysis or for tests outside of a pipeline. For tsdat pipelines, handlers should always be specified via the storage config file.
Example Usage:
import xarray as xr from tsdat.io import register_filehandler, AbstractFileHandler @register_filehandler(["*.nc", "*.cdf"]) class NetCdfHandler(AbstractFileHandler): def write(ds: xr.Dataset, filename: str, config: Config = None, **kwargs): ds.to_netcdf(filename) def read(filename: str, **kwargs) -> xr.Dataset: xr.load_dataset(filename)
- Parameters
patterns (Union[str, List[str]]) – The patterns (regex) that should be used to match a filepath to the AbstractFileHandler provided.
- Returns
The original AbstractFileHandler class, after it has been registered for use in tsdat pipelines.
- Return type