@@ -4,7 +4,7 @@ How py-discovery works
44Discovery strategy
55------------------
66
7- The :class: `~py_discovery.Builtin ` discover searches for Python interpreters in the following order:
7+ The :class: `~py_discovery.Builtin ` class searches for Python interpreters in the following order.
88
99.. mermaid ::
1010
@@ -31,7 +31,7 @@ The :class:`~py_discovery.Builtin` discover searches for Python interpreters in
3131 Verify -->|No match| Next["Try next candidate"]
3232
3333Each candidate is verified by running it as a subprocess to collect its metadata (version, architecture, platform,
34- sysconfig paths, etc. ). Verified interpreters are cached to avoid repeating this subprocess call.
34+ sysconfig paths, and more ). Verified interpreters are cached to avoid repeating this subprocess call.
3535
3636Shim resolution
3737---------------
@@ -50,8 +50,8 @@ py-discovery detects this and resolves it to the real binary:
5050 Global -->|Yes| Use
5151 Global -->|No| Skip["Skip shim"]
5252
53- For mise and asdf, the ``MISE_DATA_DIR `` / ``ASDF_DATA_DIR `` directories are searched. The shim directory is
54- identified via ``PYENV_ROOT ``, ``MISE_DATA_DIR ``, or ``ASDF_DATA_DIR `` environment variables.
53+ For mise and asdf, the ``MISE_DATA_DIR `` and ``ASDF_DATA_DIR `` directories are searched. The shim directory is
54+ identified via the ``PYENV_ROOT ``, ``MISE_DATA_DIR ``, or ``ASDF_DATA_DIR `` environment variables.
5555
5656Cache design
5757------------
@@ -73,8 +73,8 @@ ensures safe concurrent access.
7373The cache layer uses a :class: `typing.Protocol ` (:class: `~py_discovery.PyInfoCache `), so any object with the right
7474method signatures works as a cache backend -- no inheritance required. Two built-in implementations are provided:
7575
76- - :class: `~py_discovery.DiskCache ` -- persistent JSON + filelock storage
77- - :class: `~py_discovery.NoOpCache ` -- no-op, useful for one-shot scripts or testing
76+ - :class: `~py_discovery.DiskCache ` -- persistent JSON + filelock storage.
77+ - :class: `~py_discovery.NoOpCache ` -- no-op, useful for one-shot scripts or testing.
7878
7979Spec format
8080-----------
@@ -120,9 +120,9 @@ A spec string follows the pattern ``[impl][version][t][-arch][-machine]``:
120120| ``cpython>=3.11 `` | PEP 440 specifier with implementation filter |
121121+------------------------------+-----------------------------------------------+
122122
123- The ``impl `` prefix is optional; ``python `` and ``py `` are treated as "any implementation". The ``t `` suffix matches
124- free-threaded (no-GIL) builds. Architecture (``-32 `` or ``-64 ``) and ISA (``-arm64 ``, ``-x86_64 ``, etc. ) are optional
125- suffixes separated by dashes.
123+ The ``impl `` prefix is optional; ``python `` and ``py `` are treated as "any implementation." The ``t `` suffix matches
124+ free-threaded (no-GIL) builds. Architecture (``-32 `` or ``-64 ``) and ISA (``-arm64 ``, ``-x86_64 ``, and others ) are
125+ optional suffixes separated by dashes.
126126
127127PEP 440 specifiers (``>= ``, ``<= ``, ``~= ``, ``!= ``, ``== ``, ``=== ``) are supported for flexible version matching.
128- Multiple specifiers can be comma-separated: ``>=3.11,<3.13 ``.
128+ Multiple specifiers can be comma-separated, for example ``>=3.11,<3.13 ``.
0 commit comments