url: Utils for data locators#

URL module

slice_sequence_to_string(data_slice)[source]#

Convert a Python slice sequence or a slice into a string

Parameters:

data_slice (Union[Iterable[Union[slice, int, EllipsisType]], slice, int, EllipsisType])

Return type:

str

class DataUrl(path=None, file_path=None, data_path=None, data_slice=None, scheme=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 (str | Path | None) – Path representing a link to a data. If specified, other arguments must not be provided.

  • file_path (str | Path | None) – Link to the file containing the the data. None if there is no data selection.

  • data_path (str | None) – Data selection applied to the data file selected. None if there is no data selection.

  • data_slice (tuple[Union[slice, int, EllipsisType], ...] | None) – Slicing applied of the selected data. None if no slicing applied.

  • scheme (str | None) – Scheme of the URL. “silx”, “fabio” is supported. Other strings can be provided, but is_valid() will be false.

is_valid()[source]#

Returns true if the URL is valid. Else attributes can be None.

Return type:

bool

path()[source]#

Returns the string representing the URL.

Return type:

str

is_absolute()[source]#

Returns true if the file path is an absolute path.

Return type:

bool

file_path()[source]#

Returns the path to the file containing the data.

Return type:

str

data_path()[source]#

Returns the path inside the file to the data.

Return type:

str | None

data_slice()[source]#

Returns the slicing applied to the data.

It is a tuple containing numbers, slice or ellipses.

Return type:

tuple[Union[slice, int, EllipsisType], ...] | None

scheme()[source]#

Returns the scheme. It can be None if no scheme is specified.

Return type:

str | None