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)[source]#

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 (Optional[str]) – 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)[source]#

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)[source]#

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)[source]#

True is the resource exists.

Parameters:

resource (str) – Name of the resource

Return type:

bool

resource_filename(resource)[source]#

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