MCPcopy Create free account
hub / github.com/sdv-dev/SDV / _get_minimum_versions

Function _get_minimum_versions

tasks.py:43–77  ·  view source on GitHub ↗
(dependencies, python_version)

Source from the content-addressed store, hash-verified

41
42
43def _get_minimum_versions(dependencies, python_version):
44 min_versions = {}
45 for dependency in dependencies:
46 if '@' in dependency:
47 name, url = dependency.split(' @ ')
48 min_versions[name] = f'{url}#egg={name}'
49 continue
50
51 req = Requirement(dependency)
52 if ';' in dependency:
53 marker = req.marker
54 if marker and not marker.evaluate({'python_version': python_version}):
55 continue # Skip this dependency if the marker does not apply to the current Python version
56
57 if req.name not in min_versions:
58 min_version = next(
59 (spec.version for spec in req.specifier if spec.operator in ('>=', '==')), None
60 )
61 if min_version:
62 min_versions[req.name] = f'{req.name}=={min_version}'
63
64 elif '@' not in min_versions[req.name]:
65 existing_version = Version(min_versions[req.name].split('==')[1])
66 new_version = next(
67 (spec.version for spec in req.specifier if spec.operator in ('>=', '==')),
68 existing_version,
69 )
70 if isinstance(new_version, str):
71 new_version = Version(new_version)
72 if new_version > existing_version:
73 min_versions[req.name] = (
74 f'{req.name}=={new_version}' # Change when a valid newer version is found
75 )
76
77 return list(min_versions.values())
78
79
80@task

Callers 2

install_minimumFunction · 0.85

Calls

no outgoing calls

Tested by 1