mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-20 12:24:59 +00:00
refactor: Modify script to only show versions compatible with Python 3.8 or lower
This commit is contained in:
parent
bbeb4749cb
commit
c2a35fef05
1 changed files with 10 additions and 24 deletions
|
@ -2,9 +2,7 @@ import requests
|
||||||
from packaging import version
|
from packaging import version
|
||||||
from packaging.specifiers import SpecifierSet
|
from packaging.specifiers import SpecifierSet
|
||||||
|
|
||||||
|
def get_versions_supporting_python38_or_lower(package_name):
|
||||||
def get_python_support_for_versions(package_name):
|
|
||||||
# Fetch package information from PyPI
|
|
||||||
url = f"https://pypi.org/pypi/{package_name}/json"
|
url = f"https://pypi.org/pypi/{package_name}/json"
|
||||||
response = requests.get(url)
|
response = requests.get(url)
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
|
@ -12,45 +10,33 @@ def get_python_support_for_versions(package_name):
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
data = response.json()
|
data = response.json()
|
||||||
version_support = {}
|
compatible_versions = {}
|
||||||
|
|
||||||
for release, release_data in data["releases"].items():
|
for release, release_data in data["releases"].items():
|
||||||
if not release_data: # Skip empty releases
|
if not release_data: # Skip empty releases
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Check the 'requires_python' field
|
|
||||||
requires_python = release_data[0].get("requires_python")
|
requires_python = release_data[0].get("requires_python")
|
||||||
|
|
||||||
if requires_python is None:
|
if requires_python is None:
|
||||||
version_support[release] = "Unspecified (assumed compatible with all versions)"
|
compatible_versions[release] = "Unspecified (assumed compatible with Python 3.8 and lower)"
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
spec = SpecifierSet(requires_python)
|
spec = SpecifierSet(requires_python)
|
||||||
supported_versions = []
|
if version.parse("3.8") in spec:
|
||||||
for py_version in ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]:
|
compatible_versions[release] = f"Compatible with Python 3.8 (spec: {requires_python})"
|
||||||
if version.parse(py_version) in spec:
|
|
||||||
supported_versions.append(py_version)
|
|
||||||
version_support[release] = (
|
|
||||||
", ".join(supported_versions)
|
|
||||||
if supported_versions
|
|
||||||
else "No supported versions found"
|
|
||||||
)
|
|
||||||
except ValueError:
|
except ValueError:
|
||||||
version_support[release] = f"Invalid specifier: {requires_python}"
|
print(f"Invalid requires_python specifier for version {release}: {requires_python}")
|
||||||
|
|
||||||
return version_support
|
|
||||||
|
|
||||||
|
return compatible_versions
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
package_name = "aider-chat" # Replace with your package name
|
package_name = "aider-chat" # Replace with your package name
|
||||||
version_support = get_python_support_for_versions(package_name)
|
compatible_versions = get_versions_supporting_python38_or_lower(package_name)
|
||||||
|
|
||||||
print(f"Python version support for each release of {package_name}:")
|
print(f"Versions of {package_name} compatible with Python 3.8 or lower:")
|
||||||
for release, support in sorted(
|
for release, support in sorted(compatible_versions.items(), key=lambda x: version.parse(x[0]), reverse=True):
|
||||||
version_support.items(), key=lambda x: version.parse(x[0]), reverse=True
|
|
||||||
):
|
|
||||||
print(f"{release}: {support}")
|
print(f"{release}: {support}")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue