PEP 425: Resolve uses of the default role (#3393)

This commit is contained in:
Adam Turner 2023-09-01 20:31:42 +01:00 committed by GitHub
parent c8346db3e6
commit fba94ce6c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 21 additions and 21 deletions

View File

@ -71,7 +71,7 @@ For example, the tag py27-none-any indicates compatible with Python 2.7
Use Use
=== ===
The `wheel` built package format includes these tags in its filenames, The ``wheel`` built package format includes these tags in its filenames,
of the form ``{distribution}-{version}(-{build tag})?-{python tag}-{abi of the form ``{distribution}-{version}(-{build tag})?-{python tag}-{abi
tag}-{platform tag}.whl``. Other package formats may have their own tag}-{platform tag}.whl``. Other package formats may have their own
conventions. conventions.
@ -91,31 +91,31 @@ a distribution. Major implementations have abbreviated codes, initially:
* pp: PyPy * pp: PyPy
* jy: Jython * jy: Jython
Other Python implementations should use `sys.implementation.name`. Other Python implementations should use ``sys.implementation.name``.
The version is `py_version_nodot`. CPython gets away with no dot, The version is ``py_version_nodot``. CPython gets away with no dot,
but if one is needed the underscore `_` is used instead. PyPy should but if one is needed the underscore ``_`` is used instead. PyPy should
probably use its own versions here `pp18`, `pp19`. probably use its own versions here ``pp18``, ``pp19``.
The version can be just the major version `2` or `3` `py2`, `py3` for The version can be just the major version ``2`` or ``3`` ``py2``, ``py3`` for
many pure-Python distributions. many pure-Python distributions.
Importantly, major-version-only tags like `py2` and `py3` are not Importantly, major-version-only tags like ``py2`` and ``py3`` are not
shorthand for `py20` and `py30`. Instead, these tags mean the packager shorthand for ``py20`` and ``py30``. Instead, these tags mean the packager
intentionally released a cross-version-compatible distribution. intentionally released a cross-version-compatible distribution.
A single-source Python 2/3 compatible distribution can use the compound A single-source Python 2/3 compatible distribution can use the compound
tag `py2.py3`. See `Compressed Tag Sets`, below. tag ``py2.py3``. See ``Compressed Tag Sets``, below.
ABI Tag ABI Tag
------- -------
The ABI tag indicates which Python ABI is required by any included The ABI tag indicates which Python ABI is required by any included
extension modules. For implementation-specific ABIs, the implementation extension modules. For implementation-specific ABIs, the implementation
is abbreviated in the same way as the Python Tag, e.g. `cp33d` would be is abbreviated in the same way as the Python Tag, e.g. ``cp33d`` would be
the CPython 3.3 ABI with debugging. the CPython 3.3 ABI with debugging.
The CPython stable ABI is `abi3` as in the shared library suffix. The CPython stable ABI is ``abi3`` as in the shared library suffix.
Implementations with a very unstable ABI may use the first 6 bytes (as Implementations with a very unstable ABI may use the first 6 bytes (as
8 base64-encoded characters) of the SHA-256 hash of their source code 8 base64-encoded characters) of the SHA-256 hash of their source code
@ -126,8 +126,8 @@ decide how to best use the ABI tag.
Platform Tag Platform Tag
------------ ------------
The platform tag is simply `distutils.util.get_platform()` with all The platform tag is simply ``distutils.util.get_platform()`` with all
hyphens `-` and periods `.` replaced with underscore `_`. hyphens ``-`` and periods ``.`` replaced with underscore ``_``.
* win32 * win32
* linux_i386 * linux_i386
@ -139,7 +139,7 @@ Use
The tags are used by installers to decide which built distribution The tags are used by installers to decide which built distribution
(if any) to download from a list of potential built distributions. (if any) to download from a list of potential built distributions.
The installer maintains a list of (pyver, abi, arch) tuples that it The installer maintains a list of (pyver, abi, arch) tuples that it
will support. If the built distribution's tag is `in` the list, then will support. If the built distribution's tag is ``in`` the list, then
it can be installed. it can be installed.
It is recommended that installers try to choose the most feature complete It is recommended that installers try to choose the most feature complete
@ -147,7 +147,7 @@ built distribution available (the one most specific to the installation
environment) by default before falling back to pure Python versions environment) by default before falling back to pure Python versions
published for older Python releases. Installers are also recommended to published for older Python releases. Installers are also recommended to
provide a way to configure and re-order the list of allowed compatibility provide a way to configure and re-order the list of allowed compatibility
tags; for example, a user might accept only the `*-none-any` tags to only tags; for example, a user might accept only the ``*-none-any`` tags to only
download built packages that advertise themselves as being pure Python. download built packages that advertise themselves as being pure Python.
Another desirable installer feature might be to include "re-compile from Another desirable installer feature might be to include "re-compile from
@ -181,8 +181,8 @@ older version of Python):
Sometimes there will be more than one supported built distribution for a Sometimes there will be more than one supported built distribution for a
particular version of a package. For example, a packager could release particular version of a package. For example, a packager could release
a package tagged `cp33-abi3-linux_x86_64` that contains an optional C a package tagged ``cp33-abi3-linux_x86_64`` that contains an optional C
extension and the same distribution tagged `py3-none-any` that does not. extension and the same distribution tagged ``py3-none-any`` that does not.
The index of the tag in the supported tags list breaks the tie, and the The index of the tag in the supported tags list breaks the tie, and the
package with the C extension is installed in preference to the package package with the C extension is installed in preference to the package
without because that tag appears first in the list. without because that tag appears first in the list.
@ -194,7 +194,7 @@ To allow for compact filenames of bdists that work with more than
one compatibility tag triple, each tag in a filename can instead be a one compatibility tag triple, each tag in a filename can instead be a
'.'-separated, sorted, set of tags. For example, pip, a pure-Python '.'-separated, sorted, set of tags. For example, pip, a pure-Python
package that is written to run under Python 2 and 3 with the same source package that is written to run under Python 2 and 3 with the same source
code, could distribute a bdist with the tag `py2.py3-none-any`. code, could distribute a bdist with the tag ``py2.py3-none-any``.
The full list of simple tags is:: The full list of simple tags is::
for x in pytag.split('.'): for x in pytag.split('.'):
@ -212,8 +212,8 @@ FAQ
What tags are used by default? What tags are used by default?
Tools should use the most-preferred architecture dependent tag Tools should use the most-preferred architecture dependent tag
e.g. `cp33-cp33m-win32` or the most-preferred pure python tag e.g. ``cp33-cp33m-win32`` or the most-preferred pure python tag
e.g. `py33-none-any` by default. If the packager overrides the e.g. ``py33-none-any`` by default. If the packager overrides the
default it indicates that they intended to provide cross-Python default it indicates that they intended to provide cross-Python
compatibility. compatibility.
@ -227,7 +227,7 @@ What tag do I use if my distribution uses a feature exclusive to the newest vers
older release ``beaglevote-1.1.0`` that does not use the new feature, older release ``beaglevote-1.1.0`` that does not use the new feature,
to get a compatible build. to get a compatible build.
Why isn't there a `.` in the Python version number? Why isn't there a ``.`` in the Python version number?
CPython has lasted 20+ years without a 3-digit major release. This CPython has lasted 20+ years without a 3-digit major release. This
should continue for some time. Other implementations may use _ as should continue for some time. Other implementations may use _ as
a delimiter, since both - and . delimit the surrounding filename. a delimiter, since both - and . delimit the surrounding filename.