Skip to content

storage_retriever_input

Classes:

Name Description
StorageRetrieverInput

Returns an object representation of an input storage key.

Classes#

StorageRetrieverInput #

StorageRetrieverInput(input_key: str)

Returns an object representation of an input storage key.

Input storage keys should be formatted like:

"--datastream sgp.met.b0 --start 20230801 --end 20230901"
"--datastream sgp.met.b0 --start 20230801 --end 20230901 --location_id sgp --data_level b0"

Attributes:

Name Type Description
datastream
end
input_key
kwargs
start
Source code in tsdat/io/retrievers/storage_retriever_input.py
def __init__(self, input_key: str):
    kwargs: Dict[str, str] = {}

    if len(input_key.split("::")) == 3:
        logger.warning(
            "Using old Storage input key format (datastream::start::end)."
        )
        datastream, _start, _end = input_key.split("::")
        kwargs["datastream"] = datastream
        kwargs["start"] = _start
        kwargs["end"] = _end
    else:
        args = shlex.split(input_key)
        key = ""
        for arg in args:
            if arg.startswith("-"):
                key = arg.lstrip("-")
                kwargs[key] = ""
            elif key in kwargs:
                kwargs[key] = arg
                key = ""
            else:
                raise ValueError(
                    "Bad storage retriever input key. Expected format like"
                    f" '--key1 value1 --key2 value2 ...', got '{input_key}'."
                )

    self.input_key = input_key
    self.datastream = kwargs.pop("datastream")
    self._start = kwargs.pop("start")
    self._end = kwargs.pop("end")

    start_format = "%Y%m%d.%H%M%S" if "." in self._start else "%Y%m%d"
    end_format = "%Y%m%d.%H%M%S" if "." in self._end else "%Y%m%d"
    self.start = datetime.strptime(self._start, start_format)
    self.end = datetime.strptime(self._end, end_format)

    self.kwargs = kwargs

Attributes#

datastream instance-attribute #
datastream = pop('datastream')
end instance-attribute #
end = strptime(_end, end_format)
input_key instance-attribute #
input_key = input_key
kwargs instance-attribute #
kwargs = kwargs
start instance-attribute #
start = strptime(_start, start_format)