mirror of
https://github.com/hwchase17/langchain.git
synced 2025-08-11 22:04:37 +00:00
update get_min_versions
This commit is contained in:
parent
701387066c
commit
dfce027c57
35
.github/scripts/get_min_versions.py
vendored
35
.github/scripts/get_min_versions.py
vendored
@ -1,3 +1,4 @@
|
|||||||
|
from collections import defaultdict
|
||||||
import sys
|
import sys
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
@ -95,6 +96,23 @@ def get_minimum_version(package_name: str, spec_string: str) -> Optional[str]:
|
|||||||
return str(min(valid_versions)) if valid_versions else None
|
return str(min(valid_versions)) if valid_versions else None
|
||||||
|
|
||||||
|
|
||||||
|
def _check_python_version_from_requirement(
|
||||||
|
requirement: Requirement, python_version: str
|
||||||
|
) -> bool:
|
||||||
|
if not requirement.marker:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
marker_str = str(requirement.marker)
|
||||||
|
if "python_full_version" in marker_str:
|
||||||
|
python_version_str = "".join(
|
||||||
|
char
|
||||||
|
for char in marker_str
|
||||||
|
if char.isdigit() or char in (".", "<", ">", "=", ",")
|
||||||
|
)
|
||||||
|
return check_python_version(python_version, python_version_str)
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
def get_min_version_from_toml(
|
def get_min_version_from_toml(
|
||||||
toml_path: str,
|
toml_path: str,
|
||||||
versions_for: str,
|
versions_for: str,
|
||||||
@ -106,10 +124,10 @@ def get_min_version_from_toml(
|
|||||||
with open(toml_path, "rb") as file:
|
with open(toml_path, "rb") as file:
|
||||||
toml_data = tomllib.load(file)
|
toml_data = tomllib.load(file)
|
||||||
|
|
||||||
dependencies = {}
|
dependencies = defaultdict(list)
|
||||||
for dep in toml_data["project"]["dependencies"]:
|
for dep in toml_data["project"]["dependencies"]:
|
||||||
requirement = Requirement(dep)
|
requirement = Requirement(dep)
|
||||||
dependencies[requirement.name] = requirement
|
dependencies[requirement.name].append(requirement)
|
||||||
|
|
||||||
# Initialize a dictionary to store the minimum versions
|
# Initialize a dictionary to store the minimum versions
|
||||||
min_versions = {}
|
min_versions = {}
|
||||||
@ -124,14 +142,11 @@ def get_min_version_from_toml(
|
|||||||
if lib in dependencies:
|
if lib in dependencies:
|
||||||
if include and lib not in include:
|
if include and lib not in include:
|
||||||
continue
|
continue
|
||||||
requirement = dependencies[lib]
|
requirements = dependencies[lib]
|
||||||
# TODO: fix this
|
for requirement in requirements:
|
||||||
# if requirement.marker and not requirement.marker.evaluate(
|
if _check_python_version_from_requirement(requirement, python_version):
|
||||||
# {"python_version": python_version}
|
version_string = str(requirement.specifier)
|
||||||
# ):
|
break
|
||||||
# continue
|
|
||||||
# Get the version string
|
|
||||||
version_string = str(requirement.specifier)
|
|
||||||
|
|
||||||
# Use parse_version to get the minimum supported version from version_string
|
# Use parse_version to get the minimum supported version from version_string
|
||||||
min_version = get_minimum_version(lib, version_string)
|
min_version = get_minimum_version(lib, version_string)
|
||||||
|
Loading…
Reference in New Issue
Block a user