31 lines
791 B
Python
31 lines
791 B
Python
import importlib.resources
|
|
|
|
|
|
def read_string(package: str, filename: str) -> str:
|
|
"""Light wrapper around ``importlib.resources`` that should work across Python
|
|
versions.
|
|
|
|
Parameters
|
|
----------
|
|
package
|
|
The module/package to read from
|
|
|
|
filename
|
|
The file within ``package`` to read
|
|
|
|
Returns
|
|
-------
|
|
str
|
|
The contents of the specified text file.
|
|
"""
|
|
|
|
# `files` only available in Python 3.9+
|
|
if hasattr(importlib.resources, "files"):
|
|
with importlib.resources.files(package).joinpath(filename).open("r") as f:
|
|
return f.read()
|
|
|
|
# `open_text` deprecated in Python 3.11, so let's only rely on it when we
|
|
# have to.
|
|
with importlib.resources.open_text(package, filename) as f:
|
|
return f.read()
|