{"library":"packaging-legacy","title":"Packaging Legacy","description":"Packaging-legacy is a Python library, currently at version 23.0.post0, that provides support for 'legacy' Python packaging functionality. It restores features, primarily related to version parsing, that were removed from the official `packaging` library. Its main utility is the `packaging_legacy.version.parse` function, which can handle version strings that the modern `packaging` library would deem invalid. The library has an infrequent release cadence, with only two releases to date, both in late 2023.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install packaging-legacy"],"cli":null},"imports":["from packaging_legacy.version import parse","from packaging_legacy.version import LegacyVersion"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from packaging_legacy.version import parse, LegacyVersion\n\n# Example of parsing a legacy version string\nlegacy_version_string = \"1.0.0.alpha0\"\nversion = parse(legacy_version_string)\n\nprint(f\"Parsed version: {version}\")\nprint(f\"Is it a LegacyVersion? {isinstance(version, LegacyVersion)}\")\n\n# Compare with a standard version\nstandard_version = parse(\"1.0.0a0\")\nprint(f\"Comparing {version} and {standard_version}: {version == standard_version}\")\n\n# The modern 'packaging' library would raise InvalidVersion for '1.0.0.alpha0'\n# To demonstrate, one would typically use a try-except block here\n# import packaging.version\n# try:\n#     packaging.version.parse(\"1.0.0.alpha0\")\n# except packaging.version.InvalidVersion as e:\n#     print(f\"Modern packaging error: {e}\")","lang":"python","description":"This quickstart demonstrates how to parse a 'legacy' version string using `packaging_legacy.version.parse`. It highlights that such a version will be represented by a `LegacyVersion` object, which is distinct from the standard `Version` object used for PEP 440 compliant versions. The example also implicitly contrasts this behavior with the modern `packaging` library, which would raise an `InvalidVersion` error for such a string.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"23.0.post0","pypi_latest":"23.0.post0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.7,"avg_import_s":0.02,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"packaging-legacy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.6,"disk_size":"18.6M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"packaging-legacy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.01,"mem_mb":0.6,"disk_size":"19M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"packaging-legacy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.03,"mem_mb":0.8,"disk_size":"20.5M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"packaging-legacy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.03,"mem_mb":0.8,"disk_size":"21M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"packaging-legacy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":0.7,"disk_size":"12.4M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"packaging-legacy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.02,"mem_mb":0.7,"disk_size":"13M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"packaging-legacy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.05,"mem_mb":1.9,"disk_size":"12.1M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"packaging-legacy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.05,"mem_mb":1.7,"disk_size":"13M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"packaging-legacy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.6,"disk_size":"18.0M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"packaging-legacy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2,"import_time_s":0.01,"mem_mb":0.6,"disk_size":"19M"}]}}