From 4913151bef1f583f2d035b062920fab8c30bd9cc Mon Sep 17 00:00:00 2001 From: xmoforf Date: Tue, 27 May 2025 10:35:46 -0400 Subject: [PATCH] removed use of pkg_resources --- packages/jupyterlab/package.json | 2 +- yuuno/autodiscover.py | 20 ++++++++++++-------- yuuno_ipython/utils.py | 16 +++++++++++----- 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/packages/jupyterlab/package.json b/packages/jupyterlab/package.json index daab536..cf2d727 100644 --- a/packages/jupyterlab/package.json +++ b/packages/jupyterlab/package.json @@ -58,7 +58,7 @@ "codemirror": "^5.65.0" }, "devDependencies": { - "@jupyterlab/builder": "^3.1.0", + "@jupyterlab/builder": "^4.4.3", "@tsconfig/svelte": "^3.0.0", "@types/codemirror": "^5.60.5", "@types/node": "^17.0.7", diff --git a/yuuno/autodiscover.py b/yuuno/autodiscover.py index a6f4082..2803771 100644 --- a/yuuno/autodiscover.py +++ b/yuuno/autodiscover.py @@ -15,15 +15,18 @@ # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . -import pkg_resources - +try: + import importlib.metadata as importlib_metadata +except ImportError: + import importlib_metadata def discover_environments(module_dict): all_exts = [] - for ep in pkg_resources.iter_entry_points('yuuno.environments'): + entry_points = importlib_metadata.entry_points() + for ep in entry_points.select(group='yuuno.environments'): module_dict[ep.name] = ep.load() all_exts.append(ep.name) - + # This makes yuuno_ipython work easier in development environments. if "load_ipython_extension" not in module_dict: import yuuno_ipython.ipython.environment as ipy_env @@ -34,18 +37,19 @@ def discover_environments(module_dict): return all_exts - def discover_extensions(): - for ep in pkg_resources.iter_entry_points('yuuno.extensions'): + entry_points = importlib_metadata.entry_points() + for ep in entry_points.select(group='yuuno.extensions'): extension = ep.load() if not hasattr(extension, '_name'): extension._name = ep.name yield extension - def discover_commands(): commands = {} - for ep in pkg_resources.iter_entry_points('yuuno.commands'): + entry_points = importlib_metadata.entry_points() + for ep in entry_points.select(group='yuuno.commands'): command = ep.load() commands[ep.name] = command return commands + diff --git a/yuuno_ipython/utils.py b/yuuno_ipython/utils.py index 9ad655d..aa58d8c 100644 --- a/yuuno_ipython/utils.py +++ b/yuuno_ipython/utils.py @@ -22,12 +22,18 @@ from pathlib import Path try: - from pkg_resources import resource_filename + import importlib.resources as importlib_resources except ImportError: - def resource_filename(_: str, name: str): - this_dir, this_filename = os.path.split(__file__) - path = os.path.join(this_dir, '..', name) - return path + import importlib_resources +def resource_filename(package: str, name: str): + """ + Return the file system path to a resource inside a package. + """ + try: + return str(importlib_resources.files(package).joinpath(name)) + except AttributeError: + with importlib_resources.path(package, name) as resource_path: + return str(resource_path) def get_data_file(name) -> Path: