This commit is contained in:
Mason Daugherty
2026-03-21 23:48:33 -04:00
parent 8b3192f5c2
commit e77243a00b
12 changed files with 29 additions and 36 deletions

View File

@@ -18,13 +18,13 @@ on:
- "libs/partners/openai/pyproject.toml"
- "libs/partners/openai/langchain_openai/_version.py"
- "libs/partners/groq/pyproject.toml"
- "libs/partners/groq/langchain_groq/version.py"
- "libs/partners/groq/langchain_groq/_version.py"
- "libs/partners/deepseek/pyproject.toml"
- "libs/partners/deepseek/langchain_deepseek/_version.py"
- "libs/partners/xai/pyproject.toml"
- "libs/partners/xai/langchain_xai/_version.py"
- "libs/partners/fireworks/pyproject.toml"
- "libs/partners/fireworks/langchain_fireworks/version.py"
- "libs/partners/fireworks/langchain_fireworks/_version.py"
- "libs/partners/mistralai/pyproject.toml"
- "libs/partners/mistralai/langchain_mistralai/_version.py"
- "libs/partners/ollama/pyproject.toml"
@@ -95,7 +95,7 @@ jobs:
check_version "langchain-groq" \
libs/partners/groq/pyproject.toml \
libs/partners/groq/langchain_groq/version.py \
libs/partners/groq/langchain_groq/_version.py \
"__version__" || FAILED=1
check_version "langchain-deepseek" \
@@ -110,7 +110,7 @@ jobs:
check_version "langchain-fireworks" \
libs/partners/fireworks/pyproject.toml \
libs/partners/fireworks/langchain_fireworks/version.py \
libs/partners/fireworks/langchain_fireworks/_version.py \
"__version__" || FAILED=1
check_version "langchain-mistralai" \

View File

