url
: Utils for data locators¶
URL module
- slice_sequence_to_string(data_slice: Iterable[slice | int | ellipsis] | slice | int | ellipsis) str [source]¶
Convert a Python slice sequence or a slice into a string
- class DataUrl(path: str | Path | None = None, file_path: str | Path | None = None, data_path: str | None = None, data_slice: tuple[slice | int | ellipsis, ...] | None = None, scheme: str | None = None)[source]¶
Non-mutable object to parse a string representing a resource data locator.
It supports:
path to file and path inside file to the data
data slicing
fabio or silx access to the data
absolute and relative file access
>>> # fabio access using absolute path >>> DataUrl("fabio:///data/image.edf?slice=2") >>> DataUrl("fabio:///C:/data/image.edf?slice=2")
>>> # silx access using absolute path >>> DataUrl("silx:///data/image.h5?path=/data/dataset&slice=1,5") >>> DataUrl("silx:///data/image.edf?path=/scan_0/detector/data") >>> DataUrl("silx:///C:/data/image.edf?path=/scan_0/detector/data")
>>> # `path=` can be omitted if there are no other query keys >>> DataUrl("silx:///data/image.h5?/data/dataset") >>> # is the same as >>> DataUrl("silx:///data/image.h5?path=/data/dataset")
>>> # `::` can be used instead of `?` which can be useful with shell in >>> # command lines >>> DataUrl("silx:///data/image.h5::/data/dataset") >>> # is the same as >>> DataUrl("silx:///data/image.h5?/data/dataset")
>>> # Relative path access >>> DataUrl("silx:./image.h5") >>> DataUrl("fabio:./image.edf") >>> DataUrl("silx:image.h5") >>> DataUrl("fabio:image.edf")
>>> # It also supports parsing of file access for convenience >>> DataUrl("./foo/bar/image.edf") >>> DataUrl("C:/data/")
- Parameters:
path – Path representing a link to a data. If specified, other arguments must not be provided.
file_path – Link to the file containing the the data. None if there is no data selection.
data_path – Data selection applied to the data file selected. None if there is no data selection.
data_slice – Slicing applied of the selected data. None if no slicing applied.
scheme – Scheme of the URL. “silx”, “fabio” is supported. Other strings can be provided, but
is_valid()
will be false.