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())
Domain
Subdomains
Dependencies
- pathlib
- re
- sys
Source
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