Library Design
This library is designed to act as a consistent API to other DSS interaction libraries. Currently, many other libraries have overlapping but non-comprehensive support of DSS-interactions. For example the following libraries :
Library | DSS Versions | Timestamp Types Used for PER-AVG |
---|---|---|
pyhecdss | 6 Only | pandas.Periods |
pydsstools | 6 and 7 | datetime.datetime |
hec-dss-python | 7 Only | Inconsistent |
pandss
utilizes "Engines" to do the heavy lifting of the DSS interactions. Currently, engines are written to engage with the following libraries:
Engines are currently under development for the following:
Other compatable libraries that are not currently supported include:
pandss Engine
An Engine must implement the methods defined on pandss.engines.EngineABC
:
class EngineABC:
src: Path
use_units: bool = True
_catalog: Catalog
_is_open: bool
_object: Any
_create_new: bool
def __init__(self, src: str | Path, use_units: bool = True): ...
def open(self) -> Self: ...
def close(self): ...
def read_catalog(self) -> Catalog: ...
def read_rts(self, path: DatasetPath) -> RegularTimeseries: ...
def write_rts(self, path: DatasetPath, rts: RegularTimeseries): ...
@property
def catalog(self) -> Catalog: ...
@property
def is_open(self) -> bool: ...