usse/scrape/venv/lib/python3.10/site-packages/esbonio/lsp/util/resources.py
2023-12-22 15:26:01 +01:00

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