@@ -1,9 +1,9 @@
"""Fireworks AI integration for LangChain."""
from langchain_fireworks._version import __version__
from langchain_fireworks.chat_models import ChatFireworks
from langchain_fireworks.embeddings import FireworksEmbeddings
from langchain_fireworks.llms import Fireworks
from langchain_fireworks.version import __version__
__all__ = [
"ChatFireworks",

View File

@@ -83,8 +83,8 @@ from pydantic import (
from typing_extensions import Self
from langchain_fireworks._compat import _convert_from_v1_to_chat_completions
from langchain_fireworks._version import __version__
from langchain_fireworks.data._profiles import _PROFILES
from langchain_fireworks.version import __version__
logger = logging.getLogger(__name__)

View File

@@ -16,7 +16,7 @@ from langchain_core.utils import get_pydantic_field_names
from langchain_core.utils.utils import _build_model_kwargs, secret_from_env
from pydantic import ConfigDict, Field, SecretStr, model_validator
from langchain_fireworks.version import __version__
from langchain_fireworks._version import __version__
logger = logging.getLogger(__name__)

View File

@@ -1,7 +1,7 @@
"""Check version consistency between `pyproject.toml` and `version.py`.
"""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_fireworks/version.py`. Intended for use as a
`__version__` variable in `langchain_fireworks/_version.py`. Intended for use as a
pre-commit hook to prevent version mismatches.
"""
@@ -18,7 +18,7 @@ def get_pyproject_version(pyproject_path: Path) -> str | None:
def get_version_py_version(version_path: Path) -> str | None:
"""Extract `__version__` from `version.py`.
"""Extract `__version__` from `_version.py`.
Returns ``None`` if the version is set dynamically (e.g. via
``importlib.metadata``), indicating the check should be skipped.
@@ -34,7 +34,7 @@ def main() -> int:
package_dir = script_dir.parent
pyproject_path = package_dir / "pyproject.toml"
version_path = package_dir / "langchain_fireworks" / "version.py"
version_path = package_dir / "langchain_fireworks" / "_version.py"
if not pyproject_path.exists():
print(f"Error: {pyproject_path} not found") # noqa: T201
@@ -60,7 +60,7 @@ def main() -> int:
if pyproject_version != version_py_version:
print("Error: Version mismatch detected!") # noqa: T201
print(f" pyproject.toml: {pyproject_version}") # noqa: T201
print(f" langchain_fireworks/version.py: {version_py_version}") # noqa: T201
print(f" langchain_fireworks/_version.py: {version_py_version}") # noqa: T201
return 1
print(f"Version check passed: {pyproject_version}") # noqa: T201

View File

@@ -1,6 +1,6 @@
"""Groq integration for LangChain."""
from langchain_groq._version import __version__
from langchain_groq.chat_models import ChatGroq
from langchain_groq.version import __version__
__all__ = ["ChatGroq", "__version__"]

View File

@@ -71,8 +71,8 @@ from pydantic import BaseModel, ConfigDict, Field, SecretStr, model_validator
from typing_extensions import Self
from langchain_groq._compat import _convert_from_v1_to_groq
from langchain_groq._version import __version__
from langchain_groq.data._profiles import _PROFILES
from langchain_groq.version import __version__
_MODEL_PROFILES = cast("ModelProfileRegistry", _PROFILES)
_STRICT_STRUCTURED_OUTPUT_MODELS = frozenset(

View File

@@ -1,7 +1,7 @@
"""Check version consistency between `pyproject.toml` and `version.py`.
"""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_groq/version.py`. Intended for use as a
`__version__` variable in `langchain_groq/_version.py`. Intended for use as a
pre-commit hook to prevent version mismatches.
"""
@@ -18,7 +18,7 @@ def get_pyproject_version(pyproject_path: Path) -> str | None:
def get_version_py_version(version_path: Path) -> str | None:
"""Extract `__version__` from `version.py`.
"""Extract `__version__` from `_version.py`.
Returns ``None`` if the version is set dynamically (e.g. via
``importlib.metadata``), indicating the check should be skipped.
@@ -34,7 +34,7 @@ def main() -> int:
package_dir = script_dir.parent
pyproject_path = package_dir / "pyproject.toml"
version_path = package_dir / "langchain_groq" / "version.py"
version_path = package_dir / "langchain_groq" / "_version.py"
if not pyproject_path.exists():
print(f"Error: {pyproject_path} not found") # noqa: T201
@@ -60,7 +60,7 @@ def main() -> int:
if pyproject_version != version_py_version:
print("Error: Version mismatch detected!") # noqa: T201
print(f" pyproject.toml: {pyproject_version}") # noqa: T201
print(f" langchain_groq/version.py: {version_py_version}") # noqa: T201
print(f" langchain_groq/_version.py: {version_py_version}") # noqa: T201
return 1
print(f"Version check passed: {pyproject_version}") # noqa: T201

View File

@@ -13,27 +13,11 @@ service.
"""
from importlib import metadata
from importlib.metadata import PackageNotFoundError
from langchain_ollama._version import __version__
from langchain_ollama.chat_models import ChatOllama
from langchain_ollama.embeddings import OllamaEmbeddings
from langchain_ollama.llms import OllamaLLM
def _raise_package_not_found_error() -> None:
raise PackageNotFoundError
try:
if __package__ is None:
_raise_package_not_found_error()
__version__ = metadata.version(__package__)
except metadata.PackageNotFoundError:
# Case where package metadata is not available.
__version__ = ""
del metadata # optional, avoids polluting the results of dir(__package__)
__all__ = [
"ChatOllama",
"OllamaEmbeddings",

View File

@@ -90,3 +90,12 @@ async def test_acreate_generate_stream_raises_when_client_none() -> None:
with pytest.raises(RuntimeError, match="async client is not initialized"):
async for _ in llm._acreate_generate_stream("Hello"):
pass
def test_metadata_versions() -> None:
"""Test that metadata reports the correct version info."""
llm = OllamaLLM(model=MODEL_NAME)
assert llm.metadata is not None
versions = llm.metadata["versions"]
assert "langchain-core" in versions
assert "langchain-ollama" in versions