Home / File/ check_version.py — langchain Source File

check_version.py — langchain Source File

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

Entity Profile

Dependency Diagram

graph LR
  90a69730_b824_7e80_91bd_250a432f202f["check_version.py"]
  67ec3255_645e_8b6e_1eff_1eb3c648ed95["re"]
  90a69730_b824_7e80_91bd_250a432f202f --> 67ec3255_645e_8b6e_1eff_1eb3c648ed95
  d76a28c2_c3ab_00a8_5208_77807a49449d["sys"]
  90a69730_b824_7e80_91bd_250a432f202f --> d76a28c2_c3ab_00a8_5208_77807a49449d
  b6ee5de5_719a_eeb5_1e11_e9c63bc22ef8["pathlib"]
  90a69730_b824_7e80_91bd_250a432f202f --> b6ee5de5_719a_eeb5_1e11_e9c63bc22ef8
  style 90a69730_b824_7e80_91bd_250a432f202f fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"""Check version consistency between `pyproject.toml` and `version.py`.

This script validates that the version defined in pyproject.toml matches the `VERSION`
variable in `langchain_core/version.py`. Intended for use as a pre-commit hook to
prevent version mismatches.
"""

import re
import sys
from pathlib import Path


def get_pyproject_version(pyproject_path: Path) -> str | None:
    """Extract version from `pyproject.toml`."""
    content = pyproject_path.read_text()
    match = re.search(r'^version\s*=\s*"([^"]+)"', content, re.MULTILINE)
    return match.group(1) if match else None


def get_version_py_version(version_path: Path) -> str | None:
    """Extract `VERSION` from `version.py`."""
    content = version_path.read_text()
    match = re.search(r'^VERSION\s*=\s*"([^"]+)"', content, re.MULTILINE)
    return match.group(1) if match else None


def main() -> int:
    """Validate version consistency."""
    script_dir = Path(__file__).parent
    package_dir = script_dir.parent

    pyproject_path = package_dir / "pyproject.toml"
    version_path = package_dir / "langchain_core" / "version.py"

    if not pyproject_path.exists():
        print(f"Error: {pyproject_path} not found")  # noqa: T201
        return 1

    if not version_path.exists():
        print(f"Error: {version_path} not found")  # noqa: T201
        return 1

    pyproject_version = get_pyproject_version(pyproject_path)
    version_py_version = get_version_py_version(version_path)

    if pyproject_version is None:
        print("Error: Could not find version in pyproject.toml")  # noqa: T201
        return 1

    if version_py_version is None:
        print("Error: Could not find VERSION in langchain_core/version.py")  # noqa: T201
        return 1

    if pyproject_version != version_py_version:
        print("Error: Version mismatch detected!")  # noqa: T201
        print(f"  pyproject.toml: {pyproject_version}")  # noqa: T201
        print(f"  langchain_core/version.py: {version_py_version}")  # noqa: T201
        return 1

    print(f"Version check passed: {pyproject_version}")  # noqa: T201
    return 0


if __name__ == "__main__":
    sys.exit(main())

Subdomains

Dependencies

  • pathlib
  • re
  • sys

Frequently Asked Questions

What does check_version.py do?
check_version.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, RunnableInterface subdomain.
What functions are defined in check_version.py?
check_version.py defines 4 function(s): get_pyproject_version, get_version_py_version, main, sys.
What does check_version.py depend on?
check_version.py imports 3 module(s): pathlib, re, sys.
Where is check_version.py in the architecture?
check_version.py is located at libs/core/scripts/check_version.py (domain: CoreAbstractions, subdomain: RunnableInterface, directory: libs/core/scripts).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free