Home / File/ import_utils.py — langchain Source File

import_utils.py — langchain Source File

Architecture documentation for import_utils.py, a python file in the langchain codebase. 4 imports, 0 dependents.

File python CoreAbstractions MessageSchema 4 imports 9 functions

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.
"""

Subdomains

Dependencies

  • importlib.metadata
  • importlib.util
  • operator
  • packaging

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