From 440d54b624c53bc68bf9679a0fd0bb97902d0eb8 Mon Sep 17 00:00:00 2001 From: Yuchen Ethan Xiao Date: Mon, 13 Oct 2025 14:35:10 -0400 Subject: [PATCH] chore: move function `get_package_dir`into `packsmanager.py` --- news/move-get-packages-dir.rst | 23 +++++++++++++++++++++++ src/diffpy/cmi/__init__.py | 23 ----------------------- src/diffpy/cmi/cli.py | 4 ++-- src/diffpy/cmi/packsmanager.py | 24 ++++++++++++++++++++++-- 4 files changed, 47 insertions(+), 27 deletions(-) create mode 100644 news/move-get-packages-dir.rst diff --git a/news/move-get-packages-dir.rst b/news/move-get-packages-dir.rst new file mode 100644 index 0000000..2b23746 --- /dev/null +++ b/news/move-get-packages-dir.rst @@ -0,0 +1,23 @@ +**Added:** + +* No news added: Move function get_package_dir from __init__.py into packsmanager.py. + +**Changed:** + +* + +**Deprecated:** + +* + +**Removed:** + +* + +**Fixed:** + +* + +**Security:** + +* diff --git a/src/diffpy/cmi/__init__.py b/src/diffpy/cmi/__init__.py index 6253d84..e2392e6 100644 --- a/src/diffpy/cmi/__init__.py +++ b/src/diffpy/cmi/__init__.py @@ -15,32 +15,9 @@ """Complex modeling infrastructure: a modular framework for multi-modal modeling of scientific data.""" -from importlib.resources import as_file, files - - -def get_package_dir(root_path=None): - """Get the package directory as a context manager. - - Parameters - ---------- - root_path : str, optional - Used for testing, overrides the files(__name__) call. - - Returns - ------- - context manager - A context manager that yields a pathlib.Path to the package directory. - """ - if root_path is None: - resource = files(__name__) - else: - resource = root_path - return as_file(resource) - __all__ = [ "__version__", - "get_package_dir", ] # package version diff --git a/src/diffpy/cmi/cli.py b/src/diffpy/cmi/cli.py index dbd663c..5037a61 100644 --- a/src/diffpy/cmi/cli.py +++ b/src/diffpy/cmi/cli.py @@ -18,10 +18,10 @@ from shutil import copytree from typing import Dict, List, Optional, Tuple -from diffpy.cmi import __version__, get_package_dir +from diffpy.cmi import __version__ from diffpy.cmi.conda import env_info from diffpy.cmi.log import plog, set_log_mode -from diffpy.cmi.packsmanager import PacksManager +from diffpy.cmi.packsmanager import PacksManager, get_package_dir from diffpy.cmi.profilesmanager import ProfilesManager diff --git a/src/diffpy/cmi/packsmanager.py b/src/diffpy/cmi/packsmanager.py index b33ae83..9c25e9e 100644 --- a/src/diffpy/cmi/packsmanager.py +++ b/src/diffpy/cmi/packsmanager.py @@ -13,10 +13,10 @@ # ############################################################################## +from importlib.resources import as_file from pathlib import Path from typing import List, Union -from diffpy.cmi import get_package_dir from diffpy.cmi.installer import ( ParsedReq, install_requirements, @@ -25,7 +25,27 @@ ) from diffpy.cmi.log import plog -__all__ = ["PacksManager"] +__all__ = ["PacksManager", "get_package_dir"] + + +def get_package_dir(root_path=None): + """Get the package directory as a context manager. + + Parameters + ---------- + root_path : str, optional + Used for testing, overrides the files(__name__) call. + + Returns + ------- + context manager + A context manager that yields a pathlib.Path to the package directory. + """ + if root_path is None: + resource = Path(__file__).parents[0] + else: + resource = root_path + return as_file(resource) def _installed_packs_dir(root_path=None) -> Path: