ahvn.utils.basic.deps_utils module

Dependency management and lazy loading utilities.

This module provides a clean, industrial-standard dependency management system and utilities for lazy loading modules.

class ahvn.utils.basic.deps_utils.DependencyManager[源代码]

基类:object

Clean dependency management system.

返回类型:

DependencyManager

static __new__(cls)[源代码]

Singleton pattern.

返回类型:

DependencyManager

__init__()[源代码]

Initialize the manager.

add(dep_info)[源代码]

Add a dependency.

返回类型:

None

参数:

dep_info (DependencyInfo)

check(name)[源代码]

Check if a dependency is available.

返回类型:

bool

参数:

name (str)

require(name, feature='')[源代码]

Require a dependency, raising error if missing.

返回类型:

None

参数:
list(filter_optional=None)[源代码]

List all dependencies.

返回类型:

List[str]

参数:

filter_optional (bool | None)

missing()[源代码]

Get list of missing dependencies.

返回类型:

List[str]

info(name)[源代码]

Get dependency information.

返回类型:

Dict[str, Any]

参数:

name (str)

clear_cache()[源代码]

Clear dependency cache.

返回类型:

None

load(module_name, package=None, error_msg=None)[源代码]

Import an optional dependency, raising a clear error if missing.

参数:
  • module_name (str) -- The python module name to import (e.g. "pandas")

  • package (Optional[str]) -- The pip package name (e.g. "pandas"). Defaults to module_name.

  • error_msg (Optional[str]) -- Custom error message. If None, generates a standard one.

返回类型:

ModuleType

返回:

The imported module.

抛出:

OptionalDependencyError -- If the module cannot be imported.

exception ahvn.utils.basic.deps_utils.DependencyError[源代码]

基类:Exception

Dependency-related error.

exception ahvn.utils.basic.deps_utils.OptionalDependencyError[源代码]

基类:DependencyError, ImportError

Optional dependency not available.

ahvn.utils.basic.deps_utils.lazy_getattr(name, export_map, package)[源代码]

Helper function to implement __getattr__ for lazy loading modules.

参数:
  • name (str) -- The attribute name being accessed.

  • export_map (Dict[str, str]) -- A dictionary mapping attribute names to relative module paths (e.g., { "MyClass": ".my_module" }).

  • package (str) -- The package name (usually __name__ of the calling module).

返回:

The requested attribute from the imported module.

抛出:

AttributeError -- If the name is not in the export_map.

ahvn.utils.basic.deps_utils.collect_exports(package_names, parent_package)[源代码]

Collects exported names from a list of subpackages to build a master lazy map.

参数:
  • package_names (List[str]) -- List of relative package names (e.g., ["klstore", "klengine"]).

  • parent_package (str) -- The parent package name (usually __name__).

返回:

".klstore" }).

返回类型:

A dictionary mapping exported names to their relative package path (e.g., { "DatabaseKLStore"

ahvn.utils.basic.deps_utils.lazy_import_submodules(name, submodules, package)[源代码]

Helper function to lazy load submodules.

参数:
  • name (str) -- The attribute name being accessed.

  • submodules (List[str]) -- List of submodule names (relative).

  • package (str) -- The package name.

返回:

The imported module or None.

class ahvn.utils.basic.deps_utils.DependencyInfo(name, packages, install, description, optional=True, required_for=None)[源代码]

基类:object

Information about a dependency.

参数:
name: str
packages: List[str]
install: str
description: str
optional: bool = True
required_for: List[str] | None = None
__post_init__()[源代码]

Initialize default values.

__init__(name, packages, install, description, optional=True, required_for=None)
参数:
返回类型:

None

ahvn.utils.basic.deps_utils.get_default_dependencies()[源代码]

Get all default dependency definitions.

返回类型:

dict