Warning
This document is for an in-development version of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
Source code for galaxy.util.resources
"""Provide a consistent interface into and utilities for importlib file resources.
"""
import sys
if sys.version_info >= (3, 12):
from importlib.resources import (
as_file,
files,
)
from importlib.resources.abc import Traversable
if sys.version_info >= (3, 13):
from importlib.resources import Anchor
else:
from importlib.resources import Package as Anchor
else:
from importlib_resources import (
as_file,
files,
Package as Anchor,
)
from importlib_resources.abc import Traversable
[docs]def resource_path(anchor: Anchor, resource_name: str) -> Traversable:
"""
Return specified resource as a Traversable.
anchor is either a module object or a module name as a string.
"""
return files(anchor).joinpath(resource_name)
[docs]def resource_string(anchor: Anchor, resource_name: str) -> str:
"""
Return specified resource as a string.
Replacement function for pkg_resources.resource_string, but returns unicode string instead of bytestring.
anchor is either a module object or a module name as a string.
"""
return resource_path(anchor, resource_name).read_text()
__all__ = (
"as_file",
"files",
"resource_string",
"resource_path",
"Traversable",
)