diff --git a/scripts/yank-old-versions.py b/scripts/yank-old-versions.py index 0ef289068..a55af0458 100644 --- a/scripts/yank-old-versions.py +++ b/scripts/yank-old-versions.py @@ -2,9 +2,7 @@ import requests from packaging import version from packaging.specifiers import SpecifierSet - -def get_python_support_for_versions(package_name): - # Fetch package information from PyPI +def get_versions_supporting_python38_or_lower(package_name): url = f"https://pypi.org/pypi/{package_name}/json" response = requests.get(url) if response.status_code != 200: @@ -12,45 +10,33 @@ def get_python_support_for_versions(package_name): return {} data = response.json() - version_support = {} + compatible_versions = {} for release, release_data in data["releases"].items(): if not release_data: # Skip empty releases continue - # Check the 'requires_python' field requires_python = release_data[0].get("requires_python") 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: try: spec = SpecifierSet(requires_python) - supported_versions = [] - for py_version in ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]: - 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" - ) + if version.parse("3.8") in spec: + compatible_versions[release] = f"Compatible with Python 3.8 (spec: {requires_python})" except ValueError: - version_support[release] = f"Invalid specifier: {requires_python}" - - return version_support + print(f"Invalid requires_python specifier for version {release}: {requires_python}") + return compatible_versions def main(): 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}:") - for release, support in sorted( - version_support.items(), key=lambda x: version.parse(x[0]), reverse=True - ): + print(f"Versions of {package_name} compatible with Python 3.8 or lower:") + for release, support in sorted(compatible_versions.items(), key=lambda x: version.parse(x[0]), reverse=True): print(f"{release}: {support}") - if __name__ == "__main__": main()