Skip to main content
`Ctrl`+`K`

# `url`: Utils for data locators

URL module

slice_sequence_to_string(data_slice)

  Convert a Python slice sequence or a slice into a string

  Parameters:

    data_slice (`Iterable`[`slice` | `int` | `EllipsisType`] | `slice` | `int` | `EllipsisType`)

  Return type:

    `str`

class DataUrl(path=None, file_path=None, data_path=None, data_slice=None, scheme=None)

  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/")

      >>> # HSDS urls are supported with a http or https schema
      >>> DataUrl("http://hsds-server.tld:8080/home/file")

  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`[`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()

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

    Return type:

      `bool`

  path()

    Returns the string representing the URL.

    Return type:

      `str`

  is_absolute()

    Returns true if the file path is an absolute path.

    Return type:

      `bool`

  file_path()

    Returns the path to the file containing the data.

    Return type:

      `str`

  data_path()

    Returns the path inside the file to the data.

    Return type:

      `str` | `None`

  data_slice()

    Returns the slicing applied to the data.

    It is a tuple containing numbers, slice or ellipses.

    Return type:

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

  scheme()

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

    Return type:

      `str` | `None`