Skip to main content
`Ctrl`+`K`

# `silx.resources`: Project resources access

Access project’s data and documentation files.

All access to data and documentation files MUST be made through the functions of this modules to ensure access across different distribution schemes:

- Installing from source or from wheel

- Installing package as a zip

- Linux packaging willing to install data files (and doc files) in alternative folders. In this case, this file must be patched.

- Frozen fat binary application using silx (frozen with cx_Freeze or py2app). This needs special care for the resource files in the setup:

  - With cx_Freeze, add silx/resources to include_files:

        import silx.resources
        silx_include_files = (os.path.dirname(silx.resources.__file__),
                              os.path.join('silx', 'resources'))
        setup(...
              options={'build_exe': {'include_files': [silx_include_files]}}
              )

  - With py2app, add silx in the packages list of the py2app options:

        setup(...
              options={'py2app': {'packages': ['silx']}}
              )

register_resource_directory(name, package_name, forced_path=None)

  Register another resource directory to the available list.

  By default only the directory “silx” is available.

  Added in version 0.6.

  Parameters:

    - name (`str`) – Name of the resource directory. It is used on the resource name to specify the resource directory to use. The resource “silx:foo.png” will use the “silx” resource directory.

    - package_name (`str`) – Python name of the package containing resources. For example “silx.resources”.

    - forced_path (`str` | `None`) – Path containing the resources. If specified neither importlib nor package_name will be used For example “silx.resources”.

  Raises:

    ValueError – If the resource directory name already exists.

list_dir(resource)

  List the content of a resource directory.

  Result are not prefixed by the resource name.

  The resource name can be prefixed by the name of a resource directory. For example “silx:foo.png” identify the resource “foo.png” from the resource directory “silx”. See also `register_resource_directory()`.

  Parameters:

    resource (`str`) – Name of the resource directory to list

  Return type:

    `list`[`str`]

  Returns:

    list of name contained in the directory

is_dir(resource)

  True is the resource is a resource directory.

  The resource name can be prefixed by the name of a resource directory. For example “silx:foo.png” identify the resource “foo.png” from the resource directory “silx”. See also `register_resource_directory()`.

  Parameters:

    resource (`str`) – Name of the resource

  Return type:

    `bool`

exists(resource)

  True is the resource exists.

  Parameters:

    resource (`str`) – Name of the resource

  Return type:

    `bool`

resource_filename(resource)

  Return filename corresponding to resource.

  The existence of the resource is not checked.

  The resource name can be prefixed by the name of a resource directory. For example “silx:foo.png” identify the resource “foo.png” from the resource directory “silx”. See also `register_resource_directory()`.

  Parameters:

    resource (`str`) – Resource path relative to resource directory using ‘/’ path separator. It can be either a file or a directory.

  Raises:

    ValueError – If the resource name uses an unregistred resource directory name

  Return type:

    `str`

  Returns:

    Absolute resource path in the file system