{"id":18084851,"url":"https://github.com/jwodder/pyversion-info","last_synced_at":"2025-04-12T20:10:09.536Z","repository":{"id":57458324,"uuid":"183090713","full_name":"jwodder/pyversion-info","owner":"jwodder","description":"Get information about released \u0026 unreleased CPython and PyPy versions","archived":false,"fork":false,"pushed_at":"2025-03-31T20:17:03.000Z","size":154,"stargazers_count":3,"open_issues_count":5,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-12T20:10:00.347Z","etag":null,"topics":["available-on-pypi","cpython","history","pypy","python","python-versions"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jwodder.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-23T20:26:02.000Z","updated_at":"2025-01-23T14:36:13.000Z","dependencies_parsed_at":"2023-09-26T07:51:46.931Z","dependency_job_id":"18b4c7d9-ce8c-47ae-8993-1c19245e5e60","html_url":"https://github.com/jwodder/pyversion-info","commit_stats":{"total_commits":88,"total_committers":1,"mean_commits":88.0,"dds":0.0,"last_synced_commit":"95c82f724d6c2eb29458b059f21b2c966724e705"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwodder%2Fpyversion-info","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwodder%2Fpyversion-info/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwodder%2Fpyversion-info/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jwodder%2Fpyversion-info/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jwodder","download_url":"https://codeload.github.com/jwodder/pyversion-info/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248625493,"owners_count":21135513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["available-on-pypi","cpython","history","pypy","python","python-versions"],"created_at":"2024-10-31T15:08:26.330Z","updated_at":"2025-04-12T20:10:09.512Z","avatar_url":"https://github.com/jwodder.png","language":"Python","readme":"|repostatus| |ci-status| |coverage| |pyversions| |license|\n\n.. |repostatus| image:: https://www.repostatus.org/badges/latest/active.svg\n    :target: https://www.repostatus.org/#active\n    :alt: Project Status: Active — The project has reached a stable, usable\n          state and is being actively developed.\n\n.. |ci-status| image:: https://github.com/jwodder/pyversion-info/actions/workflows/test.yml/badge.svg\n    :target: https://github.com/jwodder/pyversion-info/actions/workflows/test.yml\n    :alt: CI Status\n\n.. |coverage| image:: https://codecov.io/gh/jwodder/pyversion-info/branch/master/graph/badge.svg\n    :target: https://codecov.io/gh/jwodder/pyversion-info\n\n.. |pyversions| image:: https://img.shields.io/pypi/pyversions/pyversion-info.svg\n    :target: https://pypi.org/project/pyversion-info/\n\n.. |license| image:: https://img.shields.io/github/license/jwodder/pyversion-info.svg\n    :target: https://opensource.org/licenses/MIT\n    :alt: MIT License\n\n`GitHub \u003chttps://github.com/jwodder/pyversion-info\u003e`_\n| `PyPI \u003chttps://pypi.org/project/pyversion-info/\u003e`_\n| `Documentation \u003chttps://pyversion-info.readthedocs.io\u003e`_\n| `Issues \u003chttps://github.com/jwodder/pyversion-info/issues\u003e`_\n| `Changelog \u003chttps://github.com/jwodder/pyversion-info/blob/master/CHANGELOG.md\u003e`_\n\nEver needed to know what Python versions were currently supported, or how many\nsubversions a given Python version had?  Wondering how long until a given\nversion came out or reached end-of-life?  Need to know what CPython versions a\ngiven PyPy version corresponds to?  The answers to these and some other\nquestions can be found with this library.\n\n``pyversion-info`` pulls its data every run from\n`jwodder/pyversion-info-data \u003chttps://github.com/jwodder/pyversion-info-data\u003e`_\non GitHub.  Prerelease versions are not (currently) included.  I promise\n24-hour turnaround times for keeping the database up-to-date until I am hit by\na bus.\n\nSee `the documentation \u003chttps://pyversion-info.readthedocs.io\u003e`_ for more\ninformation.\n\n\nInstallation\n============\n``pyversion-info`` requires Python 3.8 or higher.  Just use `pip\n\u003chttps://pip.pypa.io\u003e`_ for Python 3 (You have pip, right?) to install\n``pyversion-info`` and its dependencies::\n\n    python3 -m pip install pyversion-info\n\n\nExamples\n========\n\n(The given outputs are current as of 2021-11-04.)\n\nStart out by fetching the database:\n\n\u003e\u003e\u003e from pyversion_info import VersionDatabase\n\u003e\u003e\u003e vd = VersionDatabase.fetch()\n\nGet a list of all currently-supported CPython series:\n\n\u003e\u003e\u003e vd.cpython.supported_series()\n['3.6', '3.7', '3.8', '3.9', '3.10']\n\nWhen does 3.11 come out?\n\n\u003e\u003e\u003e vd.cpython.release_date(\"3.11\")\ndatetime.date(2022, 10, 3)\n\nWhen does 3.6 reach end-of-life?\n\n\u003e\u003e\u003e vd.cpython.eol_date(\"3.6\")\ndatetime.date(2021, 12, 23)\n\nJust how many micro versions does 3.9 have, anyway?\n\n\u003e\u003e\u003e vd.cpython.subversions(\"3.9\")\n['3.9.0', '3.9.1', '3.9.2', '3.9.3', '3.9.4', '3.9.5', '3.9.6', '3.9.7', '3.9.8', '3.9.9', '3.9.10', '3.9.11']\n\nWhat major versions of PyPy are there?\n\n\u003e\u003e\u003e vd.pypy.major_versions()\n['1', '2', '4', '5', '6', '7']\n\nWhat CPython series do PyPy 7.3.\\* support?\n\n\u003e\u003e\u003e vd.pypy.supported_cpython_series(\"7.3\")\n['2.7', '3.6', '3.7', '3.8']\n\n\nCaveats\n=======\n\nThe CPython database is generally only updated when an edit is made to a\nrelease schedule PEP.  Occasionally, a deadline listed in a PEP is missed, but\nthe PEP is not updated for a couple days, and so for a brief period this\nlibrary will falsely report the given version as released.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwodder%2Fpyversion-info","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjwodder%2Fpyversion-info","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjwodder%2Fpyversion-info/lists"}