110 lines
5.5 KiB
Plaintext
110 lines
5.5 KiB
Plaintext
Metadata-Version: 2.4
|
|
Name: python-discovery
|
|
Version: 1.4.4
|
|
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'
|
|
Requires-Dist: sphinxcontrib-towncrier>=0.4; extra == 'docs'
|
|
Requires-Dist: towncrier>=25.8; 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`
|
|
- [Version specifier](https://packaging.python.org/en/latest/specifications/version-specifiers/): `>=3.10`,
|
|
`>=3.11,<3.13`
|
|
|
|
## Documentation
|
|
|
|
Full documentation is available at [python-discovery.readthedocs.io](https://python-discovery.readthedocs.io/en/latest/)
|