import_utils.py — langchain Source File
Architecture documentation for import_utils.py, a python file in the langchain codebase. 4 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 33444031_4970_374e_aa01_a6e08f3388ad["import_utils.py"] fdba230d_a403_6744_bc5b_7eb58b19f200["importlib.metadata"] 33444031_4970_374e_aa01_a6e08f3388ad --> fdba230d_a403_6744_bc5b_7eb58b19f200 01d44b95_02da_6b59_b6ed_842bc82dfa56["importlib.util"] 33444031_4970_374e_aa01_a6e08f3388ad --> 01d44b95_02da_6b59_b6ed_842bc82dfa56 7aaf52d4_ee88_411e_980e_bc4beeeb30ad["operator"] 33444031_4970_374e_aa01_a6e08f3388ad --> 7aaf52d4_ee88_411e_980e_bc4beeeb30ad 0b794afa_fd3d_a810_77fd_ed00bf90e394["packaging"] 33444031_4970_374e_aa01_a6e08f3388ad --> 0b794afa_fd3d_a810_77fd_ed00bf90e394 style 33444031_4970_374e_aa01_a6e08f3388ad fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
from __future__ import annotations
import importlib.metadata
import importlib.util
import operator as op
from packaging import version
STR_OPERATION_TO_FUNC = {
">": op.gt,
">=": op.ge,
"==": op.eq,
"!=": op.ne,
"<=": op.le,
"<": op.lt,
}
_optimum_available = importlib.util.find_spec("optimum") is not None
_optimum_version = "N/A"
if _optimum_available:
try:
_optimum_version = importlib.metadata.version("optimum")
except importlib.metadata.PackageNotFoundError:
_optimum_available = False
_optimum_intel_available = (
_optimum_available and importlib.util.find_spec("optimum.intel") is not None
)
_optimum_intel_version = "N/A"
if _optimum_intel_available:
try:
_optimum_intel_version = importlib.metadata.version("optimum-intel")
except importlib.metadata.PackageNotFoundError:
_optimum_intel_available = False
_ipex_available = importlib.util.find_spec("intel_extension_for_pytorch") is not None
_openvino_available = importlib.util.find_spec("openvino") is not None
# This function was copied from: https://github.com/huggingface/accelerate/blob/874c4967d94badd24f893064cc3bef45f57cadf7/src/accelerate/utils/versions.py#L319
def compare_versions(
library_or_version: str | version.Version,
operation: str,
requirement_version: str,
) -> bool:
"""Compare a library version to some requirement using a given operation.
Args:
library_or_version:
A library name or a version to check.
operation:
A string representation of an operator, such as `">"` or `"<="`.
requirement_version:
The version to compare the library version against
"""
if operation not in STR_OPERATION_TO_FUNC:
msg = (
f"`operation` must be one of {list(STR_OPERATION_TO_FUNC.keys())}"
f", received {operation}"
)
raise ValueError(msg)
if isinstance(library_or_version, str):
library_or_version = version.parse(
importlib.metadata.version(library_or_version)
)
return STR_OPERATION_TO_FUNC[operation](
library_or_version, version.parse(requirement_version)
)
def is_optimum_available() -> bool:
return _optimum_available
def is_optimum_intel_available() -> bool:
return _optimum_intel_available
def is_ipex_available() -> bool:
return _ipex_available
def is_openvino_available() -> bool:
return _openvino_available
def is_optimum_version(operation: str, reference_version: str) -> bool:
"""Compare the current Optimum version to a given reference with an operation."""
if not _optimum_version:
return False
return compare_versions(
version.parse(_optimum_version), operation, reference_version
)
def is_optimum_intel_version(operation: str, reference_version: str) -> bool:
"""Compare current Optimum Intel version to a given reference with an operation."""
if not _optimum_intel_version:
return False
return compare_versions(
version.parse(_optimum_intel_version), operation, reference_version
)
IMPORT_ERROR = """
requires the {0} library but it was not found in your environment.
You can install it with pip: `pip install {0}`.
Please note that you may need to restart your runtime after installation.
"""
Domain
Subdomains
Functions
Dependencies
- importlib.metadata
- importlib.util
- operator
- packaging
Source
Frequently Asked Questions
What does import_utils.py do?
import_utils.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, MessageSchema subdomain.
What functions are defined in import_utils.py?
import_utils.py defines 9 function(s): _optimum_intel_version, _optimum_version, compare_versions, is_ipex_available, is_openvino_available, is_optimum_available, is_optimum_intel_available, is_optimum_intel_version, is_optimum_version.
What does import_utils.py depend on?
import_utils.py imports 4 module(s): importlib.metadata, importlib.util, operator, packaging.
Where is import_utils.py in the architecture?
import_utils.py is located at libs/partners/huggingface/langchain_huggingface/utils/import_utils.py (domain: CoreAbstractions, subdomain: MessageSchema, directory: libs/partners/huggingface/langchain_huggingface/utils).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free