| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- Metadata-Version: 2.4
- Name: python-discovery
- Version: 1.1.3
- Summary: Python interpreter discovery
- Project-URL: Changelog, https://github.com/tox-dev/python-discovery/releases
- Project-URL: Documentation, https://python-discovery.readthedocs.io
- Project-URL: Homepage, https://github.com/tox-dev/python-discovery
- Project-URL: Source, https://github.com/tox-dev/python-discovery
- Project-URL: Tracker, https://github.com/tox-dev/python-discovery/issues
- Maintainer-email: Bernát Gábor <gaborjbernat@gmail.com>
- License: Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be included
- in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- License-File: LICENSE
- Keywords: discovery,interpreter,python
- Classifier: Development Status :: 5 - Production/Stable
- Classifier: Intended Audience :: Developers
- Classifier: License :: OSI Approved :: MIT License
- Classifier: Operating System :: MacOS :: MacOS X
- Classifier: Operating System :: Microsoft :: Windows
- Classifier: Operating System :: POSIX
- Classifier: Programming Language :: Python :: 3 :: Only
- Classifier: Programming Language :: Python :: 3.8
- Classifier: Programming Language :: Python :: 3.9
- Classifier: Programming Language :: Python :: 3.10
- Classifier: Programming Language :: Python :: 3.11
- Classifier: Programming Language :: Python :: 3.12
- Classifier: Programming Language :: Python :: 3.13
- Classifier: Programming Language :: Python :: 3.14
- Classifier: Programming Language :: Python :: Implementation :: CPython
- Classifier: Topic :: Software Development :: Libraries
- Classifier: Topic :: Utilities
- Requires-Python: >=3.8
- Requires-Dist: filelock>=3.15.4
- Requires-Dist: platformdirs<5,>=4.3.6
- Provides-Extra: docs
- Requires-Dist: furo>=2025.12.19; extra == 'docs'
- Requires-Dist: sphinx-autodoc-typehints>=3.6.3; extra == 'docs'
- Requires-Dist: sphinx>=9.1; extra == 'docs'
- Requires-Dist: sphinxcontrib-mermaid>=2; extra == 'docs'
- Provides-Extra: testing
- Requires-Dist: covdefaults>=2.3; extra == 'testing'
- Requires-Dist: coverage>=7.5.4; extra == 'testing'
- Requires-Dist: pytest-mock>=3.14; extra == 'testing'
- Requires-Dist: pytest>=8.3.5; extra == 'testing'
- Requires-Dist: setuptools>=75.1; extra == 'testing'
- Description-Content-Type: text/markdown
- # [`python-discovery`](https://python-discovery.readthedocs.io/en/latest/)
- [](https://pypi.org/project/python-discovery/)
- [](https://pypi.org/project/python-discovery/)
- [](https://pepy.tech/project/python-discovery)
- [](https://github.com/tox-dev/python-discovery/actions/workflows/check.yaml)
- [](https://python-discovery.readthedocs.io/en/latest/?badge=latest)
- ## What is python-discovery?
- `python-discovery` is a library for discovering Python interpreters installed on your machine. You may have multiple
- Python versions from system packages, [pyenv](https://github.com/pyenv/pyenv), [mise](https://mise.jdx.dev/),
- [asdf](https://asdf-vm.com/), [uv](https://docs.astral.sh/uv/), or the Windows registry (PEP 514). This library finds
- the right one for you.
- Give it a requirement like `python3.12` or `>=3.11,<3.13`, and it searches all known locations, verifies each candidate,
- and returns detailed metadata about the match. Results are cached to disk so repeated lookups are fast.
- ## Usage
- ```python
- from pathlib import Path
- from python_discovery import DiskCache, get_interpreter
- cache = DiskCache(root=Path("~/.cache/python-discovery").expanduser())
- result = get_interpreter("python3.12", cache=cache)
- if result is not None:
- print(result.executable) # /usr/bin/python3.12
- print(result.implementation) # CPython
- print(result.version_info[:3]) # (3, 12, 1)
- ```
- The `get_interpreter()` function accepts various specification formats:
- - Absolute path: `/usr/bin/python3.12`
- - Version: `3.12`
- - Implementation prefix: `cpython3.12`
- - PEP 440 specifier: `>=3.10`, `>=3.11,<3.13`
- ## Documentation
- Full documentation is available at [python-discovery.readthedocs.io](https://python-discovery.readthedocs.io/en/latest/)
|