url: Utils for data locators

URL module

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 omited if there is 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")
>>> # Is also support parsing of file access for convenience
>>> DataUrl("./foo/bar/image.edf")
>>> DataUrl("C:/data/")
  • path (str) – Path representing a link to a data. If specified, other arguments are not used.

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

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

  • data_slice (Tuple[int,slice,Ellipse]) – Slicing applyed of the selected data. None if no slicing applyed.

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


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

Return type



Returns the string representing the URL.

Return type



Returns true if the file path is an absolute path.

Return type



Returns the path to the file containing the data.

Return type



Returns the path inside the file to the data.

Return type



Returns the slicing applied to the data.

It is a tuple containing numbers, slice or ellipses.

Return type

Tuple[int, slice, Ellipse]


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

Return type

Union[str, None]