diff --git a/locales/ar/LC_MESSAGES/messages.po b/locales/ar/LC_MESSAGES/messages.po index a334f4dec..8f2670112 100644 --- a/locales/ar/LC_MESSAGES/messages.po +++ b/locales/ar/LC_MESSAGES/messages.po @@ -4,13 +4,14 @@ # Monzer Ghannam , 2022. # Youcef Guenaoua , 2024. # Mohamed Brahimi , 2025. +# HAMDI KHALID , 2025. msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" -"PO-Revision-Date: 2025-01-19 01:44+0000\n" -"Last-Translator: Mohamed Brahimi \n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" +"PO-Revision-Date: 2025-12-15 04:00+0000\n" +"Last-Translator: HAMDI KHALID \n" "Language-Team: Arabic \n" "Language: ar\n" @@ -19,7 +20,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" -"X-Generator: Weblate 5.10-dev\n" +"X-Generator: Weblate 5.15-dev\n" #: ../source/contribute.rst:5 msgid "Contribute to this guide" @@ -2653,7 +2654,7 @@ msgid "A simple version with just one component: ``42``" msgstr "" #: ../source/discussions/versioning.rst:30 -msgid "A version with an epoch: ``1!1.0``" +msgid "A version with an epoch (discouraged): ``1!1.0``" msgstr "" #: ../source/discussions/versioning.rst:32 @@ -2684,20 +2685,22 @@ msgstr "" #: ../source/discussions/versioning.rst:49 msgid "" -"Finally, epochs, a rarely used feature, serve to fix the sorting order when " -"changing the versioning scheme. For example, if a project is using calendar " -"versioning, with versions like 23.12, and switches to semantic versioning, " -"with versions like 1.0, the comparison between 1.0 and 23.12 will go the " -"wrong way. To correct this, the new version numbers should have an explicit " -"epoch, as in \"1!1.0\", in order to be treated as more recent than the old " -"version numbers." +"Finally, epochs were intended to fix the sorting order when changing the " +"versioning scheme. For example, if a project was using calendar versioning, " +"with versions like ``23.12``, and switched to semantic versioning, with " +"versions like ``1.0``, the comparison between ``1.0`` and ``23.12`` would go " +"the wrong way. To correct this, the new version numbers would have an " +"explicit epoch, as in ``1!1.0``, in order to be treated as more recent than " +"the old version numbers. However, this is discouraged, and it is preferable " +"to use a higher version number that is unlikely to cause user confusion, " +"such as ``100.0``." msgstr "" -#: ../source/discussions/versioning.rst:59 +#: ../source/discussions/versioning.rst:60 msgid "Semantic versioning vs. calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:61 +#: ../source/discussions/versioning.rst:62 msgid "" "A versioning scheme is a formalized way to interpret the segments of a " "version number, and to decide which should be the next version number for a " @@ -2705,7 +2708,7 @@ msgid "" "Python packages, semantic versioning and calendar versioning." msgstr "" -#: ../source/discussions/versioning.rst:68 +#: ../source/discussions/versioning.rst:69 msgid "" "The decision which version number to choose is up to a project's maintainer. " "This effectively means that version bumps reflect the maintainer's view. " @@ -2713,7 +2716,7 @@ msgid "" "versioning scheme promises them." msgstr "" -#: ../source/discussions/versioning.rst:74 +#: ../source/discussions/versioning.rst:75 msgid "" "There are known exceptions for selecting the next version number. The " "maintainers may consciously choose to break the assumption that the last " @@ -2722,31 +2725,31 @@ msgid "" "come in patch versions but contain breaking changes inevitably." msgstr "" -#: ../source/discussions/versioning.rst:84 -#: ../source/specifications/version-specifiers.rst:726 +#: ../source/discussions/versioning.rst:85 +#: ../source/specifications/version-specifiers.rst:741 msgid "Semantic versioning" msgstr "" -#: ../source/discussions/versioning.rst:86 +#: ../source/discussions/versioning.rst:87 msgid "" "The idea of *semantic versioning* (or SemVer) is to use 3-part version " "numbers, *major.minor.patch*, where the project author increments:" msgstr "" -#: ../source/discussions/versioning.rst:89 +#: ../source/discussions/versioning.rst:90 msgid "*major* when they make incompatible API changes," msgstr "" -#: ../source/discussions/versioning.rst:90 +#: ../source/discussions/versioning.rst:91 msgid "" "*minor* when they add functionality in a backwards-compatible manner, and" msgstr "" -#: ../source/discussions/versioning.rst:91 +#: ../source/discussions/versioning.rst:92 msgid "*patch*, when they make backwards-compatible bug fixes." msgstr "" -#: ../source/discussions/versioning.rst:93 +#: ../source/discussions/versioning.rst:94 msgid "" "A majority of Python projects use a scheme that resembles semantic " "versioning. However, most projects, especially larger ones, do not strictly " @@ -2758,7 +2761,7 @@ msgid "" "used to signal significant but backwards-compatible new features." msgstr "" -#: ../source/discussions/versioning.rst:103 +#: ../source/discussions/versioning.rst:104 msgid "" "For those projects that do use strict semantic versioning, this approach " "allows users to make use of :ref:`compatible release version specifiers " @@ -2770,13 +2773,13 @@ msgid "" "and allows a later release with same X and Y but higher Z." msgstr "" -#: ../source/discussions/versioning.rst:112 +#: ../source/discussions/versioning.rst:113 msgid "" "Python projects adopting semantic versioning should abide by clauses 1-8 of " "the `Semantic Versioning 2.0.0 specification `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2787,41 +2790,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2830,7 +2833,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2839,12 +2842,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2854,7 +2857,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2866,11 +2869,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2878,20 +2881,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2899,7 +2902,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2910,7 +2913,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2919,13 +2922,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3208,11 +3211,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3411,9 +3414,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3586,54 +3589,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3641,11 +3644,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3654,11 +3657,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3666,26 +3669,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3697,38 +3700,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3737,21 +3740,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3760,11 +3763,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3772,15 +3775,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3788,21 +3791,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3955,7 +3958,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4311,17 +4314,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4633,7 +4647,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5004,7 +5018,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6692,11 +6706,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6732,7 +6747,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6745,29 +6761,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6779,65 +6795,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6846,18 +6862,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6866,11 +6882,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6880,7 +6896,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6889,11 +6905,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6905,24 +6921,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6930,17 +6946,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6951,11 +6967,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6963,14 +6979,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7597,12 +7613,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8308,17 +8318,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8326,34 +8336,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8361,42 +8371,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8405,18 +8427,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8746,7 +8762,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9362,40 +9378,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9403,25 +9423,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9429,45 +9449,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9478,31 +9498,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9703,9 +9723,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9732,9 +9752,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9765,7 +9785,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9795,8 +9815,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9848,7 +9868,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9859,8 +9879,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9872,8 +9892,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9906,7 +9926,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -9980,8 +10000,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10011,90 +10031,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10103,26 +10123,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10130,28 +10150,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10159,33 +10179,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -10509,7 +10529,7 @@ msgstr "" #: ../source/key_projects.rst:157 msgid "packaging" -msgstr "" +msgstr "GitHub" #: ../source/key_projects.rst:159 msgid "" @@ -13236,86 +13256,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13324,116 +13340,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13443,51 +13388,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13495,7 +13400,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13503,18 +13408,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13523,7 +13428,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13534,7 +13439,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13552,7 +13457,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13561,7 +13466,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13573,26 +13478,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13600,24 +13505,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14371,11 +14280,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16207,17 +16116,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18225,7 +18140,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20568,95 +20483,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20679,10 +20604,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20733,7 +20654,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20741,24 +20662,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20768,139 +20689,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20914,7 +20835,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20923,7 +20844,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20935,30 +20856,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20967,21 +20888,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -20991,26 +20912,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21019,40 +20940,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21061,11 +20982,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21095,56 +21016,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21152,38 +21073,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21191,14 +21112,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21206,7 +21127,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21214,24 +21135,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21239,7 +21160,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21250,13 +21171,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21265,7 +21186,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21280,38 +21201,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21321,7 +21242,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21329,7 +21250,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21337,21 +21258,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21359,19 +21280,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21380,20 +21301,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21401,18 +21322,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21420,7 +21341,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21428,32 +21349,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22277,7 +22198,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22316,7 +22237,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22536,14 +22457,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22577,7 +22498,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22585,45 +22506,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22631,7 +22552,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22640,23 +22561,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22665,14 +22586,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22682,7 +22603,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22690,14 +22611,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22707,45 +22628,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22754,7 +22675,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22764,17 +22685,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22782,7 +22703,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22791,11 +22712,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22803,11 +22724,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22870,11 +22791,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22883,65 +22804,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22949,7 +22870,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22960,7 +22881,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22969,33 +22890,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23005,7 +22926,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23015,7 +22936,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23023,7 +22944,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23034,22 +22955,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23058,25 +22979,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23084,13 +23005,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23100,18 +23021,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23119,7 +23040,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23129,7 +23050,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23137,7 +23058,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23145,7 +23066,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23154,18 +23075,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23173,13 +23094,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23188,23 +23109,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23213,79 +23134,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23563,7 +23484,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24090,11 +24011,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24102,22 +24045,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24126,11 +24069,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24140,11 +24083,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24154,11 +24097,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24166,11 +24109,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24181,11 +24124,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24193,11 +24136,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24205,11 +24148,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24219,11 +24162,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24231,11 +24174,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24243,11 +24186,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24255,11 +24198,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24268,11 +24211,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24281,11 +24224,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24295,7 +24238,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24303,69 +24246,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24373,48 +24316,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24425,7 +24368,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24435,17 +24378,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24454,14 +24397,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24472,7 +24415,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24480,30 +24423,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24511,30 +24454,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24542,60 +24485,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24604,79 +24547,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24685,7 +24628,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24693,7 +24636,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24703,21 +24646,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24725,7 +24668,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24734,7 +24677,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24744,14 +24687,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24760,28 +24703,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24790,27 +24733,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24820,7 +24763,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24830,13 +24773,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25056,7 +25001,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25064,7 +25009,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25075,15 +25020,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25091,7 +25036,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25099,7 +25044,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25111,43 +25056,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25156,29 +25101,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26544,7 +26497,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26583,11 +26536,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/ars/LC_MESSAGES/messages.po b/locales/ars/LC_MESSAGES/messages.po index 48a40afc7..d1ce516c3 100644 --- a/locales/ars/LC_MESSAGES/messages.po +++ b/locales/ars/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -2647,7 +2647,7 @@ msgid "A simple version with just one component: ``42``" msgstr "" #: ../source/discussions/versioning.rst:30 -msgid "A version with an epoch: ``1!1.0``" +msgid "A version with an epoch (discouraged): ``1!1.0``" msgstr "" #: ../source/discussions/versioning.rst:32 @@ -2678,20 +2678,22 @@ msgstr "" #: ../source/discussions/versioning.rst:49 msgid "" -"Finally, epochs, a rarely used feature, serve to fix the sorting order when " -"changing the versioning scheme. For example, if a project is using calendar " -"versioning, with versions like 23.12, and switches to semantic versioning, " -"with versions like 1.0, the comparison between 1.0 and 23.12 will go the " -"wrong way. To correct this, the new version numbers should have an explicit " -"epoch, as in \"1!1.0\", in order to be treated as more recent than the old " -"version numbers." +"Finally, epochs were intended to fix the sorting order when changing the " +"versioning scheme. For example, if a project was using calendar versioning, " +"with versions like ``23.12``, and switched to semantic versioning, with " +"versions like ``1.0``, the comparison between ``1.0`` and ``23.12`` would go " +"the wrong way. To correct this, the new version numbers would have an " +"explicit epoch, as in ``1!1.0``, in order to be treated as more recent than " +"the old version numbers. However, this is discouraged, and it is preferable " +"to use a higher version number that is unlikely to cause user confusion, " +"such as ``100.0``." msgstr "" -#: ../source/discussions/versioning.rst:59 +#: ../source/discussions/versioning.rst:60 msgid "Semantic versioning vs. calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:61 +#: ../source/discussions/versioning.rst:62 msgid "" "A versioning scheme is a formalized way to interpret the segments of a " "version number, and to decide which should be the next version number for a " @@ -2699,7 +2701,7 @@ msgid "" "Python packages, semantic versioning and calendar versioning." msgstr "" -#: ../source/discussions/versioning.rst:68 +#: ../source/discussions/versioning.rst:69 msgid "" "The decision which version number to choose is up to a project's maintainer. " "This effectively means that version bumps reflect the maintainer's view. " @@ -2707,7 +2709,7 @@ msgid "" "versioning scheme promises them." msgstr "" -#: ../source/discussions/versioning.rst:74 +#: ../source/discussions/versioning.rst:75 msgid "" "There are known exceptions for selecting the next version number. The " "maintainers may consciously choose to break the assumption that the last " @@ -2716,31 +2718,31 @@ msgid "" "come in patch versions but contain breaking changes inevitably." msgstr "" -#: ../source/discussions/versioning.rst:84 -#: ../source/specifications/version-specifiers.rst:726 +#: ../source/discussions/versioning.rst:85 +#: ../source/specifications/version-specifiers.rst:741 msgid "Semantic versioning" msgstr "" -#: ../source/discussions/versioning.rst:86 +#: ../source/discussions/versioning.rst:87 msgid "" "The idea of *semantic versioning* (or SemVer) is to use 3-part version " "numbers, *major.minor.patch*, where the project author increments:" msgstr "" -#: ../source/discussions/versioning.rst:89 +#: ../source/discussions/versioning.rst:90 msgid "*major* when they make incompatible API changes," msgstr "" -#: ../source/discussions/versioning.rst:90 +#: ../source/discussions/versioning.rst:91 msgid "" "*minor* when they add functionality in a backwards-compatible manner, and" msgstr "" -#: ../source/discussions/versioning.rst:91 +#: ../source/discussions/versioning.rst:92 msgid "*patch*, when they make backwards-compatible bug fixes." msgstr "" -#: ../source/discussions/versioning.rst:93 +#: ../source/discussions/versioning.rst:94 msgid "" "A majority of Python projects use a scheme that resembles semantic " "versioning. However, most projects, especially larger ones, do not strictly " @@ -2752,7 +2754,7 @@ msgid "" "used to signal significant but backwards-compatible new features." msgstr "" -#: ../source/discussions/versioning.rst:103 +#: ../source/discussions/versioning.rst:104 msgid "" "For those projects that do use strict semantic versioning, this approach " "allows users to make use of :ref:`compatible release version specifiers " @@ -2764,13 +2766,13 @@ msgid "" "and allows a later release with same X and Y but higher Z." msgstr "" -#: ../source/discussions/versioning.rst:112 +#: ../source/discussions/versioning.rst:113 msgid "" "Python projects adopting semantic versioning should abide by clauses 1-8 of " "the `Semantic Versioning 2.0.0 specification `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2781,41 +2783,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2824,7 +2826,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2833,12 +2835,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2848,7 +2850,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2860,11 +2862,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2872,20 +2874,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2893,7 +2895,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2904,7 +2906,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2913,13 +2915,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3202,11 +3204,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3405,9 +3407,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3580,54 +3582,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3635,11 +3637,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3648,11 +3650,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3660,26 +3662,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3691,38 +3693,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3731,21 +3733,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3754,11 +3756,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3766,15 +3768,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3782,21 +3784,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3949,7 +3951,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4305,17 +4307,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4627,7 +4640,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -4998,7 +5011,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6686,11 +6699,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6726,7 +6740,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6739,29 +6754,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6773,65 +6788,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6840,18 +6855,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6860,11 +6875,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6874,7 +6889,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6883,11 +6898,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6899,24 +6914,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6924,17 +6939,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6945,11 +6960,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6957,14 +6972,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7591,12 +7606,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8302,17 +8311,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8320,34 +8329,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8355,42 +8364,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8399,18 +8420,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8740,7 +8755,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9356,40 +9371,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9397,25 +9416,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9423,45 +9442,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9472,31 +9491,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9697,9 +9716,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9726,9 +9745,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9759,7 +9778,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9789,8 +9808,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9842,7 +9861,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9853,8 +9872,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9866,8 +9885,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9900,7 +9919,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -9974,8 +9993,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10005,90 +10024,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10097,26 +10116,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10124,28 +10143,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10153,33 +10172,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13230,86 +13249,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13318,116 +13333,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13437,51 +13381,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13489,7 +13393,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13497,18 +13401,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13517,7 +13421,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13528,7 +13432,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13546,7 +13450,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13555,7 +13459,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13567,26 +13471,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13594,24 +13498,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14365,11 +14273,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16201,17 +16109,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18219,7 +18133,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20562,95 +20476,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20673,10 +20597,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20727,7 +20647,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20735,24 +20655,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20762,139 +20682,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20908,7 +20828,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20917,7 +20837,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20929,30 +20849,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20961,21 +20881,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -20985,26 +20905,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21013,40 +20933,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21055,11 +20975,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21089,56 +21009,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21146,38 +21066,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21185,14 +21105,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21200,7 +21120,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21208,24 +21128,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21233,7 +21153,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21244,13 +21164,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21259,7 +21179,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21274,38 +21194,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21315,7 +21235,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21323,7 +21243,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21331,21 +21251,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21353,19 +21273,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21374,20 +21294,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21395,18 +21315,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21414,7 +21334,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21422,32 +21342,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22271,7 +22191,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22310,7 +22230,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22530,14 +22450,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22571,7 +22491,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22579,45 +22499,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22625,7 +22545,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22634,23 +22554,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22659,14 +22579,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22676,7 +22596,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22684,14 +22604,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22701,45 +22621,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22748,7 +22668,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22758,17 +22678,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22776,7 +22696,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22785,11 +22705,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22797,11 +22717,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22864,11 +22784,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22877,65 +22797,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22943,7 +22863,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22954,7 +22874,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22963,33 +22883,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -22999,7 +22919,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23009,7 +22929,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23017,7 +22937,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23028,22 +22948,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23052,25 +22972,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23078,13 +22998,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23094,18 +23014,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23113,7 +23033,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23123,7 +23043,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23131,7 +23051,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23139,7 +23059,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23148,18 +23068,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23167,13 +23087,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23182,23 +23102,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23207,79 +23127,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23557,7 +23477,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24084,11 +24004,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24096,22 +24038,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24120,11 +24062,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24134,11 +24076,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24148,11 +24090,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24160,11 +24102,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24175,11 +24117,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24187,11 +24129,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24199,11 +24141,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24213,11 +24155,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24225,11 +24167,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24237,11 +24179,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24249,11 +24191,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24262,11 +24204,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24275,11 +24217,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24289,7 +24231,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24297,69 +24239,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24367,48 +24309,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24419,7 +24361,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24429,17 +24371,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24448,14 +24390,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24466,7 +24408,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24474,30 +24416,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24505,30 +24447,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24536,60 +24478,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24598,79 +24540,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24679,7 +24621,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24687,7 +24629,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24697,21 +24639,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24719,7 +24661,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24728,7 +24670,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24738,14 +24680,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24754,28 +24696,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24784,27 +24726,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24814,7 +24756,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24824,13 +24766,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25050,7 +24994,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25058,7 +25002,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25069,15 +25013,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25085,7 +25029,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25093,7 +25037,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25105,43 +25049,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25150,29 +25094,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26538,7 +26490,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26577,11 +26529,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/cs/LC_MESSAGES/messages.po b/locales/cs/LC_MESSAGES/messages.po index 1928aedc0..d6faf4cae 100644 --- a/locales/cs/LC_MESSAGES/messages.po +++ b/locales/cs/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2025-10-16 23:52+0000\n" "Last-Translator: Karolína Wallenfelsová \n" "Language-Team: Czech `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2792,41 +2794,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2835,7 +2837,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2844,12 +2846,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2859,7 +2861,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2871,11 +2873,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2883,20 +2885,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2904,7 +2906,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2915,7 +2917,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2924,13 +2926,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3213,11 +3215,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3416,9 +3418,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3591,54 +3593,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3646,11 +3648,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3659,11 +3661,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3671,26 +3673,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3702,38 +3704,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3742,21 +3744,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3765,11 +3767,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3777,15 +3779,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3793,21 +3795,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3960,7 +3962,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4316,17 +4318,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4638,7 +4651,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5009,7 +5022,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6697,11 +6710,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6737,7 +6751,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6750,29 +6765,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6784,65 +6799,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6851,18 +6866,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6871,11 +6886,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6885,7 +6900,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6894,11 +6909,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6910,24 +6925,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6935,17 +6950,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6956,11 +6971,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6968,14 +6983,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7602,12 +7617,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8313,17 +8322,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8331,34 +8340,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8366,42 +8375,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8410,18 +8431,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8751,7 +8766,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9367,40 +9382,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9408,25 +9427,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9434,45 +9453,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9483,31 +9502,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9708,9 +9727,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9737,9 +9756,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9770,7 +9789,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9800,8 +9819,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9853,7 +9872,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9864,8 +9883,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9877,8 +9896,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9911,7 +9930,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -9985,8 +10004,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10016,90 +10035,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10108,26 +10127,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10135,28 +10154,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10164,33 +10183,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13241,86 +13260,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13329,116 +13344,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13448,51 +13392,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13500,7 +13404,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13508,18 +13412,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13528,7 +13432,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13539,7 +13443,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13557,7 +13461,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13566,7 +13470,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13578,26 +13482,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13605,24 +13509,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14376,11 +14284,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16212,17 +16120,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18230,7 +18144,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20573,95 +20487,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20684,10 +20608,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20738,7 +20658,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20746,24 +20666,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20773,139 +20693,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20919,7 +20839,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20928,7 +20848,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20940,30 +20860,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20972,21 +20892,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -20996,26 +20916,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21024,40 +20944,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21066,11 +20986,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21100,56 +21020,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21157,38 +21077,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21196,14 +21116,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21211,7 +21131,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21219,24 +21139,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21244,7 +21164,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21255,13 +21175,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21270,7 +21190,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21285,38 +21205,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21326,7 +21246,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21334,7 +21254,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21342,21 +21262,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21364,19 +21284,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21385,20 +21305,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21406,18 +21326,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21425,7 +21345,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21433,32 +21353,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22282,7 +22202,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22321,7 +22241,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22541,14 +22461,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22582,7 +22502,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22590,45 +22510,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22636,7 +22556,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22645,23 +22565,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22670,14 +22590,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22687,7 +22607,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22695,14 +22615,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22712,45 +22632,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22759,7 +22679,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22769,17 +22689,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22787,7 +22707,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22796,11 +22716,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22808,11 +22728,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22875,11 +22795,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22888,65 +22808,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22954,7 +22874,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22965,7 +22885,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22974,33 +22894,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23010,7 +22930,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23020,7 +22940,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23028,7 +22948,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23039,22 +22959,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23063,25 +22983,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23089,13 +23009,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23105,18 +23025,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23124,7 +23044,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23134,7 +23054,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23142,7 +23062,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23150,7 +23070,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23159,18 +23079,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23178,13 +23098,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23193,23 +23113,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23218,79 +23138,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23568,7 +23488,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24095,11 +24015,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24107,22 +24049,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24131,11 +24073,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24145,11 +24087,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24159,11 +24101,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24171,11 +24113,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24186,11 +24128,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24198,11 +24140,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24210,11 +24152,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24224,11 +24166,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24236,11 +24178,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24248,11 +24190,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24260,11 +24202,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24273,11 +24215,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24286,11 +24228,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24300,7 +24242,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24308,69 +24250,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24378,48 +24320,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24430,7 +24372,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24440,17 +24382,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24459,14 +24401,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24477,7 +24419,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24485,30 +24427,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24516,30 +24458,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24547,60 +24489,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24609,79 +24551,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24690,7 +24632,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24698,7 +24640,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24708,21 +24650,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24730,7 +24672,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24739,7 +24681,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24749,14 +24691,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24765,28 +24707,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24795,27 +24737,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24825,7 +24767,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24835,13 +24777,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25061,7 +25005,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25069,7 +25013,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25080,15 +25024,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25096,7 +25040,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25104,7 +25048,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25116,43 +25060,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25161,29 +25105,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26549,7 +26501,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26588,11 +26540,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/da/LC_MESSAGES/messages.po b/locales/da/LC_MESSAGES/messages.po index 7f80227ad..c55f56e69 100644 --- a/locales/da/LC_MESSAGES/messages.po +++ b/locales/da/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2025-10-09 04:07+0000\n" "Last-Translator: Philip Mallegol-Hansen \n" "Language-Team: Danish `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2786,41 +2788,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2829,7 +2831,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2838,12 +2840,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2853,7 +2855,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2865,11 +2867,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2877,20 +2879,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2898,7 +2900,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2909,7 +2911,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2918,13 +2920,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3207,11 +3209,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3410,9 +3412,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3585,54 +3587,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3640,11 +3642,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3653,11 +3655,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3665,26 +3667,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3696,38 +3698,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3736,21 +3738,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3759,11 +3761,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3771,15 +3773,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3787,21 +3789,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3954,7 +3956,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4310,17 +4312,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4632,7 +4645,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5003,7 +5016,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6691,11 +6704,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6731,7 +6745,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6744,29 +6759,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6778,65 +6793,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6845,18 +6860,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6865,11 +6880,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6879,7 +6894,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6888,11 +6903,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6904,24 +6919,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6929,17 +6944,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6950,11 +6965,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6962,14 +6977,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7596,12 +7611,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8307,17 +8316,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8325,34 +8334,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8360,42 +8369,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8404,18 +8425,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8745,7 +8760,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9361,40 +9376,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9402,25 +9421,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9428,45 +9447,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9477,31 +9496,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9702,9 +9721,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9731,9 +9750,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9764,7 +9783,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9794,8 +9813,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9847,7 +9866,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9858,8 +9877,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9871,8 +9890,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9905,7 +9924,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -9979,8 +9998,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10010,90 +10029,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10102,26 +10121,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10129,28 +10148,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10158,33 +10177,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13235,86 +13254,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13323,116 +13338,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13442,51 +13386,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13494,7 +13398,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13502,18 +13406,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13522,7 +13426,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13533,7 +13437,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13551,7 +13455,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13560,7 +13464,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13572,26 +13476,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13599,24 +13503,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14370,11 +14278,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16206,17 +16114,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18224,7 +18138,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20567,95 +20481,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20678,10 +20602,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20732,7 +20652,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20740,24 +20660,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20767,139 +20687,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20913,7 +20833,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20922,7 +20842,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20934,30 +20854,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20966,21 +20886,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -20990,26 +20910,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21018,40 +20938,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21060,11 +20980,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21094,56 +21014,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21151,38 +21071,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21190,14 +21110,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21205,7 +21125,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21213,24 +21133,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21238,7 +21158,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21249,13 +21169,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21264,7 +21184,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21279,38 +21199,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21320,7 +21240,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21328,7 +21248,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21336,21 +21256,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21358,19 +21278,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21379,20 +21299,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21400,18 +21320,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21419,7 +21339,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21427,32 +21347,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22276,7 +22196,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22315,7 +22235,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22535,14 +22455,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22576,7 +22496,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22584,45 +22504,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22630,7 +22550,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22639,23 +22559,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22664,14 +22584,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22681,7 +22601,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22689,14 +22609,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22706,45 +22626,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22753,7 +22673,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22763,17 +22683,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22781,7 +22701,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22790,11 +22710,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22802,11 +22722,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22869,11 +22789,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22882,65 +22802,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22948,7 +22868,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22959,7 +22879,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22968,33 +22888,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23004,7 +22924,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23014,7 +22934,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23022,7 +22942,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23033,22 +22953,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23057,25 +22977,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23083,13 +23003,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23099,18 +23019,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23118,7 +23038,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23128,7 +23048,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23136,7 +23056,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23144,7 +23064,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23153,18 +23073,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23172,13 +23092,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23187,23 +23107,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23212,79 +23132,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23562,7 +23482,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24089,11 +24009,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24101,22 +24043,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24125,11 +24067,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24139,11 +24081,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24153,11 +24095,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24165,11 +24107,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24180,11 +24122,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24192,11 +24134,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24204,11 +24146,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24218,11 +24160,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24230,11 +24172,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24242,11 +24184,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24254,11 +24196,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24267,11 +24209,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24280,11 +24222,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24294,7 +24236,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24302,69 +24244,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24372,48 +24314,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24424,7 +24366,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24434,17 +24376,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24453,14 +24395,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24471,7 +24413,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24479,30 +24421,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24510,30 +24452,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24541,60 +24483,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24603,79 +24545,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24684,7 +24626,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24692,7 +24634,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24702,21 +24644,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24724,7 +24666,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24733,7 +24675,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24743,14 +24685,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24759,28 +24701,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24789,27 +24731,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24819,7 +24761,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24829,13 +24771,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25055,7 +24999,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25063,7 +25007,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25074,15 +25018,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25090,7 +25034,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25098,7 +25042,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25110,43 +25054,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25155,29 +25099,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26543,7 +26495,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26582,11 +26534,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/de/LC_MESSAGES/messages.po b/locales/de/LC_MESSAGES/messages.po index 419d6cc80..0690838d0 100644 --- a/locales/de/LC_MESSAGES/messages.po +++ b/locales/de/LC_MESSAGES/messages.po @@ -16,7 +16,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2025-10-28 15:43+0000\n" "Last-Translator: Norah-14 \n" "Language-Team: German `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -3076,41 +3078,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -3119,7 +3121,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -3128,12 +3130,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -3143,7 +3145,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -3155,11 +3157,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -3167,20 +3169,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -3188,7 +3190,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -3199,7 +3201,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -3208,13 +3210,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3497,11 +3499,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3702,9 +3704,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3877,54 +3879,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3932,11 +3934,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3945,11 +3947,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3957,26 +3959,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3988,38 +3990,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "Quellenarchiv" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -4028,21 +4030,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "Spezifikation der Version" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -4051,11 +4053,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -4063,16 +4065,16 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 #, fuzzy msgid "Wheel" msgstr "Wheel" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -4080,23 +4082,23 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 #, fuzzy #| msgid "Per Project Index" msgid "Wheel Project" msgstr "Pro Projekt Index" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -4249,7 +4251,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4605,17 +4607,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4929,7 +4942,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5300,7 +5313,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6993,11 +7006,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -7033,7 +7047,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -7046,29 +7061,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -7080,65 +7095,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -7147,18 +7162,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -7167,11 +7182,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -7181,7 +7196,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -7190,11 +7205,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -7206,24 +7221,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -7231,17 +7246,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -7252,11 +7267,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -7264,14 +7279,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7899,12 +7914,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8612,17 +8621,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8630,34 +8639,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8665,42 +8674,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8709,18 +8730,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -9050,7 +9065,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9666,41 +9681,45 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 #, fuzzy msgid "Building distributions" msgstr "Distributionspaket" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9708,25 +9727,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9734,45 +9753,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9783,31 +9802,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -10008,9 +10027,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -10037,9 +10056,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -10070,7 +10089,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -10100,8 +10119,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -10153,7 +10172,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -10164,8 +10183,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -10177,8 +10196,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -10211,7 +10230,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -10285,8 +10304,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10316,90 +10335,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10408,26 +10427,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10435,28 +10454,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10464,33 +10483,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13541,86 +13560,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13629,116 +13644,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13748,51 +13692,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13800,7 +13704,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13808,18 +13712,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13828,7 +13732,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13839,7 +13743,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13857,7 +13761,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13866,7 +13770,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13878,26 +13782,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13905,24 +13809,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14680,11 +14588,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16522,17 +16430,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18547,7 +18461,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20902,95 +20816,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -21013,10 +20937,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -21067,7 +20987,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -21075,24 +20995,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -21102,140 +21022,140 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 #, fuzzy msgid "``maintainers``" msgstr "Betreuer" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -21249,7 +21169,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -21258,7 +21178,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -21270,30 +21190,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -21302,23 +21222,23 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 #, fuzzy #| msgid "Specifications" msgid "Legacy specification" msgstr "Die Spezifikationen" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -21328,26 +21248,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21356,40 +21276,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21398,11 +21318,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21432,56 +21352,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21489,38 +21409,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21528,14 +21448,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21543,7 +21463,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21551,24 +21471,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21576,7 +21496,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21587,13 +21507,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21602,7 +21522,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21617,38 +21537,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21658,7 +21578,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21666,7 +21586,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21674,21 +21594,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21696,19 +21616,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21717,20 +21637,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21738,18 +21658,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21757,7 +21677,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21765,32 +21685,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22616,7 +22536,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22655,7 +22575,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22875,14 +22795,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22916,7 +22836,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22924,45 +22844,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22970,7 +22890,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22979,23 +22899,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -23004,14 +22924,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -23021,7 +22941,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -23029,14 +22949,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -23046,45 +22966,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -23093,7 +23013,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -23103,17 +23023,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -23121,7 +23041,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -23130,11 +23050,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -23142,11 +23062,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -23209,11 +23129,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -23222,65 +23142,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -23288,7 +23208,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -23299,7 +23219,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -23308,33 +23228,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23344,7 +23264,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23354,7 +23274,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23362,7 +23282,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23373,22 +23293,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23397,25 +23317,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23423,13 +23343,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23439,18 +23359,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23458,7 +23378,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23468,7 +23388,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23476,7 +23396,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23484,7 +23404,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23493,18 +23413,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23512,13 +23432,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23527,23 +23447,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23552,79 +23472,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23902,7 +23822,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24429,11 +24349,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24441,22 +24383,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24465,11 +24407,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24479,11 +24421,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24493,11 +24435,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24505,11 +24447,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24520,11 +24462,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24532,11 +24474,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24544,11 +24486,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24558,11 +24500,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24570,11 +24512,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24582,11 +24524,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24594,11 +24536,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24607,11 +24549,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24620,11 +24562,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24634,7 +24576,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24642,69 +24584,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24712,48 +24654,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24764,7 +24706,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24774,17 +24716,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24793,14 +24735,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24811,7 +24753,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24819,30 +24761,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24850,30 +24792,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24881,60 +24823,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24943,79 +24885,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -25024,7 +24966,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -25032,7 +24974,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -25042,21 +24984,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -25064,7 +25006,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -25073,7 +25015,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -25083,14 +25025,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -25099,28 +25041,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -25129,27 +25071,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -25159,7 +25101,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -25169,13 +25111,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25395,7 +25339,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25403,7 +25347,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25414,15 +25358,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25430,7 +25374,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25438,7 +25382,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25450,43 +25394,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25495,29 +25439,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26883,7 +26835,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26922,11 +26874,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/eo/LC_MESSAGES/messages.po b/locales/eo/LC_MESSAGES/messages.po index 78a847e9c..9b592b6dd 100644 --- a/locales/eo/LC_MESSAGES/messages.po +++ b/locales/eo/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2025-06-29 12:03+0000\n" "Last-Translator: phlostically \n" "Language-Team: Esperanto `_." @@ -3558,7 +3571,7 @@ msgstr "" "Python-projektoj uzantaj semantikan versiadon observu la regulojn 1–8 de la " "`specifo Semantika Versiado 2.0.0 `_." -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -3576,11 +3589,11 @@ msgstr "" "enhavi neretrokongruajn API-ŝanĝojn (vidu la :doc:`regulojn pri versiado de " "NumPy `)." -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "Kalendara versiado" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 #, fuzzy #| msgid "" #| "Semantic versioning is not a suitable choice for all projects, such as " @@ -3596,7 +3609,7 @@ msgstr "" "projektoj, kiaj eldona plano estas regule tempobaza kun avertoj pri forigota " "funkcio dum kelkaj eldonoj antaŭ la forigado." -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " @@ -3606,7 +3619,7 @@ msgstr "" "(CalVer) estas, ke estas facile kompreni kiel malnova la baza funkciaro de " "iu eldono estas nur per la versia numero." -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." @@ -3614,7 +3627,7 @@ msgstr "" "Kalendara versia numero ordinare estas de la formo *jaro.monato* (ekzemple, " "23.12 por Decembro 2023)." -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." @@ -3622,11 +3635,11 @@ msgstr "" ":doc:`Pip `, la norma Python-pakinstalilo, uzas kalendaran " "versiadon." -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "Aliaj skemoj" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -3640,7 +3653,7 @@ msgstr "" "seria versia numero enhavas neniom aŭ apenaŭon da informo pri retrokongrueco " "de la API." -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 #, fuzzy #| msgid "" #| "Combinations of the above schemes are possible. For example, a project " @@ -3660,12 +3673,12 @@ msgstr "" "klarigas la proksimuman aĝon de la eldono, sed ne postulas eldonan planon en " "la jaro." -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "Loka versi-identigilo" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -3680,7 +3693,7 @@ msgstr "" "konstruon ne por publika eldonado, aŭ modifitan varianton de eldono far " "redistribuanto." -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -3699,11 +3712,11 @@ msgstr "" "setuptools-scm generas version kiel «0.5.dev1+gd00980f» aŭ, se la deponejo " "havas nespuratajn ŝanĝojn, kiel «0.5.dev1+gd00980f.d20231217»." -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "Akiri versiajn informojn dum rultempo" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -3714,7 +3727,7 @@ msgstr "" "loke haveblaj en la aktuala medio estas akireblaj per la " "funkcio :func:`importlib.metadata.version` en la norma biblioteko::" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" @@ -3722,7 +3735,7 @@ msgstr "" "Multaj projektoj ankaŭ provizas version al la supranivela :term:`importa " "pako ` per paknivela atributo ``__version__``::" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " @@ -3731,7 +3744,7 @@ msgstr "" "Tiu teĥniko estas speciale utila por komandlinia programo, kies versio-peto " "(kiel ekzemple ``pip -V``) devas ruliĝi rapide." -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -3742,7 +3755,7 @@ msgstr "" "importa pako estu samaj, legu la diskuton :ref:`single-source-version` por " "eblaj metodoj por fari tion." -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -3759,7 +3772,7 @@ msgstr "" "la version de unu el siaj rektaj dependaĵoj). Alie, la serĉanta kodo " "pritraktu la kazon, kiam la atributo mankas [#fallback-to-dist-version]_." -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -3773,7 +3786,7 @@ msgstr "" "de la norma biblioteko provizas plurajn manierojn por atingi la version de " "la biblioteko OpenSSL::" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." @@ -3781,7 +3794,7 @@ msgstr "" "Pliaj ekzemploj de strangaj versiaj numeroj troviĝas en `artikolo `_ de Seth Larson." -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_, `far Bernát Gábor `_, `far Brett " "Cannon `_. Por humuro, legu pri ZeroVer_." -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -4156,12 +4169,19 @@ msgid "Build Backend" msgstr "Konstrua Malfasado" #: ../source/glossary.rst:17 -msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +#, fuzzy +#| msgid "" +#| "A library that takes a source tree and builds a :term:`source " +#| "distribution ` or :term:`built " +#| "distribution ` from it. The build is delegated to the " +#| "backend by a :term:`frontend `. All backends offer a " +#| "standardized interface." +msgid "" +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" "Biblioteko prenanta fontarbon kaj konstruanta :term:`fontan distribuon " "` or :term:`konstritan distribuon `, priskribanta(j) " @@ -4645,13 +4671,22 @@ msgid "Python Packaging Authority (PyPA)" msgstr "Python-Pakada Aŭtoritato (PyPA)" #: ../source/glossary.rst:287 +#, fuzzy +#| msgid "" +#| "PyPA is a working group that maintains many of the relevant projects in " +#| "Python packaging. They maintain a site at :doc:`pypa.io `, " +#| "host projects on `GitHub `_ and `Bitbucket " +#| "`_, and discuss issues on the `distutils-sig " +#| "mailing list `_ and `the Python Discourse forum `__." msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" "PyPA estas laborgrupo mastrumanta multajn projektojn pri pakado de Python. " "Ĝia retejo estas :doc:`pypa.io `. Ĝi gastigas projektojn ĉe " @@ -4660,11 +4695,11 @@ msgstr "" "mail.python.org/mailman3/lists/distutils-sig.python.org/>`_ kaj `la forumo " "Discourse por Python `__." -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "Python-Pakindekso (PyPI)" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " @@ -4674,11 +4709,11 @@ msgstr "" "por la Python-komunumo. Ĉiu Python-programisto povas uzi ĝin por uzi kaj " "distribui siajn distribuojn." -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "pypi.org" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " @@ -4688,22 +4723,22 @@ msgstr "" "Pakindekso (PyPI) `. Ĝi anstataŭis la malnovan " "retadreson, ``pypi.python.org``, en 2017. Ĝi funkciiĝas per :ref:`warehouse`." -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "pyproject.toml" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" "La ilo-sendependa :term:`projekta ` specifa dosiero. Difinita " "en :pep:`518`." -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "Eldono" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." @@ -4711,7 +4746,7 @@ msgstr "" "Kopio de :term:`Projekto ` ĉe iu punkto en tempo, indikita de " "versia identigilo." -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -4723,11 +4758,11 @@ msgstr "" "projekto, oni povus disponigi ĝin kiel kaj fontan distribuon kaj Windows-" "instalilan dosierformon." -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "Postulo" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -4740,11 +4775,11 @@ msgstr "" "permesas diversajn formojn de «postuloj». Por pliaj detaloj, " "vidu :ref:`pip:pip install`." -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "Postulo-Specifilo" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -4757,11 +4792,11 @@ msgstr "" "estas la nomo de la projekto kaj ``>=1.3`` estas la :term:`versio-specifilo " "`" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "Postulo-Dosiero" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " @@ -4771,15 +4806,15 @@ msgstr "" "per :ref:`pip`. Por plian informoj, vidu la dokumentaron de :ref:`pip` " "pri :ref:`Postulo-Dosieroj `." -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "Radika Licenco-Dosierujo" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "Licenco-Dosierujo" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -4802,17 +4837,17 @@ msgstr "" "dosierlokoj en la :term:`Kerna Metadatena Kampo ` " "``License-File``." -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "setup.py" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "setup.cfg" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." @@ -4820,11 +4855,11 @@ msgstr "" "La projektaj specifaj dosieroj por :ref:`distutils` kaj :ref:`setuptools`. " "Vidu ankaŭ :term:`pyproject.toml`." -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "Fonta Arĥivo" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` " "aŭ :term:`Konstruita Distribuo `." -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "Fonta Distribuo (aŭ «sdist»)" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -4847,21 +4882,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "Sistema Pako" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "Pako en formo indiĝena al la mastruma sistemo, ekz. rpm aŭ dpkg." -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "Versio-Specifilo" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -4870,11 +4905,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "Virtuala Medio" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -4885,15 +4920,15 @@ msgstr "" "anstataŭ tutsistema instalado. Por pliaj informoj, vidu :ref:`Krei kaj uzi " "Virtualan Medion `." -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "Wheel-Formo" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "Wheel" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -4906,11 +4941,11 @@ msgstr "" "konfuzu ĝin kun ĝia referenca realigo, :term:`la Projekto Wheel `." -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "Wheel-Projekto" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." @@ -4918,11 +4953,11 @@ msgstr "" "La referenca realigo far PyPA de la :term:`Wheel-Formo `; " "vidu :ref:`wheel`." -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "Aro de Laboro" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -5118,7 +5153,7 @@ msgstr "Priskribo" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "Ekzemploj" @@ -5523,11 +5558,22 @@ msgstr "" "`Pandas`_." #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 +msgid "``ClickPy``" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:339 +msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 msgid "References" msgstr "Referencoj" -#: ../source/guides/analyzing-pypi-package-downloads.rst:339 +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 msgid "" "`PyPI Download Counts deprecation email `__" @@ -5535,7 +5581,7 @@ msgstr "" "`Retmesaĝo pri evitindigo de la Kalkuloj de Elŝutoj ĉe PyPI `__" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -5967,7 +6013,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" "Tamen, tiu sintakso estas praktike netaŭga: ĉar la nomo de la enirpunkto " "difinita ĉi-supre ne egalas la nomon de la pako, ni devas eksplici la " @@ -6449,7 +6495,7 @@ msgstr "" "``--old-and-unmanageable``." #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 #, fuzzy msgid "``scripts``" msgstr "``description``" @@ -8587,12 +8633,20 @@ msgid "Licensing examples and user scenarios" msgstr "Ekzemploj de licencoj kaj uzkazoj" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 -msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +#, fuzzy +#| msgid "" +#| ":pep:`639` has specified the way to declare a project's license and paths " +#| "to license files and other legally required information. This document " +#| "aims to provide clear guidance how to migrate from the legacy to the " +#| "standardized way of declaring licenses. Make sure your preferred build " +#| "backend supports :pep:`639` before trying to apply the newer guidelines." +msgid "" +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" ":pep:`639` precizigis la manieron deklari la licencon de projekto kaj " "dosierlokojn de licencodosieroj kaj aliajn leĝe postulataj informoj. Ĉi tiu " @@ -8640,7 +8694,11 @@ msgstr "" "Aŭ, se la projekto uzis :file:`setup.cfg` en sia tabelo ``[metadata]``:" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +#, fuzzy +#| msgid "" +#| "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "La eligitaj Kernaj Metdatenoj por la distribuaj pakoj estos jenaj:" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -8659,11 +8717,11 @@ msgstr "" "arĥivo, kaj ``{VERSIO}`` la versio de la eldono de Setuptools laŭ Kernaj " "Metadatenoj." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "Altnivela ekzemplo" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " @@ -8673,11 +8731,13 @@ msgstr "" "la dosierujoj :file:`setuptools/_vendor/` kaj :file:`pkg_resources/_vendor/" "`; specife:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" -msgstr "Jen la licenco-esprimoj por tiuj projektoj:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +#, fuzzy +#| msgid "Examples of invalid license expressions:" +msgid "The appropriate license expressions are:" +msgstr "Ekzemploj de nevalidaj licenco-esprimoj:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " @@ -8687,7 +8747,7 @@ msgstr "" "dependaĵoj enhavus tiujn metadatenojn, kombinante ĉiujn licenco-esprimojn. " "Tia esprimo povas esti jena:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -8699,7 +8759,7 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " @@ -8709,11 +8769,11 @@ msgstr "" "projekta fontarbo (relative al la projekta radiko " "kaj :file:`pyproject.toml`):" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "Resume, la dosiero :file:`pyproject.toml` estos jena:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" @@ -8721,18 +8781,18 @@ msgstr "" "Alternative, la licenco-dosiero povas esti specifita eksplicite (dosierloko " "interpretiĝas kiel patroneo):" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "Se nia projekto uzus :file:`setup.cfg`, ni povus difini tion en:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" "Per ambaŭ metodoj, la eligitaj Kernaj Metadatenoj en la distribuo estos " "jenaj:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " @@ -8742,7 +8802,7 @@ msgstr "" "``{VERSION}`` la versio de la eldono de Setuptools specifita en la Kernaj " "Metadatenoj, la licenco-dosieroj troviĝus ĉe:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" @@ -8751,7 +8811,7 @@ msgstr "" "``{VERSION}`` sama kiel la ĉi-supra ekzemplo, la licenco-dosieroj troviĝus " "ĉe:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " @@ -8760,19 +8820,19 @@ msgstr "" "Fine, en la instalita projekto en :file:`site-packages/`, kun ``{VERSION}`` " "sama kiel la ĉi-supra ekzemplo, la licenco-dosieroj instaliĝus al:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "Ekzemploj de esprimoj" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "Kelkaj pliaj ekzemploj de validaj valoroj de ``License-Expression``:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "Uzkazoj" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -8781,11 +8841,11 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "Mi havas ne distribuotan privatan pakon" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " @@ -8795,7 +8855,7 @@ msgstr "" "familio), *ordinare* ne necesas inkluzivi formalan licencon, tiel ke vi ne " "devas fari ion ekstre." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -8804,11 +8864,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "Mi simple volas disdoni mian verkon sen jura restrikto" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -8824,7 +8884,7 @@ msgstr "" "kaj permesas al ĉiuj fari ion ajn deziratan pri via laboro (krom procesi " "kontraŭ vi, kion vi verŝajne ankaŭ ne deziras)." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -8838,11 +8898,11 @@ msgstr "" "``license = \"MIT\"`` sub ``[project]`` en :file:`pyproject.toml` se via " "pakilo subtenas ĝin, aŭ en ĝia agorda dosiero. Jen finite!" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "Mi volas distribui mian projekton sub specifa licenco" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -8862,7 +8922,7 @@ msgstr "" "troviĝas en retejoj kiel `ChooseALicense `__ aŭ `SPDX " "`__." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." @@ -8870,11 +8930,11 @@ msgstr "" "Multaj popularaj kodgastigejoj, projekto-ŝablonoj kaj pakiloj povas aldoni " "la licenco-dosieron por vi kaj povos subteni la esprimon." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "Mi mastrumas ekzistantan pakon sub licenco" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " @@ -8883,7 +8943,17 @@ msgstr "" "Se vi jam havas licencajn dosierojn kaj metadatenojn en via projekto, vi nur " "devas fari kelkajn ŝanĝetojn por uzi la novajn funkciojn." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 +#, fuzzy +#| msgid "" +#| "In your project config file, enter your license expression under " +#| "``license`` (``[project]`` table in :file:`pyproject.toml`), or the " +#| "equivalent for your packaging tool, and make sure to remove any legacy " +#| "``license`` table subkeys or ``License ::`` classifiers. Your existing " +#| "``license`` value may already be valid as one (e.g. ``MIT``, ``Apache-2.0 " +#| "OR BSD-2-Clause``, etc); otherwise, check the `SPDX license list " +#| "`__ for the identifier that matches the license used in your " +#| "project." msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -8891,7 +8961,7 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" "En via projekta agorda dosiero, tajpu vian licenco-esprimon sub ``license`` " "(tabelo ``[project]`` en :file:`pyproject.toml`), aŭ la ekvivalentaĵon de " @@ -8901,7 +8971,7 @@ msgstr "" "ktp); alie, vidu la `liston de SPDX-licencoj `__ por la " "identigilo por la licenco de via projekto." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " @@ -8910,7 +8980,7 @@ msgstr "" "Certe listigu viajn licenco-dosierojn sub ``license-files`` sub " "``[project]`` en :file:`pyproject.toml` aŭ en la agorda dosiero de via ilo." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -8921,11 +8991,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "Mia pako inkluzivas alian kodon sub malsamaj licencoj" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -8933,14 +9003,23 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 -msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 +#, fuzzy +#| msgid "" +#| "In short, ``License-1 AND License-2`` mean that *both* licenses apply to " +#| "your project, or parts of it (for example, you included a file under " +#| "another license), and ``License-1 OR License-2`` means that *either* of " +#| "the licenses can be used, at the user's option (for example, you want to " +#| "allow users a choice of multiple licenses). You can use parenthesis " +#| "(``()``) for grouping to form expressions that cover even the most " +#| "complex situations." +msgid "" +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" "Resume, ``Licenco-1 AND Licenco-2`` signifas, ke *ambaŭ* licencoj efektivas " "pri la projekto aŭ partoj de la projekto (ekzemple, la aŭtoro inkluzivis " @@ -9727,15 +9806,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" -"Por pliaj detaloj, vidu `la dokumentaron de pkg_resources `__." - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "Paki duumajn etendaĵojn" @@ -10645,18 +10715,24 @@ msgid "Legacy namespace packages" msgstr "Malnovaj nomspacaj pakoj" #: ../source/guides/packaging-namespace-packages.rst:160 +#, fuzzy +#| msgid "" +#| "These two methods, that were used to create namespace packages prior " +#| "to :pep:`420`, are now considered to be obsolete and should not be used " +#| "unless you need compatibility with packages already using this method. " +#| "Also, :doc:`pkg_resources ` has been deprecated." msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" "Tiuj du metodoj por krei nomspacopakojn antaŭ :pep:`420`, nun estas " "malnoviĝintaj kaj evitindaj krom se oni bezonas kongruecon kun pako jam " "uzanta tiun metodon. Ankaŭ, :doc:`pkg_resources ` " "estas evitinda." -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." @@ -10664,7 +10740,7 @@ msgstr "" "Por migri ekzistantan pakon, ĉiuj pakoj en la nomspaco devas esti migritaj " "samtempe." -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -10676,16 +10752,23 @@ msgstr "" "Estas malrekomendate miksi plurajn metodojn en malsamaj distribuoj " "provizantaj pakojn en la saman nomspacon." -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "pkgutil-stilaj nomspacaj pakoj" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 +#, fuzzy +#| msgid "" +#| "Python 2.3 introduced the :doc:`pkgutil ` module " +#| "and the :py:func:`python:pkgutil.extend_path` function. This can be used " +#| "to declare namespace packages that need to be compatible with both Python " +#| "2.3+ and Python 3. This is the recommended approach for the highest level " +#| "of compatibility." msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" "Python 2.3 enkondukis la modulon :doc:`pkgutil ` kaj " @@ -10693,7 +10776,7 @@ msgstr "" "deklari nomspacopakon kongruan kun kaj Python 2.3+ kaj Python 3. Tio estas " "la rekomendata metodo por la plej alta nivelo de kongrueco." -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" @@ -10701,16 +10784,16 @@ msgstr "" "Por krei pkgutil-stilan nomspacan pakon, oni devas provizi " "dosieron :file:`__init__.py` por la nomspaca pako:" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" "La dosiero :file:`__init__.py` por la nomspaca pako devas enhavi la jenon:" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -10722,7 +10805,7 @@ msgstr "" "logiko malsukcesus, kaj aliaj subpakoj ne estus importeblaj. Ajna kroma kodo " "en :file:`__init__.py` ne estus uzebla." -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." @@ -10730,21 +10813,44 @@ msgstr "" "Plena funkcianta ekzemplo de du pkgutil-stilaj nomspacaj pakoj troviĝas en " "la `pkgutil-nomspaca ekzempla projekto `_." -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "pkg_resources-stilaj nomspacaj pakoj" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +#, fuzzy +#| msgid "" +#| ":doc:`Setuptools ` provides the " +#| "`pkg_resources.declare_namespace`_ function and the " +#| "``namespace_packages`` argument to :func:`~setuptools.setup`. Together " +#| "these can be used to declare namespace packages. While this approach is " +#| "no longer recommended, it is widely present in most existing namespace " +#| "packages. If you are creating a new distribution within an existing " +#| "namespace package that uses this method then it's recommended to continue " +#| "using this as the different methods are not cross-compatible and it's not " +#| "advisable to try to migrate an existing package." +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" ":doc:`Setuptools ` provizas la funkcion " "`pkg_resources.declare_namespace`_ kaj la argumenton ``namespace_packages`` " @@ -10755,7 +10861,7 @@ msgstr "" "diversaj metodoj ne kongruas inter si, kaj ne konsilindas provi migri " "ekzistantan pakon." -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" @@ -10763,7 +10869,7 @@ msgstr "" "Por krei pkg_resources-stilan nomspacan pakon, oni devas provizi " "dosieron :file:`__init__.py` por la nomspaca pako:" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" @@ -10771,7 +10877,7 @@ msgstr "" "Kelkaj malnovaj rekomendoj konsilas la jenon en la nomspaca " "pako :file:`__init__.py`:" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -10785,7 +10891,7 @@ msgstr "" "setuptools estas problema, do la pako simple eksplicite dependu de " "setuptools per ``install_requires``." -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" @@ -10793,15 +10899,6 @@ msgstr "" "Fine, ĉiu distribuo devas provizi la argumenton ``namespace_packages`` al " "to :func:`~setuptools.setup` en :file:`setup.py`. Ekzemple:" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" -"Plena funkcianta ekzemplo de du pkg_resources-stilaj nomspacaj pakoj " -"troviĝas en la `pkg_resources-nomspaca ekzempla projekto `_." - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -11212,8 +11309,13 @@ msgstr "" "aŭtomatan testadon por Linux, Mac kaj Windows:" #: ../source/guides/supporting-multiple-python-versions.rst:65 +#, fuzzy +#| msgid "" +#| "`Travis CI `_ provides both a Linux and a macOS " +#| "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 " +#| "bit while the macOS is 10.9.2 at the time of writing." msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -12059,7 +12161,13 @@ msgstr "" "biblioteko en Python 3.12, kvankam ĝi estas ankoraŭ disponebla per " "setuptools." -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +#, fuzzy +#| msgid "Building binary extensions" +msgid "Build backends for extension modules" +msgstr "Konstrui duumajn etendaĵojn" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " @@ -12068,7 +12176,7 @@ msgstr "" "Por pako kun :term:`etendaĵa modulo `, oni uzu " "konstrusistemon subtenantan la lingvon de la etendaĵo. Ekzemple:" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," @@ -12076,7 +12184,7 @@ msgstr "" ":ref:`setuptools` -- indiĝene subtenas C kaj C++ (kun triapartiaj kromaĵoj " "por Go kaj Rust)," -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," @@ -12084,7 +12192,7 @@ msgstr "" ":ref:`meson-python` -- C, C++, Fortrano, Rust, kaj aliaj lingvoj subtenataj " "de Meson," -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," @@ -12092,15 +12200,15 @@ msgstr "" ":ref:`scikit-build-core` -- C, C++, Fortrano, kaj aliaj lingvoj subtenataj " "de CMake," -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr ":ref:`maturin` -- Rust, per Cargo." -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "Konstrui distribuojn" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -12112,7 +12220,7 @@ msgstr "" "estas :ref:`build`. Ĝi rulas la malfasadon :ref:`deklaritan ` en :file:`pyproject.toml`." -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " @@ -12122,7 +12230,7 @@ msgstr "" "tiu tasko. Ĉia rekta alvoko de :file:`setup.py` estas :ref:`evitinda `." -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " @@ -12132,11 +12240,11 @@ msgstr "" "wheel-ojn por pluraj platformoj, uzu :ref:`cibuildwheel` kiel parton de via " "kontinua integrado por konstrui distribueblajn wheel-ojn." -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "Alŝuti al PyPI" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -12144,7 +12252,7 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" @@ -12152,30 +12260,30 @@ msgstr "" "Je la Novembro de 2024, PyPI subtenas la jenajn platformojn kiel " "provizantojn de Fidata Eldonado:" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "GitHub Actions (ĉe ``https://github.com``)" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "GitLab CI/CD (ĉe ``https://gitlab.com``)" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "ActiveState" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "Google Cloud" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" "La alia havebla metodo estas alŝuti la pakon malaŭtomate per :ref:`twine`." -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." @@ -12183,11 +12291,11 @@ msgstr "" "**Neniam** uzu ``python setup.py upload`` por tiu tasko. Ĝi " "estas :ref:`evitinda ` kaj malseksura." -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "Laborfluiloj" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -12198,31 +12306,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr ":ref:`Flit`," -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr ":ref:`Hatch`," -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr ":doc:`nox `," -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr ":ref:`PDM`," -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr ":ref:`Pipenv`," -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr ":ref:`Poetry`," -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr ":doc:`tox `." @@ -12486,9 +12594,9 @@ msgid "Basic information" msgstr "Bazaj informoj" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "``name``" @@ -12525,9 +12633,9 @@ msgstr "" "``BONAJ_AJHOJ``, ``BoNaJ__-.-__aJhOJ``." #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "``version``" @@ -12563,7 +12671,7 @@ msgid "Dependencies and requirements" msgstr "Dependecoj kaj postuloj" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "``dependencies``/``optional-dependencies``" @@ -12600,8 +12708,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "``requires-python``" @@ -12667,7 +12775,7 @@ msgid "About your project" msgstr "Pri via projekto" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "``authors``/``maintainers``" @@ -12680,8 +12788,8 @@ msgstr "" "retpoŝtaj adresoj." #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "``description``" @@ -12696,8 +12804,8 @@ msgstr "" "serĉrezultoj (`jene `_)." #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "``readme``" @@ -12733,7 +12841,9 @@ msgid "``license`` and ``license-files``" msgstr "``license`` kaj ``license-files``" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +#, fuzzy +#| msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "Laŭ :pep:`639`, oni deklaru licencon per du kampoj:" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -12814,8 +12924,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "``license``" @@ -12855,25 +12965,32 @@ msgstr "" "konfuziĝon, kaj ĉar kelkaj organizaĵoj evitas programon sen aprobita licenco." #: ../source/guides/writing-pyproject-toml.rst:353 -msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +#, fuzzy +#| msgid "" +#| "If your project is licensed with a license that doesn't have an existing " +#| "SPDX identifier, you can create a custom one in format ``LicenseRef-" +#| "[idstring]``. The custom identifiers must follow the SPDX specification, " +#| "`clause 10.1 `_ of the version 2.2 or any later " +#| "compatible one." +msgid "" +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" "Se via projekto havas licencon sen ekzistanta SPDX-identigilo, vi povas krei " "propran identigilo de la formo ``LicenseRef-[identigilo]``. La propra " "identigilo devas obei `paragrafon 10.1 `_ de la normo SPDX, " "versio 2.2 aŭ ajna pli nova kongrua versio." -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "``license-files``" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." @@ -12881,11 +12998,11 @@ msgstr "" "Tio estas listo de licenco-dosieroj kaj dosieroj enhavantaj aliajn jurajn " "informojn, kiujn vi volas distribui kun via pako." -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "La patroneo devas observi la specifon:" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." @@ -12893,17 +13010,17 @@ msgstr "" "Literoj, ciferoj, substrekoj (``_``), streketoj (``-``) kaj punktoj (``.``) " "prezentas sin laŭlitere." -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "La metasignoj ``*``, ``?``, ``**`` kaj signintervaloj [] eblas." -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "Dosierloko-apartigilo devas esti la suprenstreko (``/``)." -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." @@ -12911,15 +13028,15 @@ msgstr "" "Patroneo estas relativa al la dosierujo enhavanta :file:`pyproject.toml`, " "kaj tial ne povas komenciĝi per suprenstreko." -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "Indikilo de patra dosierujo (``..``) devas esti ne uzita." -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "Ĉiu patroneo devas kongrui kun almenaŭ unu dosiero." -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." @@ -12927,13 +13044,13 @@ msgstr "" "Eksplicita dosierloko estas valida patroneo. Ajna skribsigno aŭ signoĉeno ne " "diskutita de ĉi tiu specifo estas nevalida." -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "``keywords``" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." @@ -12941,13 +13058,13 @@ msgstr "" "Tio helpos la serĉilon de PyPI sugesti vian projekton, kiam oni serĉas tiujn " "ŝlosilvortojn." -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "``classifiers``" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." @@ -12955,7 +13072,7 @@ msgstr "" "Listo de PyPI-klasigiloj rilataj al via projekto. Jen la `plena listo de " "klasigiloj `_." -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -12964,7 +13081,7 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " @@ -12974,13 +13091,13 @@ msgstr "" "Do Not Upload``. PyPI ĉiam malakceptas pakon de klasigilo komenciĝanta per " "``Private ::``." -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "``urls``" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." @@ -12988,7 +13105,7 @@ msgstr "" "Listo de retadresoj asociitaj al via projekto, montrotaj sur la maldekstra " "flankpanelo de via projekta paĝo ĉe PyPI." -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -13000,7 +13117,7 @@ msgstr "" "`_ por PyPI-specifa " "pritraktado de retadresoj." -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" @@ -13010,7 +13127,7 @@ msgstr "" "``Website = \"https://example.com\"`` sed ``\"Official Website\" = \"https://" "example.com\"``." -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " @@ -13020,7 +13137,7 @@ msgstr "" "retadresoj taŭge, ĉar iloj pri metadatenoj (kiel pakindeksoj) povas pli bone " "montri tiujn." -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " @@ -13029,7 +13146,7 @@ msgstr "" "Ekzemple, en la jenaj metadatenoj, ne ``MyHomepage`` nek ``\"Download " "Link\"`` estas bone konata etikedo kaj tial montriĝos laŭvorte:" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -13041,11 +13158,11 @@ msgstr "" "prezenteblaj tiel (kiel la ĉefpaĝo kaj la elŝutejo de la projekto " "respektive)." -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "Altnivelaj kromprogramoj" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " @@ -13055,17 +13172,17 @@ msgstr "" "Pygments_. Por krei tian kromprogramon, oni devas deklari ĝin en subtabelo " "de ``[project.entry-points]`` jene:" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" "Vidu la :ref:`Gvidilon pri kromprogramoj ` por pliaj " "informoj." -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "Plena ekzemplo" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " @@ -13074,7 +13191,7 @@ msgstr "" "Estu singarda pri supraj limoj kiel ``requires-python = \"<= 3.10\"`` ĉi " "tie. `Jen artikolo `_ pri eblaj problemoj." -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -16896,12 +17013,19 @@ msgid "WHEEL is the wheel metadata specific to a build of the package." msgstr "WHEEL estas la wheel-metadatenoj specifaj al iu konstruo de la pako." #: ../source/specifications/binary-distribution-format.rst:239 +#, fuzzy +#| msgid "" +#| "RECORD is a list of (almost) all the files in the wheel and their secure " +#| "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " +#| "hash of itself, must include its hash. The hash algorithm must be sha256 " +#| "or better; specifically, md5 and sha1 are not permitted, as signed wheel " +#| "files rely on the strong hashes in RECORD to validate the integrity of " +#| "the archive." msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" "RECORD estas listo de (preskaŭ) ĉiuj dosieroj en la wheel kaj iliaj sekuraj " "haketaĵoj. Male al PEP 376, ĉiu dosiero krom RECORD, kiu ne povas enhavi " @@ -16910,91 +17034,90 @@ msgstr "" "ĉar subskribita wheel-dosiero dependas de la fortikaj haketaĵoj en RECORD " "por la integrecon de la arĥivo." -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" "La INSTALLER kaj REQUESTED de PEP 376 ne estas inkluzivitaj en la arĥivo." -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" -"RECORD.jws estas uzataj por ciferecaj subskriboj. Ĝi ne estas menciita en " -"RECORD." - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -"RECORD.p7s estas permesata por tiuj, kiuj preferas uzi S/MIME-subskribon por " -"sekurigi wheel-dosieron. Ĝi ne menciiĝas en RECORD." -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 +#, fuzzy +#| msgid "" +#| "During extraction, wheel installers verify all the hashes in RECORD " +#| "against the file contents. Apart from RECORD and its signatures, " +#| "installation will fail if any file in the archive is not both mentioned " +#| "and correctly hashed in RECORD." msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" "Dum maldensigado, instalilo de wheel kontrolas ĉiujn haketaĵojn en " "``RECORD`` kaj la dosierajn enhavojn. Krom ``RECORD`` kaj subskriboj, " "instalado malsukcesos, se ajna dosiero en la arĥivo ne estas menciita en " "``RECORD`` aŭ ne kongruas kun sia haketaĵo." -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "Subdosierujoj en :file:`.dist-info/`" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "Nomo de subdosierujo" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "PEP / Normo" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "``licenses``" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr ":pep:`639`" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "``license_files``" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "``LICENSES``" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "``sboms``" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr ":pep:`770`" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "La dosierujo :file:`.dist-info/licenses/`" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -17008,22 +17131,22 @@ msgstr "" "kampoj ``License-File`` en la dosiero :file:`METADATA` ĉe la respektivaj " "dosierlokoj relativaj al la dosierujo :file:`licenses/`." -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "La dosierujo :file:`.dist-info/sboms/`" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "La dosierujo .data" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " @@ -17033,7 +17156,7 @@ msgstr "" "dosierujon .data, nomitan kiel la dosierujon .dist-info sed kun la " "sufikso .data/::" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " @@ -17043,110 +17166,16 @@ msgstr "" "dokumentoj ktp de la distribuo. Dum instalado, la enhavoj de tiuj " "dosierujoj kopiiĝas al siaj celaj dosierlokoj." -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "Subskribitaj wheel-dosieroj" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" -"Wheel-dosiero inkluzivas etenditan ``RECORD`` por ciferecaj subskriboj. La " -"``RECORD`` de PEP 376 estas modifita por inkluzivi sekuran haketaĵon " -"``digestname=urlsafe_b64encode_nopad(digest)`` (URL-sekura base64-kodado sen " -"finaj signoj ``=``) kiel la duan kolumnon anstataŭ md5sum. Ĉiaj eblaj eroj " -"havu haketaĵojn, inkluzive de generitaj dosieroj kiel ``.pyc``-dosieroj, " -"krom ``RECORD`` mem, kiu ne povas enhavi sian propran haketaĵon. Ekzemple::" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" -"La subskribo-dosiero(j) RECORD.jws kaj RECORD.p7s ne menciiĝas en RECORD, " -"ĉar ili estas nur aldoneblaj post la generado de RECORD. Ĉiu alia dosiero en " -"la arĥivo devas havi ĝustan haketaĵon en RECORD; se ne, la instalado " -"malsukcesos." - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" -"Se oni uzas JSON-retsubskriboj (JWS), unu aŭ pluraj subskriboj uzantaj JSON-" -"seriigon de JSON-retsubskribo (JWS-JS) konserviĝas en dosiero ``RECORD.jws`` " -"apud ``RECORD``. Oni uzas JWS por subskribi ``RECORD`` inkluzivante la " -"haketaĵon SHA-256 de ``RECORD`` kiel la JSON-ŝarĝon de la subskribo:" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "(La haketaĵa valoro estas la sama formo uzata en RECORD.)" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" -"Se RECORD.p7s estas uzata, ĝi devas enhavi malligitan S/MIME-forman " -"subskribon de RECORD." - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" -"Instalilo de wheel ne devas kompreni ciferecan subskribon sed DEVAS kompari " -"la haketaĵojn en ``RECORD`` al la enhavoj de la maldensigitaj dosieroj. Kiam " -"instalilo komparas la dosierajn haketaĵojn kaj ``RECORD``, aparta subskribo-" -"kontrolilo devas nur kontroli, ĉu ``RECORD`` kongruas kun la subskribo." - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "Vidu" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "https://datatracker.ietf.org/doc/html/rfc7515" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "https://datatracker.ietf.org/doc/html/rfc7517" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "Oftaj demandoj" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "Wheel difinas dosierujon .data. Ĉu mi metu ĉiom da miaj datenoj tien?" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -17161,62 +17190,11 @@ msgstr "" "``pkgutil.get_data(pako, risurso)``, eĉ se *tiuj* dosieroj ordinare ne " "distribuiĝas en la dosierujo ``.data`` de wheel." -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "Kial wheel inkluzivas alkroĉitajn subskribojn?" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" -"Alkroĉita subskribo estas pli oportuna ol nealkroĉita subskribo, ĉar ĝi " -"moviĝas kune kun la arĥivo. Ĉar nur la individuaj dosieroj estas " -"subskribitaj, la arĥivo estas redensigebla sen eksvalidigi la subskribon, " -"kaj individuaj dosieroj estas kontroleblaj sen reelŝutado de la tuta arĥivo." - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "Kial wheel permesas JWS-subskribojn?" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" -"La normoj JOSE, de kiuj JWS estas parto, estas laŭfasone facile realigebla; " -"tio estas ankaŭ unu el la fasonaj ĉefceloj de wheel. JWS ebligas utilan, " -"mallongan pure Python-an realigon." - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "Kial wheel ankaŭ permesas S/MIME-subskribojn?" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" -"S/MIME-subskribo estas permesata por tiuj uzantoj, kiuj devas aŭ volas uzi " -"ekzistantan publikŝlosilan infrastrukturon kun wheel." - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" -"Subskribita pako estas nur baza briko de sekura pako-ĝisdatiga sistemo. " -"Wheel nur provizas la bazan brikon." - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "Kio temas pri «purelib» kontraste kun «platlib»?" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -17228,7 +17206,7 @@ msgstr "" "lib/pythonX.Y/site-packages» kaj platformo-dependajn pakojn al «/usr/lib64/" "pythonX.Y/site-packages»." -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -17240,7 +17218,7 @@ msgstr "" "Purelib: true``» kun la samaj dosieroj en la radiko. Estas valide havi " "dosierojn en kaj «purelib» kaj «platlib»." -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " @@ -17250,11 +17228,11 @@ msgstr "" "estas pure Python-a aŭ ne, kaj tiaj dosieroj estu ĉe la radiko kun taŭgaj " "agordoj pri ``Root-is-purelib``." -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "Ĉu eblas importi Python-kodon rekte el wheel-dosiero?" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -17263,7 +17241,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -17280,7 +17258,7 @@ msgstr "" "por reviziado kaj sekurigo, aŭ plena integrado kun la norma konstrumeĥanismo " "de C-etendaĵo per ĉapdosieroj en konvena loko)." -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -17310,7 +17288,7 @@ msgstr "" "ĝuste uzas la abstraktajn rimedajn API-ojn interne, interagado kun eksteraj " "komponantoj povas postuli realan surdiskan dosieron." -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -17319,7 +17297,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -17331,20 +17309,20 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "Historio" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "Februaro 2013: Ĉi tiu specifo estis aprobita per :pep:`427`." -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." @@ -17352,7 +17330,7 @@ msgstr "" "Februaro 2021: La reguloj pri kodŝanĝado en wheel-dosiernomoj estis " "reviziitaj konforme al la fakta konduto de popularaj iloj." -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -17364,7 +17342,7 @@ msgstr "" "simbola ligilo aŭ subdosierujo en tiu dosierujo; tial kondutoj povas " "diferenci inter iloj)." -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " @@ -17373,7 +17351,7 @@ msgstr "" "Decembro 2024: La dosierujo :file:`.dist-info/licenses/` estis specifita " "per :pep:`639`." -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." @@ -17381,11 +17359,15 @@ msgstr "" "Januaro 2025: Klarigis, ke nomo kaj versio devas esti normigitaj por la " "dosierujoj ``.dist-info`` kaj ``.data``." -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "Apendico" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "Ekzempla realigo de urlsafe-base64-nopad::" @@ -18217,11 +18199,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -20462,7 +20444,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" @@ -20470,12 +20458,12 @@ msgstr "" "pip, la rekomendata instalilo por Python-pakoj (http://pip.readthedocs.org/" "en/stable/)" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" "La sintaksanaliza biblioteko parsley. (https://pypi.python.org/pypi/parsley/)" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -23071,7 +23059,7 @@ msgid "" msgstr "Jen ekzemplo de kiel legi fluon da arbitraj metadatenaj blokoj." #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "Rekomendoj" @@ -25751,10 +25739,22 @@ msgstr "" "aŭ :ref:`flit`." #: ../source/specifications/pypirc.rst:13 +#, fuzzy +#| msgid "The :file:`.pypirc` file" +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "La dosiero :file:`.pypirc`" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "Jen la formo (origine difinita de la pako :ref:`distutils`):" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." @@ -25762,23 +25762,23 @@ msgstr "" "La sekcio ``distutils`` difinas kampon ``index-servers`` listigantan la " "nomojn de ĉiuj sekcioj priskribantaj deponejojn." -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "Ĉiu sekcio priskribanta deponejon difinas tri kampojn:" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "``repository``: La retadreso de la deponejo." -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "``username``: La registrita salutnomo ĉe la deponejo." -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "``password``: La pasvorto por aŭtentikigi la salutnomon." -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " @@ -25788,7 +25788,7 @@ msgstr "" "sekureco, konsideru alternativojn kiel `keyring`_, agordadon de " "mediovariabloj, aŭ komandlinian disponigadon de la pasvorto." -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" @@ -25796,11 +25796,11 @@ msgstr "" "Alie, agordu la permesojn pri :file:`'.pypirc` tiel, kiel nur vi rajtas vidi " "aŭ modifi ĝin. Ekzemple, sur Linux aŭ macOS, rulu la jenon:" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "Oftaj agordoj" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " @@ -25810,7 +25810,7 @@ msgstr "" "ankaŭ uzas :file:`.pypirc`, sed kun aliaj implicitaĵoj. Bonvolu legi la " "dokumentaron de la projekto por pliaj detaloj kaj helpoj pri uzado." -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" @@ -25818,7 +25818,7 @@ msgstr "" "La apriora agordo de Twine imitas :file:`.pypirc` kun deponejaj sekcioj por " "PyPI kaj Prova PyPI:" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." @@ -25826,11 +25826,11 @@ msgstr "" "Twine aldonos al la aprioraj agordoj suplementajn agordojn " "el :file:`$HOME/.pypirc`, la komanda linio kaj mediaj variabloj." -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "Uzi PyPI-ĵetonon" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" @@ -25838,7 +25838,7 @@ msgstr "" "Por agordi vian `API-ĵetonon ` por PyPI, vi povas krei " "dosieron :file:`$HOME/.pypirc` similan al la jeno:" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." @@ -25846,11 +25846,11 @@ msgstr "" "Por :ref:`Prova PyPI `, aldonu sekcion ``[testpypi]`` " "uzante la API-ĵetonon por via konto ĉe Prova PyPI." -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "Uzi alian pakindekson" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " @@ -25860,7 +25860,7 @@ msgstr "" "inkluzivante la nomon de la deponejo. Jen plena ekzemplo " "de :file:`$HOME/.pypirc` por PyPI, Prova PyPI, kaj privata deponejo:" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -25889,10 +25889,6 @@ msgstr "" "rilataj iloj (kaj aliaj iloj)." #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "Ĉi tiu specifo estis originale difinta en :pep:`518` kaj :pep:`621`." - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `. Aliaj tabeloj estas rezervataj por " "la estonteco (ilo-specifa agordo estu en la tabelo ``[tool]`` )." -#: ../source/specifications/pyproject-toml.rst:29 +#: ../source/specifications/pyproject-toml.rst:27 msgid "Declaring build system dependencies: the ``[build-system]`` table" msgstr "Deklari konstrusistemaj dependecoj: la tabelo ``[build-system]``" -#: ../source/specifications/pyproject-toml.rst:31 +#: ../source/specifications/pyproject-toml.rst:29 msgid "" "The ``[build-system]`` table declares any Python level dependencies that " "must be installed in order to run the project's build system successfully." @@ -25918,7 +25914,7 @@ msgstr "" "La tabelo ``[build-system]`` deklaras iujn ajn Python-nivelajn dependecojn " "instalendajn por sukcese ruli la projektan konstrusistemon." -#: ../source/specifications/pyproject-toml.rst:37 +#: ../source/specifications/pyproject-toml.rst:35 msgid "" "The ``[build-system]`` table is used to store build-related data. Initially, " "only one key of the table is valid and is mandatory for the table: " @@ -25927,7 +25923,7 @@ msgid "" "follow the :ref:`version specifier specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" @@ -25935,7 +25931,7 @@ msgstr "" "Jen ekzempla tabelo ``[build-system]`` por projekto konstruita per " "``setuptools``:" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." @@ -25943,7 +25939,7 @@ msgstr "" "Konstruilo uzu la ĉi-supran ekzemplan agordan dosieron kiel la implicitan " "semantikon, se mankas dosiero ``pyproject.toml``." -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -25960,7 +25956,7 @@ msgstr "" "valorojn specifitajn ĉi-supre. Se la tabelo estas specifita sed postulitaj " "kampoj mankas, do ilo konsideru tion kiel eraron." -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -25968,7 +25964,7 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " @@ -25978,11 +25974,11 @@ msgstr "" "sole por klarigado, la jena `JSON-Skemo `_ kongruus " "kun la datena formo:" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "Deklari projektajn metadatenojn: la tabelo ``[project]``" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." @@ -25990,7 +25986,7 @@ msgstr "" "La tabelo ``[project]`` specifas la :ref:`kernajn metadatenojn ` de la projekto." -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -26007,7 +26003,7 @@ msgstr "" "``dynamic`` (difinita poste en ĉi tiu normo) kaj prezentas metadateno " "provizotan de ilo." -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." @@ -26015,17 +26011,17 @@ msgstr "" "La manko de tabelo ``[project]`` implicas, ke la :term:`konstrua malfasado " "` dinamike provizos ĉiujn ŝlosilojn." -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "Jen tiuj ŝlosiloj, kiuj devas esti statike difinitaj:" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "Jen la devigaj ŝlosiloj specifeblaj *aŭ* statike *aŭ* dinamike:" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." @@ -26033,60 +26029,60 @@ msgstr "" "Ĉiuj aliaj ŝlosiloj estas nedevigaj kaj povas esti specifitaj statike, " "specifitaj dinamike, aŭ nespecifitaj." -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "Jen la plena listo de ŝlosiloj permesataj en la tabelo ``[project]``:" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "``authors``" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "``dependencies``" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "``dynamic``" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "``entry-points``" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "``gui-scripts``" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 #, fuzzy #| msgid "``name``" msgid "``import-names``" msgstr "``name``" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "``maintainers``" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "``optional-dependencies``" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "Tipo de TOML_: signoĉeno" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" @@ -26094,11 +26090,11 @@ msgstr "" "Respondanta :ref:`kerna metadatena ` kampo: :ref:`Name `" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "La nomo de la projekto." -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." @@ -26106,7 +26102,7 @@ msgstr "" "Ilo :ref:`NORMIGU ` ĉi tiun nomon tuj post legado por " "interna kohereco." -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" @@ -26114,7 +26110,7 @@ msgstr "" "Respondanta :ref:`kerna metadatena ` kampo: :ref:`Version " "`" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." @@ -26122,11 +26118,11 @@ msgstr "" "La versio de la projekto laŭ :ref:`la specifo pri versispecifiloj `." -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "Uzantoj *PREFERU* specifi jam normigitajn versiojn." -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" @@ -26134,7 +26130,7 @@ msgstr "" "Respondanta :ref:`kerna metadatena ` kampo: :ref:`Summary " "`" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." @@ -26142,11 +26138,11 @@ msgstr "" "La resuma priskribo pri la projekto en unu linio. Ilo POVAS sciigi eraron, " "se ĝi inkluzivas plurajn liniojn." -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "Tipo de TOML_: signoĉeno aŭ tabelo" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type ` kaj :ref:`Description-Content-Type `" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "La plena priskribo de la projekto (t.e. la README)." -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -26184,7 +26180,7 @@ msgstr "" "``dynamic``. Por ĉia nerekonebla sufikso, kiam enhavtipo ne estas " "disponigita, ilo DEVAS sciigi pri eraro." -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -26193,7 +26189,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -26212,7 +26208,7 @@ msgstr "" "enhavtipo subtenata de la :ref:`kernaj metadatenoj `. Alikaze " "ilo DEVAS sciigi pri eraro por nesubtenataj enhavtipoj." -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" @@ -26220,11 +26216,11 @@ msgstr "" "Respondanta :ref:`kerna metadatena ` kampo: :ref:`Requires-" "Python `" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "La postuloj de la projekto pri versioj de Python." -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" @@ -26232,7 +26228,7 @@ msgstr "" "Respondanta :ref:`kerna metadatena ` kampo: :ref:`License-" "Expression `" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " @@ -26242,7 +26238,7 @@ msgstr "" "laŭ :doc:`/specifications/license-expression`. Ilo KONTROLU la validecon de " "la esprimo kaj NORMIGU la usklecon." -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -26251,15 +26247,15 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "Malnova normo" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "Tipo de TOML_: tabelo" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" @@ -26267,7 +26263,7 @@ msgstr "" "Respondanta :ref:`kerna metadatena ` kampo: :ref:`License " "`" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -26284,22 +26280,22 @@ msgstr "" "ŝlosiloj estas disaŭaj: ilo DEVAS sciigi pri eraro, se la metadatenoj " "enhavas ambaŭ ŝlosilojn." -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" "La tabelajn subŝlosilojn malrekomendis :pep:`639`, rekomendante anstaŭe la " "signoĉenan valoron." -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "Tipo de TOML_: listo de signoĉenoj" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" @@ -26307,7 +26303,7 @@ msgstr "" "Respondanta :ref:`kerna metadatena ` kampo: :ref:`License-" "File `" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -26316,7 +26312,7 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." @@ -26324,13 +26320,13 @@ msgstr "" "La signoĉeno DEVAS enhavi validan patroneon laŭ la normo :doc:`/" "specifications/glob-patterns`." -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" "Patroneo estas relativa al la dosierujo enhavanta :file:`pyproject.toml`," -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." @@ -26338,11 +26334,11 @@ msgstr "" "Ilo DEVAS supozi, ke la enhavo de licenco-dosiero estas valida UTF-8-kodita " "teksto, kaj KONTROLU la validecon kaj SCIIGU eraron, se ĝi ne validas." -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "Konstruiloj:" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." @@ -26350,7 +26346,7 @@ msgstr "" "DEVAS inkluzivi ĉiujn dosierojn kongruajn al enlistigita patroneo en ĉiuj " "distribuaj arĥivoj." -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." @@ -26358,7 +26354,7 @@ msgstr "" "DEVAS enlistigi ĉiun kongruan dosierlokon sub kampo ``License-File`` en la " "Kernaj Metadatenoj." -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -26373,11 +26369,11 @@ msgstr "" "ne inkluzivi ajanan dosieron, aŭ uzi sian propran logikon por trovi la " "taŭgajn dosierojn en la distribuo." -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "Tipo de TOML_: Listo de tabeloj de signoĉenaj ŝlosiloj kaj valoroj" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `, :ref:`Maintainer `, kaj :ref:`Maintainer-" "email `" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " @@ -26399,7 +26395,7 @@ msgstr "" "signifo dependas de interpretad – ĝi povas listigi la originalajn aŭ ĉefajn " "verkintojn, aktualajn mastrumantojn, aŭ posedantojn de la pako." -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." @@ -26407,7 +26403,7 @@ msgstr "" "La ŝlosilo ``maintainers`` similas al ``authors``: ĝia preciza signifo " "dependas de interpretado." -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -26422,13 +26418,13 @@ msgstr "" "esti valida retpoŝta adreso. Ambaŭ ŝlosiloj estas ellaseblaj, sed la tabelo " "devas enhavi almenaŭ unu el la duo." -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" "La datenoj respondas al :ref:`kernaj metadatenoj ` jene:" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." @@ -26436,7 +26432,7 @@ msgstr "" "Se nur ``name`` estas provizita, la valoro respondas al :ref:`Author ` aŭ :ref:`Maintainer ` depende." -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` aŭ :ref:`Maintainer-email ` depende." -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` depende, en la formo ``{name} " "<{email}>``." -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "Oni apartigu plurajn valorojn per komoj." -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" @@ -26469,11 +26465,11 @@ msgstr "" "Respondas al la :ref:`kerna metadatena ` " "kampo: :ref:`Keywords `" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "La ŝlosilvortoj pri la projekto." -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" @@ -26481,11 +26477,11 @@ msgstr "" "Respondas al la :ref:`kerna metadatena ` " "kampo: :ref:`Classifier `" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "Klasigiloj Trove rilataj al la projekto." -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -26497,11 +26493,11 @@ msgstr "" "valoro ``license`` (por la metadatena kampo ``License-Expression``) kaj " "klasigilo ``License ::`` estas uzataj." -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "Tipo de TOML_: tabelo kun ŝlosiloj kaj valoroj signoĉenaj" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" @@ -26509,7 +26505,7 @@ msgstr "" "Respondanta :ref:`kerna metadatena ` kampo: :ref:`Project-URL " "`" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" @@ -26519,11 +26515,11 @@ msgstr "" "valoro estas la retadreso mem. Vidu :ref:`well-known-project-urls` por " "reguloj pri normigado kaj prezentado de bone konataj metadatenoj." -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "Enirpunktoj" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" @@ -26531,11 +26527,11 @@ msgstr "" "Tipo de TOML_: tabelo (``[project.scripts]``, ``[project.gui-scripts]``, kaj " "``[project.entry-points]``)" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr ":ref:`Specifo pri enirpunktoj `" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -26547,7 +26543,7 @@ msgstr "" "`. La ŝlosilo de la tabelo estas la nomo de la enirpunkto; la " "valoro estas la referenco al objekto." -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " @@ -26557,7 +26553,7 @@ msgstr "" "en :ref:`la specifo pri enirpunktoj `. Ĝia formo estas sama " "kiel ``[project.scripts]``." -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -26570,7 +26566,7 @@ msgstr "" "subsubtabelojn; la profundo de ingado de la enirpunktogrupoj estu nur unu " "nivelo." -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -26582,7 +26578,7 @@ msgstr "" "points.gui_scripts]``, ĉar tiuj estus ambiguaj pro ``[project.scripts]`` kaj " "``[project.gui-scripts]``, respektive." -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" @@ -26591,7 +26587,7 @@ msgstr "" "tabelo de valoroj de listoj de signoĉenoj laŭ :pep:`508` (``optional-" "dependencies``)" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra ` kaj :ref:`Provides-Extra `" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "La (nedevigaj) dependecoj de la projektoj." -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -26617,7 +26613,7 @@ msgstr "" "valida laŭ :pep:`508`. Ĉiu signoĉeno rekte respondas al ero :ref:`Requires-" "Dist `." -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -26628,7 +26624,7 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 #, fuzzy #| msgid "" #| "Corresponding :ref:`core metadata ` field: :ref:`Name " @@ -26640,7 +26636,7 @@ msgstr "" "Respondanta :ref:`kerna metadatena ` kampo: :ref:`Name `" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -26649,7 +26645,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -26664,33 +26660,33 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 #, fuzzy msgid "Examples:" msgstr "Ekzemploj" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 #, fuzzy #| msgid "" #| "Corresponding :ref:`core metadata ` field: :ref:`Name " @@ -26702,7 +26698,7 @@ msgstr "" "Respondanta :ref:`kerna metadatena ` kampo: :ref:`Name `" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -26712,7 +26708,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -26720,7 +26716,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -26728,17 +26724,17 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 #, fuzzy #| msgid "Example::" msgid "Example:" msgstr "Ekzemple::" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "Tipo de TOML_: listo de signoĉenoj" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" @@ -26746,7 +26742,7 @@ msgstr "" "Respondanta :ref:`kerna metadatena ` kampo: :ref:`Dynamic " "`" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -26758,7 +26754,7 @@ msgstr "" "intence nespecifitajn metadatenojn ne provizotajn far ilo, de metadatenoj " "poste provizotaj far ilo." -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." @@ -26766,7 +26762,7 @@ msgstr "" "Konstrua malfasado DEVAS observi statike specifitan metadatenon (de ŝlosilo " "ne en ``dynamic``)." -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." @@ -26774,7 +26770,7 @@ msgstr "" "Konstrua malfasado DEVAS sciigi pri eraro, se la metadatenoj specifas " "``name`` en ``dynamic``." -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -26783,7 +26779,7 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " @@ -26793,7 +26789,7 @@ msgstr "" "kiel «Nedeviga», do la metadateno POVAS meti ĝin en ``dynamic``, se oni " "atendas, ke konstrua malfasado poste provizos la datenon pri la ŝlosilo." -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." @@ -26801,7 +26797,7 @@ msgstr "" "Konstrua malfasado DEVAS sciigi pri eraro, se la metadatenoj specifas unu " "ŝlosilon kaj statike kaj en ``dynamic``." -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -26813,7 +26809,7 @@ msgstr "" "ununura maniero por permesi al ilo plenigi metadatenojn, kaj la uzanto devas " "eksplici la aŭtomatan plenigadon)." -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " @@ -26823,11 +26819,11 @@ msgstr "" "en ``dynamic`` sed la konstrua malfasado ne povis determini ĝian datenon " "(estas akcepteble, se la ilo determinas, ke la dateno manku)." -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "Ĉiaj ilaj agordoj: la tabelo ``[tool]``" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -26839,7 +26835,7 @@ msgstr "" "`_ konservus siajn agordojn en " "``[tool.flit]``." -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -26847,7 +26843,7 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " @@ -26857,7 +26853,7 @@ msgstr "" "``[build-system]`` enhavanta ŝlosilon ``requires`` kaj tabelon ``[tool]``, " "estis aprobita per :pep:`518`." -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." @@ -26865,7 +26861,7 @@ msgstr "" "Novembro 2020: La specifo de la tabelo ``[project]`` estis aprobita " "per :pep:`621`." -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." @@ -26874,13 +26870,13 @@ msgstr "" "files`` estis aldonita, kaj la klasigiloj ``License::`` estis evitindigitaj " "per :pep:`639`." -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -27989,7 +27985,7 @@ msgstr "" "**POVAS** montri tiun tekston al uzanto." #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -28036,7 +28032,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -28318,7 +28314,7 @@ msgstr "" "``nomo``, kies valoro estas signoĉeno de la projekta nomo." #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." @@ -28327,7 +28323,7 @@ msgstr "" "`__." #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "Ekzemple:" @@ -28369,8 +28365,11 @@ msgstr "" "«Ridinda_Piediro» havus la retadreson ``/ridinda-piediro/``." #: ../source/specifications/simple-repository-api.rst:480 +#, fuzzy +#| msgid "" +#| "This URL must respond with a JSON encoded dictionary that has four keys:" msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" "Tiu URL devas respondi per JSON-kodita vortaro enhavanta kvar ŝlosilojn:" @@ -28379,42 +28378,44 @@ msgid "``name``: The normalized name of the project." msgstr "``name``: La normigita nomo de la projekto." #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." -msgstr "``files``: Listo de vortaroj, po unu por individua dosiero." - -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 +#: ../source/specifications/simple-repository-api.rst:494 #, fuzzy #| msgid "The ``versions`` key was added with API version 1.1." -msgid "The ``project-status`` key was added with API version 1.4." +msgid "The ``status`` key was added with API version 1.4." msgstr "La ŝlosilo ``versions`` estis aldonita por versio 1.1 de la API." -#: ../source/specifications/simple-repository-api.rst:500 +#: ../source/specifications/simple-repository-api.rst:496 msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" +#: ../source/specifications/simple-repository-api.rst:501 +#, fuzzy +#| msgid "The ``versions`` key was added with API version 1.1." +msgid "The ``reason`` key was added with API version 1.4." +msgstr "La ŝlosilo ``versions`` estis aldonita por versio 1.1 de la API." + #: ../source/specifications/simple-repository-api.rst:505 #, fuzzy #| msgid "The ``versions`` key was added with API version 1.1." -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "La ŝlosilo ``versions`` estis aldonita por versio 1.1 de la API." #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "``files``: Listo de vortaroj, po unu por individua dosiero." + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " @@ -28424,7 +28425,7 @@ msgstr "" "versiojn alŝutitajn de la projekto. La valoro de ``versions`` estas logika " "aro; tial, ĝi ne povas enhavi duoblaĵon, kaj la ordo de la versioj ne gravas." -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -28436,7 +28437,7 @@ msgstr "" "version sen asociita dosiero (por versio sen âlsutita dosiero, se la servilo " "subtenas tiaĵon)." -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -28445,23 +28446,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "La ŝlosilo ``versions`` estis aldonita por versio 1.1 de la API." -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "Ĉiu individua dosiera vortaro havas la jenajn ŝlosilojn:" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "``filename``: La dosiernomo prezentata." -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "``url``: Retadreso, ĉe kiu oni povas elŝuti la dosieron." -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -28470,7 +28471,7 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " @@ -28480,7 +28481,7 @@ msgstr "" "dosiero. Tamen, estas **REKOMENDEGATE** inkluzivi almenaŭ unu sekuran, " "garantie haveblan haketaĵon." -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -28490,7 +28491,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -28501,7 +28502,7 @@ msgstr "" "metadata-requires-python`. Se ĝi ekzistas, instalilo **IGNORU** la elŝuton " "dum instalado al Python-versio ne plenumanta la postulon." -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " @@ -28511,7 +28512,7 @@ msgstr "" "`, la ŝlosilo ``requires-python`` ne postulas " "specialan kodŝanĝadon alian ol la implicitan kodŝanĝon de JSON." -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -28527,7 +28528,7 @@ msgstr "" "(indikanta, ĉu asociita metadatena dosiero ekzistas) aŭ vortaro, kiu asocias " "nomojn de haketaĵoj al deksesume koditaj haketaĵoj de la metadatenoj." -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " @@ -28536,7 +28537,7 @@ msgstr "" "Se ĉi tiu estas vortaro da haketaĵoj kaj ne bulea valoro, do la postuloj kaj " "rekomendoj por la ŝlosilo ``hashes`` ankaŭ validas por ĉi tiu ŝlosilo." -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " @@ -28546,7 +28547,7 @@ msgstr "" "ŝlosila valoro estas vereca, la metadateno-dosiero ekzistas; se la ŝlosila " "valoro estas malvereca, la metadateno-dosiero mankas." -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." @@ -28554,14 +28555,14 @@ msgstr "" "Estas rekomendate, ke serviloj disponigu la haketaĵojn de la metadateno-" "dosiero, se tio eblas." -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" "``dist-info-metadata``: **Nedeviga**, evitinda sinonimo de ``core-metadata``." -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." @@ -28569,7 +28570,7 @@ msgstr "" "Indekso-kliento **POVAS** uzi tiun ŝlosilon, se ĝi ekzistas, kiel evitindan " "sinonimon de ``core-metadata``." -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." @@ -28577,7 +28578,7 @@ msgstr "" "``dist-info-metadata`` estis normigita per :pep:`658`, kaj ĝia nomo ŝanĝiĝis " "al ``core-metadata`` per :pep:`714`." -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -28586,7 +28587,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -28596,7 +28597,7 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." @@ -28604,11 +28605,11 @@ msgstr "" "``size``: Ŝlosilo, kiu **DEVAS** ekzisti kaj **DEVAS** enhavi entjeron, kiu " "estas la grando de la dosiero en bajtoj." -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "La ŝlosilo ``size`` estis aldonita por versio 1.1 de la API." -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -28620,7 +28621,7 @@ msgstr "" "ttThh:mm:ss.ffffffZ``, kiu prezentas la tempon, kiam la dosiero estis " "alŝutita al la indekso." -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -28634,11 +28635,11 @@ msgstr "" "servilo ne registras alŝutan tempon de dosiero, ĝi **POVAS** preterlasi la " "ŝlosilon ``upload-time``." -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "La ŝlosilo ``upload-time`` estis aldonita por versio 1.1 de la API." -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -28651,11 +28652,11 @@ msgstr "" "kiel ``data-provenance`` en la :ref:`normo pri la baza HTML API `." -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "La kampo ``provenance`` estis aldonita por versio 1.3 de la API." -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -28730,11 +28731,11 @@ msgstr "" "``text/html``, ĉi tiu normo difinas ``text/html`` kiel sinonimon de la " "enhavtipo ``application/vnd.pypi.simple.v1+html`` ." -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "Elektado de Versio kaj Dosierformo" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -28743,7 +28744,7 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" @@ -28761,7 +28762,7 @@ msgstr "" "Dum ĉi tiu specifo ne plene priskribas servilan enhavo-marĉandadon, la fluo " "estas proksimume jena:" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." @@ -28769,7 +28770,7 @@ msgstr "" "La kliento sendas HTTP-peton enhavantan ĉapon ``Accept`` listigantan ĉiujn " "enhavtipojn de la formo versio+formo komprenatajn de la kliento." -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " @@ -28779,7 +28780,7 @@ msgstr "" "kaj liveras respondon de tiu enhavtipo (la manko de ĉapo ``Accept`` estas " "ekvivalenta al ``Accept: */*``)." -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " @@ -28788,7 +28789,7 @@ msgstr "" "Se la servilo ne subtenas iun ajn el la enhavtipoj en la ĉapo ``Accept``, ĝi " "povas elekti inter la jenaj tri opcioj:" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." @@ -28796,7 +28797,7 @@ msgstr "" "Elekti aprioran enhavtipon alian ol tiujn petitajn de la kliento kaj liveri " "tian respondon." -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " @@ -28806,7 +28807,7 @@ msgstr "" "petitaj enhavtipoj estis disponeblaj, kaj la servilo ne volis aŭ ne povis " "elekti aprioran respondan enhavtipon." -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." @@ -28814,7 +28815,7 @@ msgstr "" "Liveri HTTP-respondon ``300 Pluraj Opcioj`` enhavantan liston de ĉiuj eblaj " "respondoj, kiujn la kliento povas elekti." -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." @@ -28822,7 +28823,7 @@ msgstr "" "La kliento interpretas la respondon, pritraktante tiujn diversajn specojn de " "respondoj, kiujn la servilo eble sendis." -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -28830,7 +28831,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -28841,7 +28842,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -28850,7 +28851,7 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " @@ -28860,19 +28861,19 @@ msgstr "" "pritrakteblaj de la kliento. Ĝu subtenas tri malsamjn formojn por ĉiu " "pripetata enhavtipo:" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "``$tipo/$subtipo``" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "``$tipo/*``" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "``*/*``" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " @@ -28882,7 +28883,7 @@ msgstr "" "$subtipo``, ĉar tio estas la sola maniero specifi la deziratajn version kaj " "dosierformon." -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -28892,7 +28893,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -28902,7 +28903,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -28912,7 +28913,7 @@ msgstr "" "Tamen, kliento memoru, ke servilo rajtas elekti **ajnan* el la petitaj " "enhavtipoj, malgraŭ la donitaj prioritatoj, kaj eĉ enhavtipon **ne** petitan." -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -28929,11 +28930,11 @@ msgstr "" "cf3696a81b341925f82f20cb527e656176987565/src/pip/_internal/index/" "collector.py#L123-L150>`_. Tial la risko de reala rompo estas malgranda." -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "Jen ekzemplo de funkciado de kliento:" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " @@ -28942,11 +28943,11 @@ msgstr "" "Se kliento volus nur subteni HTML aŭ JSON, do ĝi simple forigus nevolatan " "enhavtipon el la ĉapo ``Accept``, tiel ke ricevi tion estus erare." -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "Alternativaj Marĉandaj Meĥanismoj" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -28955,11 +28956,11 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "URL-Parametro" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " @@ -28968,7 +28969,7 @@ msgstr "" "Servilo realiganta la Simplan API povas eble subteni retadresan parametron " "nomitan ``format`` por peti specifan version de la retadreso." -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " @@ -28977,7 +28978,7 @@ msgstr "" "La valoro de la parametro ``format`` estu **unu** el la validaj enhavtipoj. " "Ne subtenataj estas pluraj enhavtipoj, ĵokero, kvalito-valoro ktp." -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -28989,7 +28990,7 @@ msgstr "" "esplorado de la API en TTT-legilo aŭ por permesi hiperligon al specifa " "versio kaj formo en dokumentaro aŭ notoj." -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." @@ -28997,7 +28998,7 @@ msgstr "" "Servilo ne subtenanta tiun parametron povas raporti eraron se ĝi ĉeestas aŭ " "simple ignori ĝin." -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -29007,11 +29008,11 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "Agordado de Finpunkto" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " @@ -29021,7 +29022,7 @@ msgstr "" "uzadon de enhavo-marĉandado, permesante al servilo elekti sian aprioraĵon el " "la haveblaj enhavtipoj." -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -29031,7 +29032,7 @@ msgstr "" "Se servilo ne volas aŭ ne povas subteni la servila enhavomarĉandado kaj " "volas postuli, ke uzanto eksplicu la deziratan version, tio estas permesata." -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -29047,7 +29048,7 @@ msgstr "" "petas uzante la ĉapon ``Accept``, la servilo povas ignori tion kaj liveri la " "enhavtipon por la finpunkto." -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -29058,7 +29059,7 @@ msgstr "" "dosierformon de specifita deponeja retadreso, kaj (dum sendado de peto al " "tiu servilo) sendi ĉapon ``Accept`` *nur* inkluzivantan la ĝustan enhavtipon." -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -29069,7 +29070,7 @@ msgstr "" "tiun normon laŭ la opinioj de la aŭtoroj. Ĝi **ne** devige postulas tiajn " "decidojn." -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -29078,11 +29079,11 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "Ni rekomendas, ke serviloj faru la jenon:" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " @@ -29092,7 +29093,7 @@ msgstr "" "marĉandadon, por tiel longe kiel oni racie povas, aŭ minimume tiel longe " "kiel oni ricevas iom da trafiko uzanta la HTML-respondojn." -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -29103,7 +29104,7 @@ msgstr "" "dosiertipon, ĝi ne liveru respondon ``300 Multiple Choice``; anstataŭe ĝi " "liveru respondon ``406 Not Acceptable``." -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." @@ -29111,7 +29112,7 @@ msgstr "" "Tamen, se oni elektas uzi la finpunktan agordon, oni prefere liveru " "respondon ``200 OK`` en la atendata enhavtipo de tiu finpunkto." -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -29120,11 +29121,11 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "Ni rekomendas, ke klientoj faru la jenon:" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." @@ -29132,14 +29133,14 @@ msgstr "" "Subtenu ĉiujn 3 enhavtipojn priskribitajn en ĉi tiu specifo, per servila " "enhavo-marĉandado, tiel longe kiel racie eblas." -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" "Dum konstruado de ĉapo ``Accept``, inkluzivu ĉiujn enhavtipojn subtenatajn." -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -29148,7 +29149,7 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " @@ -29158,7 +29159,7 @@ msgstr "" "valoron ``;q=0.01`` sur la malnova enhavtipo ``text/html``, krom se tiu " "estas la sola enhavtipo, kiun vi petas." -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." @@ -29166,7 +29167,7 @@ msgstr "" "Eksplicite elektu la version serĉatan, anstataŭ uzi la metadatenan version " "``latest``, dum ordinara funkciado." -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." @@ -29174,19 +29175,19 @@ msgstr "" "Kontrolu la ``Content-Type`` de la respondo, kaj certigu, ke ĝi kongruas kun " "io atendata de vi." -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "Septembro 2015: unua versio de la HTML-formo, en :pep:`503`" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "Julio 2016: Metadateno Requires-Python, en ĝisdatigo al :pep:`503`" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "Majo 2019: Subteno de «fortiro», en :pep:`592`" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" @@ -29194,14 +29195,14 @@ msgstr "" "Julio 2020: Versia konvencio de API kaj metadatenoj, kaj deklaro de la HTML-" "formo kiel versio 1 de la API, en :pep:`629`" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" "Majo 2021: provizi pakajn metadatenojn sendepende de pako, laŭ :pep:`658`" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" @@ -29209,7 +29210,7 @@ msgstr "" "Majo 2022: komenca versio de la JSON-formo, kun meĥanismo por kliento elekti " "inter ili, kaj deklaro de ambaŭ formoj kiel versio 1 de la API, en :pep:`691`" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" @@ -29217,7 +29218,7 @@ msgstr "" "Oktobro 2022: projekta versio kaj dosiera grando kaj alŝuta tempo en la " "formo JSON laŭ :pep:`700`" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" @@ -29225,7 +29226,7 @@ msgstr "" "Junio 2023: ŝanĝi la nomon de la kampo provizantan pakajn metadatenojn " "sendepende de pako laŭ :pep:`714`" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" @@ -29233,7 +29234,7 @@ msgstr "" "Novembro 2024: originpruvaj metadatenoj en la formoj HTML kaj JSON, " "en :pep:`740`" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 #, fuzzy #| msgid "" #| "November 2024: provenance metadata in the HTML and JSON formats, " @@ -29244,7 +29245,7 @@ msgstr "" "Novembro 2024: originpruvaj metadatenoj en la formoj HTML kaj JSON, " "en :pep:`740`" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -29614,7 +29615,7 @@ msgstr "" "normigita per :pep:`639`." #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "Versispecifiloj" @@ -30293,11 +30294,33 @@ msgstr "" "Tamen, eksplicitante epokon, oni povas ŝanĝi la ordon, ĉar ĉiuj versioj de " "pli posta epoko estas ordigitaj post versioj de pli frua epoko::" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "Normigo" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -30305,11 +30328,11 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "Usklecdistingo" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " @@ -30319,11 +30342,11 @@ msgstr "" "minusklo. Tio permesas version kiel ``1.1RC1``, kies norma formo estas " "``1.1rc1``." -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "Entjera Normigo" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -30337,11 +30360,11 @@ msgstr "" "entjero en alfabetcifera segmento de loka versio kiel ``1.0+foo0100``, kiu " "estas sia propra normigita formo." -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "Antaŭeldonaj apartigiloj" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -30357,11 +30380,11 @@ msgstr "" "specifilo kaj la numero. Tio permesas versiojn kiel ``1.0a.1``, kies norma " "formo estas ``1.0a1``." -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "Literumado de antaŭeldono" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -30376,11 +30399,11 @@ msgstr "" "normigitaj al ``1.1a1``, ``1.1b2`` kaj ``1.1rc3``. Ĉiukaze la ekstra " "literumaĵo ekvivalentas la norman formon." -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "Implicita antaŭeldona numero" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -30391,11 +30414,11 @@ msgstr "" "eksplicas ``0``. Tio permesas versiojn kiel ``1.2a``, kies norma formo estas " "``1.2a0``." -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "Posteldonaj disigiloj" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -30412,11 +30435,11 @@ msgstr "" "nedevigan apartigilon inter la posteldono-specifilo kaj la numero. Tio " "permesas versiojn kiel ``1.2.post-2``, kies norma formo estas ``1.2.post2``." -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "Posteldona literumado" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -30427,11 +30450,11 @@ msgstr "" "versiojn kiel ``1.0-r4``, kies normigita formo estas ``1.0.post4``. Same " "kiel antaŭeldono, la ekstraj literumaĵoj ekvivalentas la normigitajn formojn." -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "Implicita posteldona numero" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -30442,11 +30465,11 @@ msgstr "" "eksplicas ``0``. Tio permesas versiojn kiel ``1.2post``, kies norma formo " "estas ``1.2post0``." -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "Implicitaj posteldonoj" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -30461,11 +30484,11 @@ msgstr "" "uzi tion kune kun la regulo de implicita posteldona numero. Alivorte, ``1.0-" "`` *ne* validas, kaj ĝia norma formo *ne* estas ``1.0.post0``." -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "Disigiloj de evoluada eldono" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -30477,11 +30500,11 @@ msgstr "" "versiojn kiel ``1.2-dev2`` aŭ ``1.2dev2``, kies norma formo estas " "``1.2dev2``." -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "Implicita evoluada eldona numero" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -30492,11 +30515,11 @@ msgstr "" "formo eksplicas ``0``. Tio permesas versiojn kiel ``1.2.dev``, kies norma " "formo estas ``1.2.dev0``." -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "Lokaj versiaj segmentoj" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -30507,11 +30530,11 @@ msgstr "" "apartigiloj ``-`` kaj ``_``. La norma formo uzas ``.``. Tio permesas " "versiojn kiel ``1.0+ubuntu-1``, kies norma formo estas ``1.0+ubuntu.1``." -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "Prefiksa signo «v»" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -30520,11 +30543,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "Komenca kaj Fina Blanka Spaco" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -30537,11 +30560,11 @@ msgstr "" "``\\n``, ``\\r``, ``\\f``, kaj ``\\v``. Tio permesas racian pritraktadon de " "senintenca blanka spaco, kiel ``1.0\\n``, kiu estas normigita al ``1.0``." -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "Ekzemploj de versiaj skemoj observantaj la regulojn" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -30551,7 +30574,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -30559,21 +30582,21 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "Simpla «maĵora.minora» versiado::" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "Simpla «maĵora.minora.mikroa» versiado::" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" "«maĵora.minora» versiado kun alfa-, beta-, kaj kandidataj antaŭeldonoj::" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" @@ -30581,17 +30604,17 @@ msgstr "" "«maĵora.minora» versiado kun evoluaj eldonoj, eldonkandidatoj kaj " "posteldonoj por malgravaj korektoj::" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "Datobaza eldono, kun alkrementata numero en ĉiu jaro, sen nulo::" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "Resumo pri permesataj sufiksoj kaj relativa ordo" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " @@ -30601,7 +30624,7 @@ msgstr "" "distribuajn metadatenojn, ne aŭtoroj de Python-distribuoj elektantaj versian " "skemon." -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " @@ -30611,7 +30634,7 @@ msgstr "" "valoro de la epoko. Se epoka segmento mankas, la implicita nombra valoro " "estas ``0``." -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " @@ -30621,7 +30644,7 @@ msgstr "" "ordo de opoj en Python, kiam la normigita eldona segmento estas analizita " "jene::" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." @@ -30629,7 +30652,7 @@ msgstr "" "Ĉiuj eldono-segmentoj pri la komparo DEVAS esti samlongigitaj, metante " "nulojn antaŭ pli mallongaj segmentoj laŭbezone." -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" @@ -30637,7 +30660,7 @@ msgstr "" "Ene de numera eldono (``1.0``, ``2.7.3``), la ĉi-subaj sufiksoj estas " "permesataj kaj DEVAS esti ordigitaj jene::" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -30649,7 +30672,7 @@ msgstr "" "kaj ``rc`` en la sama eldonsegmento pro ambigueco kaj tamen observi la " "specifon." -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " @@ -30659,7 +30682,7 @@ msgstr "" "``1.0c1``), la ĉi-subaj sufiksoj estas permesataj kaj DEVAS esti ordigitaj " "jene::" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" @@ -30667,7 +30690,7 @@ msgstr "" "Ene de posteldono (``1.0.post1``), la jenaj sufiksoj estas permesataj kaj " "DEVAS esti ordigitaj jene::" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " @@ -30676,7 +30699,7 @@ msgstr "" "Notu, ke ``devN`` kaj ``postN`` DEVAS esti antaŭita de punkto, eĉ tuj post " "numera versio (ekz. ``1.0.dev456``, ``1.0.post1``)." -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." @@ -30684,15 +30707,15 @@ msgstr "" "En antaŭeldona, posteldona aŭ evoluada-eldona segmento kun komuna prefikso, " "ordigado DEVAS esti laŭ la valoro de la numera komponanto." -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "Jen ekzemplo de multaj eblaj kombinaĵoj::" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "Ordigo de versioj trans diversaj metadatenaj versioj" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " @@ -30702,7 +30725,7 @@ msgstr "" "norman skemon pri identigado kaj ordigado de versioj. Tamen Metadatenoj v1.2 " "(:pep:`345`) ja specifas skemon difinitan en :pep:`386`." -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -30719,7 +30742,7 @@ msgstr "" "version. Tiaj postuloj necesigas normigadon al unu sintaksanaliza meĥanismo " "uzenda por ĉiuj versioj de projekto." -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -30729,7 +30752,7 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." @@ -30737,11 +30760,11 @@ msgstr "" "Uzanto de distribuo povas deziri eksplicite forigi nekongruajn versiojn el " "sia privata pakindekso." -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "Kongrueco kun aliaj versiaj skemoj" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -30754,7 +30777,7 @@ msgstr "" "projekto-specifa versio povas esti konservita en la metadatenoj, dum la " "tradukita publika versio estas en la versia kampo." -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " @@ -30763,7 +30786,7 @@ msgstr "" "Tiu permesas al aŭtomata distribuilo ĝuste ordigi eldonojn dum aŭtoroj povas " "uzi sian preferatan versian skemon por siaj projektoj." -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -30779,7 +30802,7 @@ msgstr "" "indas kompreni ĝin, ĉar ĝi diskutas multajn problemojn pri dependado de " "aliaj distribuoj kaj pri eldonado de distribuo, de kiu aliaj dependas." -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -30791,7 +30814,7 @@ msgstr "" "kongruas kun la versia skemo en ĉi tiu specifo, kaj ni rekomendas observi " "tian aspekton." -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " @@ -30801,7 +30824,7 @@ msgstr "" "plusosigno (konstruoj – paragrafo 11) *ne* observas ĉi tiun specifon kaj " "estas malpermesata en la publika versia kampo." -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " @@ -30811,18 +30834,18 @@ msgstr "" "kongrua publika versio estas uzi la sufikson ``.devN`` por specifi la taŭgan " "versian ordon." -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" "Specifaj konstruaj informoj povas ankaŭ esti inkluzivitaj en lokaj versiaj " "etikedoj." -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "Versiaj etikedoj per distribuita versikontrola sistemo" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -30834,7 +30857,7 @@ msgstr "" "oni ne povas fidinde ordigi haketaĵojn, oni ne permesas tiajn versiojn en la " "publika versio-kampo." -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " @@ -30844,17 +30867,17 @@ msgstr "" "identigas tiajn eldonojn publike, dum la originala versikontrolsistema " "etikedo povas esti unu el la projektaj metadatenoj." -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" "Loka versia etikedo ankaŭ povas inkluzivi identigan haketaĵan informon." -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "Versiado laŭ Olson-datenbanko" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " @@ -30864,7 +30887,7 @@ msgstr "" "horzono-datenbanko Olson: la jaron, sekvitan de minuskla litero de la versio " "de la datenbanko en tiu jaro." -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -30875,7 +30898,7 @@ msgstr "" "``, en kiu la numero komenciĝas ĉe nulo aŭ unuo (por la eldono " "``a``) kaj alkrementiĝas por ĉiu sekva datenbanka ĝisdatigo en la jaro." -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." @@ -30883,7 +30906,7 @@ msgstr "" "Samkiel aliaj tradukitaj versiaj identigiloj, la respondanta versio de la " "Olson-datenbanko povas esti registrita en la projektaj metadatenoj." -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" @@ -30891,39 +30914,39 @@ msgstr "" "Versi-specifilo konsistas el serio de versio-kondiĉoj apartigitaj per komoj. " "Ekzemple::" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "La kompara operatoro determinas la specon de versia kondiĉo:" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "``~=``: Kondiĉo `Kongrua eldono `_" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "``==``: Kondiĉo `Versia egaleco `_" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "``!=``: Kondiĉo `Ekskluzivo de versio `_" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" "``<=``, ``>=``: Kondiĉo `Inkluziva orda komparo `_" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" "``<``, ``>``: Kondiĉo `Ekskluziva orda komparo `_" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "``===``: Kondiĉo `Arbitra egaleco `_." -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " @@ -30933,7 +30956,7 @@ msgstr "" "devas kongrui kun ĉiuj donitaj versio-kondiĉoj por kongrui kun la tuta " "specifilo." -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." @@ -30941,7 +30964,7 @@ msgstr "" "Blanka spaco inter kondiĉa operatoro kaj la sekva versia identigilo estas " "nedeviga; same pri la blanka spaco ĉirkaŭ komo." -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -30950,7 +30973,7 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " @@ -30960,11 +30983,11 @@ msgstr "" "esti uzata en versio-specifilo, kaj oni DEVAS plene ignori lokan versian " "etikedon dum kontrolado ĉu kandidata versio kongruas kun iu versio-specifilo." -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "Kongrua eldono" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " @@ -30974,7 +30997,7 @@ msgstr "" "kaj versio-identigilo. Ĝi kongruas kun kandidata versio atendate kongrua kun " "la specifita versio." -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " @@ -30984,7 +31007,7 @@ msgstr "" "skemo `_. Loka versio-identigilo estas MALPERMESATA en ĉi " "tiu versio-specifilo." -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" @@ -30992,7 +31015,7 @@ msgstr "" "Por iu eldono-specifilo ``V.N``, la kondiĉo pri kongrua eldono estas " "proksimume ekvivalenta al la jena paro de kondiĉoj::" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." @@ -31000,11 +31023,11 @@ msgstr "" "Oni DEVAS NE uzi ĉi tiun operatoron kun unusegmenta versia numero kiel " "``~=1``." -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "Ekzemple, la jenaj grupoj de versio-kondiĉoj estas ekvivalentaj::" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " @@ -31014,7 +31037,7 @@ msgstr "" "kongrua eldono kiel ``V.N.sufikso``, do la sufikso estas ignorita dum " "determinado de la postulata prefiksa kongrueco::" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " @@ -31024,11 +31047,11 @@ msgstr "" "la supozata grado de kongrueco en kondiĉo pri kongruaj eldonoj estas " "modifebla per nuloj ĉe la komenco de la versio-specifilo::" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "Versia egaleco" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." @@ -31036,7 +31059,7 @@ msgstr "" "Versio-egaleca kondiĉo inkluzivas la versio-egalecan operatoron ``==`` kaj " "versian identigilon." -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " @@ -31046,7 +31069,7 @@ msgstr "" "en `Versia skemo `_, sed sufiksa ``.*`` estas permesata post " "publika versio-identigilo jene." -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -31055,7 +31078,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -31066,7 +31089,7 @@ msgstr "" "versio-specifilo. Aŭtomata ilo almenaŭ AVERTU pri maltaŭga strikta versio-" "egaleco kaj POVAS malakcepti ĝin." -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -31076,8 +31099,8 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" @@ -31085,7 +31108,7 @@ msgstr "" "Ekzemple, pri la versio ``1.1.post1``, la ĉi-subaj kondiĉoj estas plenumitaj " "aŭ ne jene::" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " @@ -31095,7 +31118,7 @@ msgstr "" "prefiksan ``.``. Tial, pri la versio ``1.1a1``, kaj jenaj kondiĉoj kongruus " "aŭ ne kongruus jene::" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -31106,7 +31129,7 @@ msgstr "" "konsekvenco de la nulo-antaŭmeta regulo pri la eldonsegmento de versio-" "identigilo). Pri la versio ``1.1``, la jenaj kondiĉoj kongruus aŭ ne jene::" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -31115,7 +31138,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -31125,7 +31148,7 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " @@ -31135,7 +31158,7 @@ msgstr "" "versio-etikedo), do la loka versio-etikedo de iu ajn kandidata versio DEVAS " "ignoriĝi dum komputado de kongrueco inter versioj." -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -31144,11 +31167,11 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "Ekskluzivo de versio" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." @@ -31156,7 +31179,7 @@ msgstr "" "Versi-ekskluzivada kondiĉo konsistas el la versio-ekskluzivada operatoro ``!" "=`` kaj versia identigilo." -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " @@ -31166,11 +31189,11 @@ msgstr "" "kiel tiuj de la operatoro de `Versia egaleco `_, krom ke " "la senco de kongrueco estas mala." -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "Inkluziva ordita komparo" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -31179,12 +31202,12 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "La operatoroj de inkluziva orda komparo estas ``<=`` kaj ``>=``." -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." @@ -31193,16 +31216,16 @@ msgstr "" "nuloj, kiom necesas por certigi, ke la eldonsegmentoj kompariĝas je la sama " "longo." -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "Loka versia identigilo NE estas permesata en ĉi tiu versispecifilo." -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "Ekskluziva ordita komparo" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -31212,7 +31235,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -31227,7 +31250,7 @@ msgstr "" "``>V.postN``. Ekzemple, ``>1.7`` permesas ``1.7.1`` sed ne ``1.7.0.post1``; " "``>1.7.post2`` permesas ``1.7.1`` kaj ``1.7.0.post3`` sed ne ``1.7.0``." -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." @@ -31235,7 +31258,7 @@ msgstr "" "La ekskluziva orda komparo ``>V`` **DEVAS NE** kongrui kun loka versio de la " "specifita versio." -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " @@ -31499,7 +31524,7 @@ msgstr "" "haketaĵan valoron inkluzivante eron ``=`` kiel parton de la URL-fragmento." -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -31508,7 +31533,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -31520,7 +31545,7 @@ msgstr "" "fino de la retadreso laŭ la notacio ``@`` aŭ " "``@#``." -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -31537,15 +31562,15 @@ msgstr "" "inkluzivu haketaĵon por malhelpi falsadon (estas facile krei fideponejon kun " "iu deponejo; estas malpli facile krei fideponejon kun specifa *haketaĵo*)." -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "Ekzemploj de foraj retadresoj::" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "Dosieraj retadresoj" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -31557,7 +31582,7 @@ msgstr "" "```` mankas, la tria suprenstreko DEVAS tamen ekzisti. La " "```` difinas la dosierlokan vojon ĉe la dosiersistemo atingota." -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -31569,7 +31594,7 @@ msgstr "" "nomregno (FQDN), kiu egalas la gastiganton de la aktuala maŝino. Alivorte, " "sur Unikso, la skemo ``file://`` nur povas atingi vojojn ĉe la loka maŝino." -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -31589,11 +31614,11 @@ msgstr "" "web.archive.org/web/20130321051043/http://blogs.msdn.com/b/ie/archive/" "2006/12/06/file-uris-in-windows.aspx>`_." -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "Resumo pri diferencoj de pkg_resources.parse_version" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " @@ -31603,7 +31628,7 @@ msgstr "" "estis verkita. Post la aprobo de la PEP, setuptools 6.0 kaj postaj versioj " "adoptis la konduton priskribitan ĉi tie." -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " @@ -31613,7 +31638,7 @@ msgstr "" "versio estu pli granda ol la sama versio sen loka versio, dum " "``pkg_resources.parse_version`` konsideras ĝin kiel markon de antaŭeldono." -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " @@ -31622,7 +31647,7 @@ msgstr "" "Ĉiu tiu specifo intence restriktas la sintakson de valida versio, dum " "``pkg_resources.parse_version`` provas analizi *iun ajn* signoĉenon." -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " @@ -31632,11 +31657,11 @@ msgstr "" "``1.0.dev1.post1.dev5``. Ĉi tiu specifo, tamen, nur permesas nur unu uzon de " "ĉiu tipo, en difinita ordo." -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "Apendico: Sintaksanalizi versian tekston per regulaj esprimoj" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -31645,7 +31670,7 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" @@ -31653,7 +31678,7 @@ msgstr "" "Por kontroli, ĉu versia identigilo estas en la kanona formo, oni povas uzi " "la jenan funkcion:" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_):" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "Aŭgusto 2014: Ĉi tiu specifo estis aprobita per :pep:`440`." -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "Virtualaj Python-Medioj" @@ -33418,9 +33451,13 @@ msgid "" msgstr "" #: ../source/tutorials/packaging-projects.rst:222 +#, fuzzy +#| msgid "" +#| "``license`` is the :term:`SPDX license expression ` " +#| "of your package." msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" "``license`` estas la :term:`SPDX-esprimo ` de via pako." @@ -33469,12 +33506,21 @@ msgid "Creating a LICENSE" msgstr "Krei la dosieron LICENSE" #: ../source/tutorials/packaging-projects.rst:253 -msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +#, fuzzy +#| msgid "" +#| "It's important for every package uploaded to the Python Package Index to " +#| "include a license. This tells users who install your package the terms " +#| "under which they can use your package. For help picking a license, see " +#| "https://choosealicense.com/. Once you have chosen a license, " +#| "open :file:`LICENSE` and enter the license text. For example, if you had " +#| "chosen the MIT license:" +msgid "" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" "Gravas, ke ĉiu pako alŝutita al la Python-Pakindekso inkluzivu licencon. Tio " "sciigas al uzanto instalinta pakon la kondiĉojn, sub kiuj oni povas uzi la " @@ -33816,6 +33862,182 @@ msgstr "" "komencanto pri Python-pakado, recomendate estas nur uzi *ordinarajn pakojn* " "kaj ``__init__.py`` (eĉ se tiu dosiero estas malplena)." +#~ msgid "" +#~ "This specification was originally defined in :pep:`518` and :pep:`621`." +#~ msgstr "" +#~ "Ĉi tiu specifo estis originale difinta en :pep:`518` kaj :pep:`621`." + +#~ msgid "" +#~ "Refer to the `pkg_resources documentation `__ for more details." +#~ msgstr "" +#~ "Por pliaj detaloj, vidu `la dokumentaron de pkg_resources `__." + +#~ msgid "" +#~ "A complete working example of two pkg_resources-style namespace packages " +#~ "can be found in the `pkg_resources namespace example project`_." +#~ msgstr "" +#~ "Plena funkcianta ekzemplo de du pkg_resources-stilaj nomspacaj pakoj " +#~ "troviĝas en la `pkg_resources-nomspaca ekzempla projekto `_." + +#, fuzzy +#~| msgid "The ``versions`` key was added with API version 1.1." +#~ msgid "The ``project-status-reason`` key was added with API version 1.4." +#~ msgstr "La ŝlosilo ``versions`` estis aldonita por versio 1.1 de la API." + +#~ msgid "" +#~ "RECORD.jws is used for digital signatures. It is not mentioned in RECORD." +#~ msgstr "" +#~ "RECORD.jws estas uzataj por ciferecaj subskriboj. Ĝi ne estas menciita " +#~ "en RECORD." + +#~ msgid "" +#~ "RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/" +#~ "MIME signatures to secure their wheel files. It is not mentioned in " +#~ "RECORD." +#~ msgstr "" +#~ "RECORD.p7s estas permesata por tiuj, kiuj preferas uzi S/MIME-subskribon " +#~ "por sekurigi wheel-dosieron. Ĝi ne menciiĝas en RECORD." + +#~ msgid "Signed wheel files" +#~ msgstr "Subskribitaj wheel-dosieroj" + +#~ msgid "" +#~ "Wheel files include an extended RECORD that enables digital signatures. " +#~ "PEP 376's RECORD is altered to include a secure hash " +#~ "``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding " +#~ "with no trailing = characters) as the second column instead of an " +#~ "md5sum. All possible entries are hashed, including any generated files " +#~ "such as .pyc files, but not RECORD which cannot contain its own hash. For " +#~ "example::" +#~ msgstr "" +#~ "Wheel-dosiero inkluzivas etenditan ``RECORD`` por ciferecaj subskriboj. " +#~ "La ``RECORD`` de PEP 376 estas modifita por inkluzivi sekuran haketaĵon " +#~ "``digestname=urlsafe_b64encode_nopad(digest)`` (URL-sekura base64-kodado " +#~ "sen finaj signoj ``=``) kiel la duan kolumnon anstataŭ md5sum. Ĉiaj " +#~ "eblaj eroj havu haketaĵojn, inkluzive de generitaj dosieroj kiel ``.pyc``-" +#~ "dosieroj, krom ``RECORD`` mem, kiu ne povas enhavi sian propran " +#~ "haketaĵon. Ekzemple::" + +#~ msgid "" +#~ "The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in " +#~ "RECORD at all since they can only be added after RECORD is generated. " +#~ "Every other file in the archive must have a correct hash in RECORD or the " +#~ "installation will fail." +#~ msgstr "" +#~ "La subskribo-dosiero(j) RECORD.jws kaj RECORD.p7s ne menciiĝas en RECORD, " +#~ "ĉar ili estas nur aldoneblaj post la generado de RECORD. Ĉiu alia dosiero " +#~ "en la arĥivo devas havi ĝustan haketaĵon en RECORD; se ne, la instalado " +#~ "malsukcesos." + +#~ msgid "" +#~ "If JSON web signatures are used, one or more JSON Web Signature JSON " +#~ "Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent " +#~ "to RECORD. JWS is used to sign RECORD by including the SHA-256 hash of " +#~ "RECORD as the signature's JSON payload:" +#~ msgstr "" +#~ "Se oni uzas JSON-retsubskriboj (JWS), unu aŭ pluraj subskriboj uzantaj " +#~ "JSON-seriigon de JSON-retsubskribo (JWS-JS) konserviĝas en dosiero " +#~ "``RECORD.jws`` apud ``RECORD``. Oni uzas JWS por subskribi ``RECORD`` " +#~ "inkluzivante la haketaĵon SHA-256 de ``RECORD`` kiel la JSON-ŝarĝon de la " +#~ "subskribo:" + +#~ msgid "(The hash value is the same format used in RECORD.)" +#~ msgstr "(La haketaĵa valoro estas la sama formo uzata en RECORD.)" + +#~ msgid "" +#~ "If RECORD.p7s is used, it must contain a detached S/MIME format signature " +#~ "of RECORD." +#~ msgstr "" +#~ "Se RECORD.p7s estas uzata, ĝi devas enhavi malligitan S/MIME-forman " +#~ "subskribon de RECORD." + +#~ msgid "" +#~ "A wheel installer is not required to understand digital signatures but " +#~ "MUST verify the hashes in RECORD against the extracted file contents. " +#~ "When the installer checks file hashes against RECORD, a separate " +#~ "signature checker only needs to establish that RECORD matches the " +#~ "signature." +#~ msgstr "" +#~ "Instalilo de wheel ne devas kompreni ciferecan subskribon sed DEVAS " +#~ "kompari la haketaĵojn en ``RECORD`` al la enhavoj de la maldensigitaj " +#~ "dosieroj. Kiam instalilo komparas la dosierajn haketaĵojn kaj ``RECORD``, " +#~ "aparta subskribo-kontrolilo devas nur kontroli, ĉu ``RECORD`` kongruas " +#~ "kun la subskribo." + +#~ msgid "See" +#~ msgstr "Vidu" + +#~ msgid "https://datatracker.ietf.org/doc/html/rfc7515" +#~ msgstr "https://datatracker.ietf.org/doc/html/rfc7515" + +#~ msgid "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" +#~ "serialization-01" +#~ msgstr "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" +#~ "serialization-01" + +#~ msgid "https://datatracker.ietf.org/doc/html/rfc7517" +#~ msgstr "https://datatracker.ietf.org/doc/html/rfc7517" + +#~ msgid "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" +#~ msgstr "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" + +#~ msgid "Why does wheel include attached signatures?" +#~ msgstr "Kial wheel inkluzivas alkroĉitajn subskribojn?" + +#~ msgid "" +#~ "Attached signatures are more convenient than detached signatures because " +#~ "they travel with the archive. Since only the individual files are " +#~ "signed, the archive can be recompressed without invalidating the " +#~ "signature or individual files can be verified without having to download " +#~ "the whole archive." +#~ msgstr "" +#~ "Alkroĉita subskribo estas pli oportuna ol nealkroĉita subskribo, ĉar ĝi " +#~ "moviĝas kune kun la arĥivo. Ĉar nur la individuaj dosieroj estas " +#~ "subskribitaj, la arĥivo estas redensigebla sen eksvalidigi la subskribon, " +#~ "kaj individuaj dosieroj estas kontroleblaj sen reelŝutado de la tuta " +#~ "arĥivo." + +#~ msgid "Why does wheel allow JWS signatures?" +#~ msgstr "Kial wheel permesas JWS-subskribojn?" + +#~ msgid "" +#~ "The JOSE specifications of which JWS is a part are designed to be easy to " +#~ "implement, a feature that is also one of wheel's primary design goals. " +#~ "JWS yields a useful, concise pure-Python implementation." +#~ msgstr "" +#~ "La normoj JOSE, de kiuj JWS estas parto, estas laŭfasone facile " +#~ "realigebla; tio estas ankaŭ unu el la fasonaj ĉefceloj de wheel. JWS " +#~ "ebligas utilan, mallongan pure Python-an realigon." + +#~ msgid "Why does wheel also allow S/MIME signatures?" +#~ msgstr "Kial wheel ankaŭ permesas S/MIME-subskribojn?" + +#~ msgid "" +#~ "S/MIME signatures are allowed for users who need or want to use existing " +#~ "public key infrastructure with wheel." +#~ msgstr "" +#~ "S/MIME-subskribo estas permesata por tiuj uzantoj, kiuj devas aŭ volas " +#~ "uzi ekzistantan publikŝlosilan infrastrukturon kun wheel." + +#~ msgid "" +#~ "Signed packages are only a basic building block in a secure package " +#~ "update system. Wheel only provides the building block." +#~ msgstr "" +#~ "Subskribita pako estas nur baza briko de sekura pako-ĝisdatiga sistemo. " +#~ "Wheel nur provizas la bazan brikon." + +#~ msgid "The license expressions for these projects are:" +#~ msgstr "Jen la licenco-esprimoj por tiuj projektoj:" + #~ msgid "TUF Support - PEP 458" #~ msgstr "Subteno de TUF – PEP 458" diff --git a/locales/es/LC_MESSAGES/messages.po b/locales/es/LC_MESSAGES/messages.po index 63da1b23f..c146aa8ea 100644 --- a/locales/es/LC_MESSAGES/messages.po +++ b/locales/es/LC_MESSAGES/messages.po @@ -17,8 +17,8 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" -"PO-Revision-Date: 2025-05-01 09:08+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" +"PO-Revision-Date: 2025-12-12 01:00+0000\n" "Last-Translator: Joseph Hale \n" "Language-Team: Spanish \n" @@ -27,7 +27,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.12-dev\n" +"X-Generator: Weblate 5.15-dev\n" #: ../source/contribute.rst:5 msgid "Contribute to this guide" @@ -728,7 +728,6 @@ msgid "py2exe" msgstr "" #: ../source/discussions/deploying-python-applications.rst:91 -#, fuzzy msgid "" "`py2exe `__ is a distutils extension which " "allows to build standalone Windows executable programs (32-bit and 64-bit) " @@ -740,14 +739,13 @@ msgid "" "Mozilla Public License 2.0." msgstr "" "`py2exe `__ es una extensión de distutils " -"que permite construir programas ejecutables para Windows independientes (32-" -"bit y 64-bit) desde scripts de Python. Las versiones de Python incluidas en " -"el ciclo de desarrollo oficial son compatibles (se refiere a `Status of " -"Python branches`__). py2exe puede construir ejecutables de consolas y " -"ventanas ejecutables (GUI). Construir servicios de ventana así como " -"servidores DLL/EXE COM puede funcionar pero no tiene soporte activo. La " -"extensión de distutils es publicada bajo la MIT-license y la Mozilla Public " -"License 2.0." +"que permite convertir scripts de Python en programas ejecutables para " +"Windows (32-bit y 64-bit). Las versiones de Python incluidas en el ciclo de " +"desarrollo oficial son compatibles (se refiere a `Status of Python " +"branches`__). py2exe puede construir ejecutables de consolas y ventanas " +"ejecutables (GUI). Construir servicios de ventana así como servidores DLL/" +"EXE COM puede funcionar pero no tiene soporte activo. La extensión de " +"distutils es publicada bajo la MIT-license y la Mozilla Public License 2.0." #: ../source/discussions/deploying-python-applications.rst:103 #: ../source/specifications/platform-compatibility-tags.rst:200 @@ -2990,7 +2988,7 @@ msgid "A simple version with just one component: ``42``" msgstr "" #: ../source/discussions/versioning.rst:30 -msgid "A version with an epoch: ``1!1.0``" +msgid "A version with an epoch (discouraged): ``1!1.0``" msgstr "" #: ../source/discussions/versioning.rst:32 @@ -3021,20 +3019,22 @@ msgstr "" #: ../source/discussions/versioning.rst:49 msgid "" -"Finally, epochs, a rarely used feature, serve to fix the sorting order when " -"changing the versioning scheme. For example, if a project is using calendar " -"versioning, with versions like 23.12, and switches to semantic versioning, " -"with versions like 1.0, the comparison between 1.0 and 23.12 will go the " -"wrong way. To correct this, the new version numbers should have an explicit " -"epoch, as in \"1!1.0\", in order to be treated as more recent than the old " -"version numbers." +"Finally, epochs were intended to fix the sorting order when changing the " +"versioning scheme. For example, if a project was using calendar versioning, " +"with versions like ``23.12``, and switched to semantic versioning, with " +"versions like ``1.0``, the comparison between ``1.0`` and ``23.12`` would go " +"the wrong way. To correct this, the new version numbers would have an " +"explicit epoch, as in ``1!1.0``, in order to be treated as more recent than " +"the old version numbers. However, this is discouraged, and it is preferable " +"to use a higher version number that is unlikely to cause user confusion, " +"such as ``100.0``." msgstr "" -#: ../source/discussions/versioning.rst:59 +#: ../source/discussions/versioning.rst:60 msgid "Semantic versioning vs. calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:61 +#: ../source/discussions/versioning.rst:62 msgid "" "A versioning scheme is a formalized way to interpret the segments of a " "version number, and to decide which should be the next version number for a " @@ -3042,7 +3042,7 @@ msgid "" "Python packages, semantic versioning and calendar versioning." msgstr "" -#: ../source/discussions/versioning.rst:68 +#: ../source/discussions/versioning.rst:69 msgid "" "The decision which version number to choose is up to a project's maintainer. " "This effectively means that version bumps reflect the maintainer's view. " @@ -3050,7 +3050,7 @@ msgid "" "versioning scheme promises them." msgstr "" -#: ../source/discussions/versioning.rst:74 +#: ../source/discussions/versioning.rst:75 msgid "" "There are known exceptions for selecting the next version number. The " "maintainers may consciously choose to break the assumption that the last " @@ -3059,31 +3059,31 @@ msgid "" "come in patch versions but contain breaking changes inevitably." msgstr "" -#: ../source/discussions/versioning.rst:84 -#: ../source/specifications/version-specifiers.rst:726 +#: ../source/discussions/versioning.rst:85 +#: ../source/specifications/version-specifiers.rst:741 msgid "Semantic versioning" msgstr "" -#: ../source/discussions/versioning.rst:86 +#: ../source/discussions/versioning.rst:87 msgid "" "The idea of *semantic versioning* (or SemVer) is to use 3-part version " "numbers, *major.minor.patch*, where the project author increments:" msgstr "" -#: ../source/discussions/versioning.rst:89 +#: ../source/discussions/versioning.rst:90 msgid "*major* when they make incompatible API changes," msgstr "" -#: ../source/discussions/versioning.rst:90 +#: ../source/discussions/versioning.rst:91 msgid "" "*minor* when they add functionality in a backwards-compatible manner, and" msgstr "" -#: ../source/discussions/versioning.rst:91 +#: ../source/discussions/versioning.rst:92 msgid "*patch*, when they make backwards-compatible bug fixes." msgstr "" -#: ../source/discussions/versioning.rst:93 +#: ../source/discussions/versioning.rst:94 msgid "" "A majority of Python projects use a scheme that resembles semantic " "versioning. However, most projects, especially larger ones, do not strictly " @@ -3095,7 +3095,7 @@ msgid "" "used to signal significant but backwards-compatible new features." msgstr "" -#: ../source/discussions/versioning.rst:103 +#: ../source/discussions/versioning.rst:104 msgid "" "For those projects that do use strict semantic versioning, this approach " "allows users to make use of :ref:`compatible release version specifiers " @@ -3107,13 +3107,13 @@ msgid "" "and allows a later release with same X and Y but higher Z." msgstr "" -#: ../source/discussions/versioning.rst:112 +#: ../source/discussions/versioning.rst:113 msgid "" "Python projects adopting semantic versioning should abide by clauses 1-8 of " "the `Semantic Versioning 2.0.0 specification `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -3124,43 +3124,43 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 #, fuzzy msgid "Calendar versioning" msgstr "Versión" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 #, fuzzy msgid "Other schemes" msgstr "Otras fuentes" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -3169,7 +3169,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -3178,12 +3178,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -3193,7 +3193,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -3205,11 +3205,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -3217,20 +3217,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -3238,7 +3238,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -3249,7 +3249,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -3258,13 +3258,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3547,11 +3547,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3753,9 +3753,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3931,54 +3931,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3986,11 +3986,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3999,11 +3999,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -4011,27 +4011,27 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "Archivo de requisitos" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 #, fuzzy msgid "Root License Directory" msgstr "Nombre de proyecto" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -4043,38 +4043,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "Archivo Fuente" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -4083,11 +4083,11 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "Paquete de sistema" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." @@ -4095,11 +4095,11 @@ msgstr "" "Un paquete provisto en un formato nativo del sistema operativo, por ejemplo, " "un archivo de RPM o de APT." -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -4108,11 +4108,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "Entorno virtual" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -4120,16 +4120,16 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 #, fuzzy msgid "Wheel Format" msgstr "Formato de archivo" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -4137,22 +4137,22 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 #, fuzzy msgid "Wheel Project" msgstr "Proyecto" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -4307,7 +4307,7 @@ msgstr "Descripción" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "Ejemplos" @@ -4665,17 +4665,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4990,7 +5001,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5361,7 +5372,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -7084,11 +7095,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -7127,7 +7139,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -7140,30 +7153,30 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 #, fuzzy msgid "Advanced example" msgstr "Por ejemplo:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -7175,66 +7188,66 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 #, fuzzy msgid "Expression examples" msgstr "Por ejemplo:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -7243,18 +7256,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -7263,11 +7276,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -7277,7 +7290,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -7286,11 +7299,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -7302,24 +7315,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -7327,17 +7340,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -7348,11 +7361,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -7360,14 +7373,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7996,12 +8009,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8708,17 +8715,17 @@ msgstr "Utilización de paquetes instalados" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8726,34 +8733,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8761,42 +8768,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8805,18 +8824,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -9147,7 +9160,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9765,41 +9778,45 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 #, fuzzy msgid "Building distributions" msgstr "Distribución Construida" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9807,25 +9824,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9833,45 +9850,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9882,36 +9899,36 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 #, fuzzy msgid ":ref:`Flit`," msgstr ":ref:`pip`" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 #, fuzzy msgid ":ref:`Hatch`," msgstr ":ref:`pip`" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 #, fuzzy msgid ":ref:`PDM`," msgstr ":ref:`pip`" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 #, fuzzy msgid ":ref:`Pipenv`," msgstr ":ref:`pip`" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 #, fuzzy msgid ":ref:`Poetry`," msgstr ":ref:`pip`" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -10113,9 +10130,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -10142,9 +10159,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -10177,7 +10194,7 @@ msgid "Dependencies and requirements" msgstr "Archivos de requisitos" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -10207,8 +10224,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -10261,7 +10278,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -10272,8 +10289,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -10285,8 +10302,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -10320,7 +10337,7 @@ msgid "``license`` and ``license-files``" msgstr "Dependencias externas" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -10396,8 +10413,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10427,91 +10444,91 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 #, fuzzy msgid "``license-files``" msgstr "Dependencias externas" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10520,26 +10537,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10547,28 +10564,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10576,33 +10593,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "Ejemplo completo" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13666,90 +13683,86 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 #, fuzzy #| msgid "Project name" msgid "Subdirectory name" msgstr "Nombre de proyecto" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 #, fuzzy msgid "``licenses``" msgstr "Dependencias externas" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 #, fuzzy msgid "``license_files``" msgstr "Dependencias externas" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13758,116 +13771,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13877,51 +13819,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13929,7 +13831,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13937,18 +13839,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13957,7 +13859,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13968,7 +13870,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13986,7 +13888,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13995,7 +13897,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -14007,26 +13909,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -14034,24 +13936,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14825,11 +14731,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16674,17 +16580,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18701,7 +18613,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 #, fuzzy msgid "Recommendations" msgstr "Recomendaciones de herramientas" @@ -21081,96 +20993,108 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +#, fuzzy +#| msgid "The :file:`.pypirc` file" +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "El archivo :file:`.pypirc`" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" "El formato (definido originalmente por el paquete :ref:`distutils`) es:" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "Configuraciones habituales" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "Uso de una ficha de PyPI" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "Uso de otro índice de paquetes" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -21193,10 +21117,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -21247,7 +21167,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -21255,24 +21175,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -21282,121 +21202,121 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 #, fuzzy msgid "``dependencies``" msgstr "Dependencias externas" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 #, fuzzy msgid "``maintainers``" msgstr "Responsable" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 #, fuzzy msgid "``optional-dependencies``" msgstr "Dependencias externas" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." @@ -21404,22 +21324,22 @@ msgstr "" "La descripción resumida del proyecto en una línea. Las herramientas PUEDEN " "producir un error si esto incluye varias líneas." -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -21433,7 +21353,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -21442,7 +21362,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -21454,30 +21374,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -21486,23 +21406,23 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 #, fuzzy #| msgid "PyPA specifications" msgid "Legacy specification" msgstr "Especificaciones de PyPA" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -21512,26 +21432,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21540,40 +21460,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21582,11 +21502,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21616,56 +21536,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21673,38 +21593,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21712,14 +21632,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21727,7 +21647,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21735,24 +21655,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21760,7 +21680,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21771,13 +21691,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21786,7 +21706,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21801,39 +21721,39 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 #, fuzzy msgid "Examples:" msgstr "Ejemplos" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21843,7 +21763,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21851,7 +21771,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21859,22 +21779,22 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 #, fuzzy msgid "Example:" msgstr "Ejemplos" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21882,19 +21802,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21903,20 +21823,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21924,18 +21844,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21943,7 +21863,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21951,32 +21871,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22825,7 +22745,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22864,7 +22784,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -23086,14 +23006,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 #, fuzzy msgid "As an example:" msgstr "Por ejemplo:" @@ -23128,7 +23048,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -23136,45 +23056,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -23182,7 +23102,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -23191,23 +23111,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -23216,14 +23136,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -23233,7 +23153,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -23241,14 +23161,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -23258,45 +23178,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -23305,7 +23225,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -23315,17 +23235,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -23333,7 +23253,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -23342,11 +23262,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -23354,11 +23274,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -23422,12 +23342,12 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 #, fuzzy msgid "Version + Format Selection" msgstr "Versión" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -23436,65 +23356,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -23502,7 +23422,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -23513,7 +23433,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -23522,33 +23442,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23558,7 +23478,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23568,7 +23488,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23576,7 +23496,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23587,22 +23507,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23611,25 +23531,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23637,13 +23557,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23653,19 +23573,19 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 #, fuzzy msgid "Endpoint Configuration" msgstr "Configuraciones habituales" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23673,7 +23593,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23683,7 +23603,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23691,7 +23611,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23699,7 +23619,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23708,18 +23628,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23727,13 +23647,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23742,23 +23662,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23767,79 +23687,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -24118,7 +24038,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24648,12 +24568,34 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 #, fuzzy msgid "Normalization" msgstr "Traducciones" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24661,23 +24603,23 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 #, fuzzy msgid "Integer Normalization" msgstr "Traducciones" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24686,11 +24628,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24700,11 +24642,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24714,11 +24656,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24726,11 +24668,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24741,11 +24683,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24753,11 +24695,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24765,11 +24707,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24779,11 +24721,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24791,11 +24733,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24803,11 +24745,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24815,11 +24757,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24828,11 +24770,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24841,11 +24783,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24855,7 +24797,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24863,69 +24805,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24933,48 +24875,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24985,7 +24927,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24995,17 +24937,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -25014,14 +24956,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -25032,7 +24974,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -25040,30 +24982,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -25071,30 +25013,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -25102,60 +25044,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -25164,80 +25106,80 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 #, fuzzy msgid "Version matching" msgstr "Versión" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -25246,7 +25188,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -25254,7 +25196,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -25264,21 +25206,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -25286,7 +25228,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -25295,7 +25237,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -25305,14 +25247,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -25321,29 +25263,29 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 #, fuzzy msgid "Version exclusion" msgstr "Versión" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -25352,27 +25294,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -25382,7 +25324,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -25392,13 +25334,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25618,7 +25562,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25626,7 +25570,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25637,16 +25581,16 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 #, fuzzy msgid "Remote URL examples::" msgstr "Por ejemplo::" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25654,7 +25598,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25662,7 +25606,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25674,43 +25618,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25719,29 +25663,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 #, fuzzy msgid "Python Virtual Environments" @@ -27121,7 +27073,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -27160,11 +27112,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/fa/LC_MESSAGES/messages.po b/locales/fa/LC_MESSAGES/messages.po index dc5d2a00c..5e032a89d 100644 --- a/locales/fa/LC_MESSAGES/messages.po +++ b/locales/fa/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2023-02-15 07:52+0000\n" "Last-Translator: Arsalan Dehghani \n" "Language-Team: Persian `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2790,43 +2792,43 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 #, fuzzy msgid "Calendar versioning" msgstr "ترجمه‌ها" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 #, fuzzy msgid "Other schemes" msgstr "ترجمه‌ها" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2835,7 +2837,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2844,12 +2846,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2859,7 +2861,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2871,11 +2873,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2883,20 +2885,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2904,7 +2906,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2915,7 +2917,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2924,13 +2926,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3213,11 +3215,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3418,9 +3420,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3593,54 +3595,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3648,11 +3650,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3661,11 +3663,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3673,26 +3675,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3704,38 +3706,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3744,21 +3746,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3767,11 +3769,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3779,15 +3781,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3795,21 +3797,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3962,7 +3964,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4318,17 +4320,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4644,7 +4657,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5016,7 +5029,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6708,11 +6721,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6748,7 +6762,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6761,29 +6776,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6795,65 +6810,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6862,18 +6877,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6882,11 +6897,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6896,7 +6911,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6905,11 +6920,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6921,24 +6936,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6946,17 +6961,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6967,11 +6982,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6979,14 +6994,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7613,12 +7628,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8324,17 +8333,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8342,34 +8351,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8377,42 +8386,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8421,18 +8442,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8764,7 +8779,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9382,42 +9397,46 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 #, fuzzy #| msgid "Reviewing new contributions" msgid "Building distributions" msgstr "بررسی مشارکت‌های جدید" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9425,25 +9444,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9451,45 +9470,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9500,31 +9519,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9725,9 +9744,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9754,9 +9773,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9787,7 +9806,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9817,8 +9836,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9870,7 +9889,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9881,8 +9900,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9894,8 +9913,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9928,7 +9947,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -10002,8 +10021,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10033,90 +10052,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10125,26 +10144,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10152,28 +10171,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10181,33 +10200,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13258,86 +13277,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13346,116 +13361,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13465,51 +13409,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13517,7 +13421,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13525,18 +13429,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13545,7 +13449,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13556,7 +13460,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13574,7 +13478,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13583,7 +13487,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13595,26 +13499,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13622,24 +13526,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14400,11 +14308,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16237,17 +16145,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18257,7 +18171,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20610,95 +20524,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20721,10 +20645,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20775,7 +20695,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20783,24 +20703,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20810,139 +20730,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20956,7 +20876,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20965,7 +20885,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20977,30 +20897,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -21009,23 +20929,23 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 #, fuzzy #| msgid "Specifications" msgid "Legacy specification" msgstr "مشخصات" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -21035,26 +20955,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21063,40 +20983,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21105,11 +21025,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21139,56 +21059,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21196,38 +21116,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21235,14 +21155,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21250,7 +21170,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21258,24 +21178,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21283,7 +21203,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21294,13 +21214,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21309,7 +21229,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21324,38 +21244,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21365,7 +21285,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21373,7 +21293,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21381,21 +21301,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21403,19 +21323,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21424,20 +21344,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21445,18 +21365,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21464,7 +21384,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21472,32 +21392,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22323,7 +22243,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22362,7 +22282,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22583,14 +22503,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22624,7 +22544,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22632,45 +22552,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22678,7 +22598,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22687,23 +22607,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22712,14 +22632,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22729,7 +22649,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22737,14 +22657,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22754,45 +22674,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22801,7 +22721,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22811,17 +22731,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22829,7 +22749,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22838,11 +22758,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22850,11 +22770,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22917,12 +22837,12 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 #, fuzzy msgid "Version + Format Selection" msgstr "ترجمه‌ها" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22931,65 +22851,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22997,7 +22917,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -23008,7 +22928,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -23017,33 +22937,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23053,7 +22973,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23063,7 +22983,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23071,7 +22991,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23082,22 +23002,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23106,25 +23026,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23132,13 +23052,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23148,18 +23068,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23167,7 +23087,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23177,7 +23097,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23185,7 +23105,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23193,7 +23113,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23202,18 +23122,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23221,13 +23141,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23236,23 +23156,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23261,79 +23181,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23611,7 +23531,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24142,12 +24062,34 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 #, fuzzy msgid "Normalization" msgstr "ترجمه‌ها" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24155,23 +24097,23 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 #, fuzzy msgid "Integer Normalization" msgstr "ترجمه‌ها" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24180,11 +24122,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24194,11 +24136,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24208,11 +24150,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24220,11 +24162,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24235,11 +24177,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24247,11 +24189,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24259,11 +24201,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24273,11 +24215,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24285,11 +24227,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24297,11 +24239,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24309,11 +24251,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24322,11 +24264,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24335,11 +24277,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24349,7 +24291,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24357,69 +24299,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24427,48 +24369,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24479,7 +24421,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24489,17 +24431,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24508,14 +24450,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24526,7 +24468,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24534,30 +24476,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24565,30 +24507,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24596,60 +24538,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24658,79 +24600,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24739,7 +24681,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24747,7 +24689,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24757,21 +24699,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24779,7 +24721,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24788,7 +24730,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24798,14 +24740,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24814,29 +24756,29 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 #, fuzzy msgid "Version exclusion" msgstr "ترجمه‌ها" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24845,27 +24787,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24875,7 +24817,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24885,13 +24827,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25111,7 +25055,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25119,7 +25063,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25130,15 +25074,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25146,7 +25090,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25154,7 +25098,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25166,43 +25110,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25211,29 +25155,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26601,7 +26553,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26640,11 +26592,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/fil/LC_MESSAGES/messages.po b/locales/fil/LC_MESSAGES/messages.po index 2ba90cead..e851b4f09 100644 --- a/locales/fil/LC_MESSAGES/messages.po +++ b/locales/fil/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2022-11-19 08:28+0000\n" "Last-Translator: RedFurrFox \n" "Language-Team: Filipino `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2787,41 +2789,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2830,7 +2832,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2839,12 +2841,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2854,7 +2856,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2866,11 +2868,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2878,20 +2880,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2899,7 +2901,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2910,7 +2912,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2919,13 +2921,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3208,11 +3210,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3411,9 +3413,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3586,54 +3588,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3641,11 +3643,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3654,11 +3656,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3666,26 +3668,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3697,38 +3699,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3737,21 +3739,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3760,11 +3762,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3772,15 +3774,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3788,21 +3790,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3955,7 +3957,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4311,17 +4313,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4633,7 +4646,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5004,7 +5017,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6692,11 +6705,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6732,7 +6746,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6745,29 +6760,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6779,65 +6794,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6846,18 +6861,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6866,11 +6881,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6880,7 +6895,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6889,11 +6904,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6905,24 +6920,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6930,17 +6945,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6951,11 +6966,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6963,14 +6978,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7597,12 +7612,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8308,17 +8317,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8326,34 +8335,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8361,42 +8370,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8405,18 +8426,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8746,7 +8761,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9362,40 +9377,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9403,25 +9422,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9429,45 +9448,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9478,31 +9497,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9703,9 +9722,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9732,9 +9751,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9765,7 +9784,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9795,8 +9814,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9848,7 +9867,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9859,8 +9878,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9872,8 +9891,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9906,7 +9925,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -9980,8 +9999,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10011,90 +10030,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10103,26 +10122,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10130,28 +10149,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10159,33 +10178,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13236,86 +13255,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13324,116 +13339,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13443,51 +13387,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13495,7 +13399,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13503,18 +13407,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13523,7 +13427,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13534,7 +13438,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13552,7 +13456,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13561,7 +13465,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13573,26 +13477,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13600,24 +13504,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14371,11 +14279,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16207,17 +16115,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18225,7 +18139,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20568,95 +20482,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20679,10 +20603,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20733,7 +20653,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20741,24 +20661,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20768,139 +20688,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20914,7 +20834,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20923,7 +20843,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20935,30 +20855,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20967,21 +20887,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -20991,26 +20911,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21019,40 +20939,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21061,11 +20981,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21095,56 +21015,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21152,38 +21072,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21191,14 +21111,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21206,7 +21126,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21214,24 +21134,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21239,7 +21159,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21250,13 +21170,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21265,7 +21185,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21280,38 +21200,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21321,7 +21241,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21329,7 +21249,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21337,21 +21257,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21359,19 +21279,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21380,20 +21300,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21401,18 +21321,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21420,7 +21340,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21428,32 +21348,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22277,7 +22197,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22316,7 +22236,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22536,14 +22456,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22577,7 +22497,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22585,45 +22505,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22631,7 +22551,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22640,23 +22560,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22665,14 +22585,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22682,7 +22602,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22690,14 +22610,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22707,45 +22627,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22754,7 +22674,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22764,17 +22684,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22782,7 +22702,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22791,11 +22711,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22803,11 +22723,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22870,11 +22790,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22883,65 +22803,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22949,7 +22869,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22960,7 +22880,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22969,33 +22889,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23005,7 +22925,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23015,7 +22935,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23023,7 +22943,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23034,22 +22954,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23058,25 +22978,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23084,13 +23004,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23100,18 +23020,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23119,7 +23039,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23129,7 +23049,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23137,7 +23057,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23145,7 +23065,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23154,18 +23074,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23173,13 +23093,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23188,23 +23108,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23213,79 +23133,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23563,7 +23483,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24090,11 +24010,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24102,22 +24044,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24126,11 +24068,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24140,11 +24082,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24154,11 +24096,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24166,11 +24108,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24181,11 +24123,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24193,11 +24135,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24205,11 +24147,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24219,11 +24161,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24231,11 +24173,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24243,11 +24185,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24255,11 +24197,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24268,11 +24210,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24281,11 +24223,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24295,7 +24237,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24303,69 +24245,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24373,48 +24315,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24425,7 +24367,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24435,17 +24377,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24454,14 +24396,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24472,7 +24414,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24480,30 +24422,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24511,30 +24453,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24542,60 +24484,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24604,79 +24546,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24685,7 +24627,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24693,7 +24635,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24703,21 +24645,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24725,7 +24667,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24734,7 +24676,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24744,14 +24686,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24760,28 +24702,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24790,27 +24732,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24820,7 +24762,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24830,13 +24772,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25056,7 +25000,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25064,7 +25008,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25075,15 +25019,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25091,7 +25035,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25099,7 +25043,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25111,43 +25055,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25156,29 +25100,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26544,7 +26496,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26583,11 +26535,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/fr/LC_MESSAGES/messages.po b/locales/fr/LC_MESSAGES/messages.po index d10c537fb..836200722 100644 --- a/locales/fr/LC_MESSAGES/messages.po +++ b/locales/fr/LC_MESSAGES/messages.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) 2013–2020, PyPA # This file is distributed under the same license as the Python Packaging User Guide package. -# Nathan , 2021, 2022. +# Nathan , 2021, 2022, 2026. # Abdur-Rahmaan Janhangeer , 2021. # Matthieu Darbois , 2022. # Rafael Fontenelle , 2024. @@ -12,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" -"PO-Revision-Date: 2025-02-17 11:31+0000\n" -"Last-Translator: Bruno Alla \n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" +"PO-Revision-Date: 2026-01-20 00:01+0000\n" +"Last-Translator: Nathan \n" "Language-Team: French \n" "Language: fr\n" @@ -22,7 +22,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.10.1-dev\n" +"X-Generator: Weblate 5.16-dev\n" #: ../source/contribute.rst:5 msgid "Contribute to this guide" @@ -53,8 +53,6 @@ msgid "Writing new content" msgstr "Rédiger du nouveau contenu" #: ../source/contribute.rst:14 -#, fuzzy -#| msgid "Translate the guide" msgid "Translating the guide" msgstr "Traduire le guide" @@ -2814,7 +2812,7 @@ msgid "A simple version with just one component: ``42``" msgstr "" #: ../source/discussions/versioning.rst:30 -msgid "A version with an epoch: ``1!1.0``" +msgid "A version with an epoch (discouraged): ``1!1.0``" msgstr "" #: ../source/discussions/versioning.rst:32 @@ -2845,20 +2843,22 @@ msgstr "" #: ../source/discussions/versioning.rst:49 msgid "" -"Finally, epochs, a rarely used feature, serve to fix the sorting order when " -"changing the versioning scheme. For example, if a project is using calendar " -"versioning, with versions like 23.12, and switches to semantic versioning, " -"with versions like 1.0, the comparison between 1.0 and 23.12 will go the " -"wrong way. To correct this, the new version numbers should have an explicit " -"epoch, as in \"1!1.0\", in order to be treated as more recent than the old " -"version numbers." +"Finally, epochs were intended to fix the sorting order when changing the " +"versioning scheme. For example, if a project was using calendar versioning, " +"with versions like ``23.12``, and switched to semantic versioning, with " +"versions like ``1.0``, the comparison between ``1.0`` and ``23.12`` would go " +"the wrong way. To correct this, the new version numbers would have an " +"explicit epoch, as in ``1!1.0``, in order to be treated as more recent than " +"the old version numbers. However, this is discouraged, and it is preferable " +"to use a higher version number that is unlikely to cause user confusion, " +"such as ``100.0``." msgstr "" -#: ../source/discussions/versioning.rst:59 +#: ../source/discussions/versioning.rst:60 msgid "Semantic versioning vs. calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:61 +#: ../source/discussions/versioning.rst:62 msgid "" "A versioning scheme is a formalized way to interpret the segments of a " "version number, and to decide which should be the next version number for a " @@ -2866,7 +2866,7 @@ msgid "" "Python packages, semantic versioning and calendar versioning." msgstr "" -#: ../source/discussions/versioning.rst:68 +#: ../source/discussions/versioning.rst:69 msgid "" "The decision which version number to choose is up to a project's maintainer. " "This effectively means that version bumps reflect the maintainer's view. " @@ -2874,7 +2874,7 @@ msgid "" "versioning scheme promises them." msgstr "" -#: ../source/discussions/versioning.rst:74 +#: ../source/discussions/versioning.rst:75 msgid "" "There are known exceptions for selecting the next version number. The " "maintainers may consciously choose to break the assumption that the last " @@ -2883,31 +2883,31 @@ msgid "" "come in patch versions but contain breaking changes inevitably." msgstr "" -#: ../source/discussions/versioning.rst:84 -#: ../source/specifications/version-specifiers.rst:726 +#: ../source/discussions/versioning.rst:85 +#: ../source/specifications/version-specifiers.rst:741 msgid "Semantic versioning" msgstr "" -#: ../source/discussions/versioning.rst:86 +#: ../source/discussions/versioning.rst:87 msgid "" "The idea of *semantic versioning* (or SemVer) is to use 3-part version " "numbers, *major.minor.patch*, where the project author increments:" msgstr "" -#: ../source/discussions/versioning.rst:89 +#: ../source/discussions/versioning.rst:90 msgid "*major* when they make incompatible API changes," msgstr "" -#: ../source/discussions/versioning.rst:90 +#: ../source/discussions/versioning.rst:91 msgid "" "*minor* when they add functionality in a backwards-compatible manner, and" msgstr "" -#: ../source/discussions/versioning.rst:91 +#: ../source/discussions/versioning.rst:92 msgid "*patch*, when they make backwards-compatible bug fixes." msgstr "" -#: ../source/discussions/versioning.rst:93 +#: ../source/discussions/versioning.rst:94 msgid "" "A majority of Python projects use a scheme that resembles semantic " "versioning. However, most projects, especially larger ones, do not strictly " @@ -2919,7 +2919,7 @@ msgid "" "used to signal significant but backwards-compatible new features." msgstr "" -#: ../source/discussions/versioning.rst:103 +#: ../source/discussions/versioning.rst:104 msgid "" "For those projects that do use strict semantic versioning, this approach " "allows users to make use of :ref:`compatible release version specifiers " @@ -2931,13 +2931,13 @@ msgid "" "and allows a later release with same X and Y but higher Z." msgstr "" -#: ../source/discussions/versioning.rst:112 +#: ../source/discussions/versioning.rst:113 msgid "" "Python projects adopting semantic versioning should abide by clauses 1-8 of " "the `Semantic Versioning 2.0.0 specification `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2948,43 +2948,43 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 #, fuzzy msgid "Calendar versioning" msgstr "Traductions" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 #, fuzzy msgid "Other schemes" msgstr "Traductions" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2993,7 +2993,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -3002,12 +3002,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -3017,7 +3017,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -3029,11 +3029,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -3041,20 +3041,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -3062,7 +3062,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -3073,7 +3073,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -3082,13 +3082,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3373,11 +3373,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3580,9 +3580,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3758,17 +3758,17 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "Index des Paquets Python (PyPI)" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " @@ -3778,31 +3778,31 @@ msgstr "" "par défaut pour la communauté Python. Il est ouvert à tous les développeurs " "Python pour qu'ils utilisent et distribuent leurs paquets." -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "pypi.org" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "pyproject.toml" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "Version" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." @@ -3810,7 +3810,7 @@ msgstr "" "Une image d'un :term:`Projet` à un certain moment dans le temps, défini par " "un numéro de version." -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3818,11 +3818,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "Dépendance" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3831,11 +3831,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3843,27 +3843,27 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 #, fuzzy msgid "Root License Directory" msgstr "Nom du projet" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3875,38 +3875,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "setup.py" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "setup.cfg" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3915,11 +3915,11 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "Paquet système" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." @@ -3927,11 +3927,11 @@ msgstr "" "Un paquet fourni dans un format natif au système d'exploitation, par ex. un " "fichier rpm ou dpkg." -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3940,11 +3940,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "Environnement virtuel" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3952,15 +3952,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "Wheel" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3968,22 +3968,22 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 #, fuzzy msgid "Wheel Project" msgstr "Projet" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -4136,7 +4136,7 @@ msgstr "Description" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "Exemples" @@ -4512,17 +4512,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 +msgid "``ClickPy``" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:339 +msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 msgid "References" msgstr "Références" -#: ../source/guides/analyzing-pypi-package-downloads.rst:339 +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4838,7 +4849,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5211,7 +5222,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6914,11 +6925,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6957,7 +6969,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6970,30 +6983,30 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 #, fuzzy msgid "Advanced example" msgstr "Exemples" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -7005,66 +7018,66 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 #, fuzzy msgid "Expression examples" msgstr "Exemples" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -7073,18 +7086,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -7093,11 +7106,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -7107,7 +7120,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -7116,11 +7129,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -7132,24 +7145,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -7157,17 +7170,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -7178,11 +7191,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -7190,14 +7203,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7833,12 +7846,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8546,17 +8553,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8564,34 +8571,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8599,42 +8606,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8643,18 +8662,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8987,7 +9000,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9605,41 +9618,45 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 #, fuzzy msgid "Building distributions" msgstr "Distribution compilée" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9647,25 +9664,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9673,7 +9690,7 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" @@ -9681,39 +9698,39 @@ msgstr "" "Depuis novembre 2024, PyPI supporte les plateformes suivantes comme " "fournisseurs Trusted Publishing :" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "GitLab CI/CD (sur ``https://gitlab.com``)" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9724,31 +9741,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9950,9 +9967,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "``name``" @@ -9979,9 +9996,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -10014,7 +10031,7 @@ msgid "Dependencies and requirements" msgstr "Fichiers requirements vs install_requires" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "``dependencies`` / ``optional-dependencies``" @@ -10044,8 +10061,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "``requires-python``" @@ -10098,7 +10115,7 @@ msgid "About your project" msgstr "Configurer votre projet" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "``authors`` / ``maintainers``" @@ -10109,8 +10126,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "``description``" @@ -10122,8 +10139,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "``readme``" @@ -10158,7 +10175,7 @@ msgid "``license`` and ``license-files``" msgstr "``license``" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -10240,8 +10257,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "``license``" @@ -10271,86 +10288,86 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 #, fuzzy #| msgid "``license``" msgid "``license-files``" msgstr "``license``" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "``keywords``" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "``classifiers``" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 #, fuzzy msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " @@ -10359,7 +10376,7 @@ msgstr "" "Renseignez une liste de classifieurs qui catégorisent votre projet. Pour la " "liste complète, consultez https://pypi.org/classifiers/." -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10368,26 +10385,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "``urls``" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10395,28 +10412,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10424,34 +10441,34 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 #, fuzzy msgid "A full example" msgstr "Exemples" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13622,94 +13639,90 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 #, fuzzy #| msgid "Project name" msgid "Subdirectory name" msgstr "Nom du projet" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 #, fuzzy #| msgid "``license``" msgid "``licenses``" msgstr "``license``" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 #, fuzzy #| msgid "``license``" msgid "``license_files``" msgstr "``license``" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 #, fuzzy #| msgid "``LIB``" msgid "``LICENSES``" msgstr "``LIB``" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13718,119 +13731,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "Voir" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "https://datatracker.ietf.org/doc/html/rfc7515" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "https://datatracker.ietf.org/doc/html/rfc7517" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "Foire aux questions" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13840,51 +13779,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13892,7 +13791,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13900,18 +13799,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13920,7 +13819,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13931,7 +13830,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13949,7 +13848,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13958,7 +13857,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13970,26 +13869,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "Historique" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13997,7 +13896,7 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 #, fuzzy #| msgid "March 2001: Core metadata 1.0 was approved through :pep:`241`." @@ -14008,17 +13907,21 @@ msgstr "" "Mars 2001 : Les métadonnées de base 1.0 ont été approuvées grâce " "au :pep:`241`." -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "Annexe" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14812,11 +14715,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16680,17 +16583,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18712,7 +18621,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -21211,95 +21120,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -21323,10 +21242,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -21377,7 +21292,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -21385,18 +21300,18 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "Déclarer les métadonnées d'un projet : la table ``[project]``" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." @@ -21404,7 +21319,7 @@ msgstr "" "La table ``[project]`` spécifie les :ref:`métadonnées de base ` du projet." -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -21414,142 +21329,142 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" "La liste complète des clés autorisées dans la table ``[project]`` est :" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "``authors``" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "``dependencies``" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "``dynamic``" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "``entry-points``" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "``gui-scripts``" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 #, fuzzy #| msgid "``name``" msgid "``import-names``" msgstr "``name``" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "``maintainers``" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "``optional-dependencies``" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -21563,7 +21478,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -21572,7 +21487,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -21584,30 +21499,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -21616,23 +21531,23 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 #, fuzzy #| msgid "Specification" msgid "Legacy specification" msgstr "Spécification" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -21642,26 +21557,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21670,40 +21585,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21712,11 +21627,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21746,56 +21661,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21803,38 +21718,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21842,14 +21757,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21857,7 +21772,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21865,24 +21780,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21890,7 +21805,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21901,13 +21816,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21916,7 +21831,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21931,39 +21846,39 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 #, fuzzy msgid "Examples:" msgstr "Exemples" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21973,7 +21888,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21981,7 +21896,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21989,23 +21904,23 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 #, fuzzy #| msgid "Example::" msgid "Example:" msgstr "Exemple ::" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -22013,19 +21928,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -22034,20 +21949,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -22055,18 +21970,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "Configuration arbitraire d'outils : la table ``[tool]``" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -22074,7 +21989,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -22082,32 +21997,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22945,7 +22860,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22984,7 +22899,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -23205,14 +23120,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 #, fuzzy msgid "As an example:" msgstr "Exemples" @@ -23247,7 +23162,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -23255,45 +23170,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -23301,7 +23216,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -23310,23 +23225,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -23335,14 +23250,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -23352,7 +23267,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -23360,14 +23275,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -23377,45 +23292,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -23424,7 +23339,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -23434,17 +23349,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -23452,7 +23367,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -23461,11 +23376,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -23473,11 +23388,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -23541,12 +23456,12 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 #, fuzzy msgid "Version + Format Selection" msgstr "Traductions" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -23555,65 +23470,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -23621,7 +23536,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -23632,7 +23547,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -23641,33 +23556,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23677,7 +23592,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23687,7 +23602,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23695,7 +23610,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23706,22 +23621,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23730,25 +23645,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23756,13 +23671,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23772,18 +23687,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23791,7 +23706,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23801,7 +23716,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23809,7 +23724,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23817,7 +23732,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23826,18 +23741,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23845,13 +23760,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23860,23 +23775,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23885,79 +23800,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -24239,7 +24154,7 @@ msgstr "" "au :pep:`241`." #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24771,12 +24686,34 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 #, fuzzy msgid "Normalization" msgstr "Traductions" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24784,23 +24721,23 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 #, fuzzy msgid "Integer Normalization" msgstr "Traductions" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24809,11 +24746,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24823,11 +24760,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24837,11 +24774,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24849,11 +24786,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24864,11 +24801,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24876,11 +24813,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24888,11 +24825,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24902,11 +24839,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24914,11 +24851,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24926,11 +24863,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24938,11 +24875,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24951,11 +24888,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24964,11 +24901,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24978,7 +24915,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24986,69 +24923,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -25056,48 +24993,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -25108,7 +25045,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -25118,17 +25055,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -25137,14 +25074,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -25155,7 +25092,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -25163,30 +25100,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -25194,30 +25131,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -25225,60 +25162,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -25287,79 +25224,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -25368,7 +25305,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -25376,7 +25313,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -25386,21 +25323,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -25408,7 +25345,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -25417,7 +25354,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -25427,14 +25364,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -25443,29 +25380,29 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 #, fuzzy msgid "Version exclusion" msgstr "Traductions" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -25474,27 +25411,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -25504,7 +25441,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -25514,13 +25451,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25741,7 +25680,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25749,7 +25688,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25760,16 +25699,16 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 #, fuzzy msgid "Remote URL examples::" msgstr "Exemples" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25777,7 +25716,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25785,7 +25724,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25797,43 +25736,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25842,29 +25781,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 #, fuzzy msgid "Python Virtual Environments" @@ -27237,7 +27184,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -27276,11 +27223,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 @@ -27534,6 +27482,27 @@ msgid "" "the file is empty)." msgstr "" +#~ msgid "See" +#~ msgstr "Voir" + +#~ msgid "https://datatracker.ietf.org/doc/html/rfc7515" +#~ msgstr "https://datatracker.ietf.org/doc/html/rfc7515" + +#~ msgid "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" +#~ "serialization-01" +#~ msgstr "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" +#~ "serialization-01" + +#~ msgid "https://datatracker.ietf.org/doc/html/rfc7517" +#~ msgstr "https://datatracker.ietf.org/doc/html/rfc7517" + +#~ msgid "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" +#~ msgstr "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" + #, fuzzy #~ msgid "**Inspiration**: :ref:` pyproject-tool-table`" #~ msgstr "pyproject.toml" diff --git a/locales/frc/LC_MESSAGES/messages.po b/locales/frc/LC_MESSAGES/messages.po index c964edf0a..c78eb9324 100644 --- a/locales/frc/LC_MESSAGES/messages.po +++ b/locales/frc/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -2647,7 +2647,7 @@ msgid "A simple version with just one component: ``42``" msgstr "" #: ../source/discussions/versioning.rst:30 -msgid "A version with an epoch: ``1!1.0``" +msgid "A version with an epoch (discouraged): ``1!1.0``" msgstr "" #: ../source/discussions/versioning.rst:32 @@ -2678,20 +2678,22 @@ msgstr "" #: ../source/discussions/versioning.rst:49 msgid "" -"Finally, epochs, a rarely used feature, serve to fix the sorting order when " -"changing the versioning scheme. For example, if a project is using calendar " -"versioning, with versions like 23.12, and switches to semantic versioning, " -"with versions like 1.0, the comparison between 1.0 and 23.12 will go the " -"wrong way. To correct this, the new version numbers should have an explicit " -"epoch, as in \"1!1.0\", in order to be treated as more recent than the old " -"version numbers." +"Finally, epochs were intended to fix the sorting order when changing the " +"versioning scheme. For example, if a project was using calendar versioning, " +"with versions like ``23.12``, and switched to semantic versioning, with " +"versions like ``1.0``, the comparison between ``1.0`` and ``23.12`` would go " +"the wrong way. To correct this, the new version numbers would have an " +"explicit epoch, as in ``1!1.0``, in order to be treated as more recent than " +"the old version numbers. However, this is discouraged, and it is preferable " +"to use a higher version number that is unlikely to cause user confusion, " +"such as ``100.0``." msgstr "" -#: ../source/discussions/versioning.rst:59 +#: ../source/discussions/versioning.rst:60 msgid "Semantic versioning vs. calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:61 +#: ../source/discussions/versioning.rst:62 msgid "" "A versioning scheme is a formalized way to interpret the segments of a " "version number, and to decide which should be the next version number for a " @@ -2699,7 +2701,7 @@ msgid "" "Python packages, semantic versioning and calendar versioning." msgstr "" -#: ../source/discussions/versioning.rst:68 +#: ../source/discussions/versioning.rst:69 msgid "" "The decision which version number to choose is up to a project's maintainer. " "This effectively means that version bumps reflect the maintainer's view. " @@ -2707,7 +2709,7 @@ msgid "" "versioning scheme promises them." msgstr "" -#: ../source/discussions/versioning.rst:74 +#: ../source/discussions/versioning.rst:75 msgid "" "There are known exceptions for selecting the next version number. The " "maintainers may consciously choose to break the assumption that the last " @@ -2716,31 +2718,31 @@ msgid "" "come in patch versions but contain breaking changes inevitably." msgstr "" -#: ../source/discussions/versioning.rst:84 -#: ../source/specifications/version-specifiers.rst:726 +#: ../source/discussions/versioning.rst:85 +#: ../source/specifications/version-specifiers.rst:741 msgid "Semantic versioning" msgstr "" -#: ../source/discussions/versioning.rst:86 +#: ../source/discussions/versioning.rst:87 msgid "" "The idea of *semantic versioning* (or SemVer) is to use 3-part version " "numbers, *major.minor.patch*, where the project author increments:" msgstr "" -#: ../source/discussions/versioning.rst:89 +#: ../source/discussions/versioning.rst:90 msgid "*major* when they make incompatible API changes," msgstr "" -#: ../source/discussions/versioning.rst:90 +#: ../source/discussions/versioning.rst:91 msgid "" "*minor* when they add functionality in a backwards-compatible manner, and" msgstr "" -#: ../source/discussions/versioning.rst:91 +#: ../source/discussions/versioning.rst:92 msgid "*patch*, when they make backwards-compatible bug fixes." msgstr "" -#: ../source/discussions/versioning.rst:93 +#: ../source/discussions/versioning.rst:94 msgid "" "A majority of Python projects use a scheme that resembles semantic " "versioning. However, most projects, especially larger ones, do not strictly " @@ -2752,7 +2754,7 @@ msgid "" "used to signal significant but backwards-compatible new features." msgstr "" -#: ../source/discussions/versioning.rst:103 +#: ../source/discussions/versioning.rst:104 msgid "" "For those projects that do use strict semantic versioning, this approach " "allows users to make use of :ref:`compatible release version specifiers " @@ -2764,13 +2766,13 @@ msgid "" "and allows a later release with same X and Y but higher Z." msgstr "" -#: ../source/discussions/versioning.rst:112 +#: ../source/discussions/versioning.rst:113 msgid "" "Python projects adopting semantic versioning should abide by clauses 1-8 of " "the `Semantic Versioning 2.0.0 specification `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2781,41 +2783,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2824,7 +2826,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2833,12 +2835,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2848,7 +2850,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2860,11 +2862,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2872,20 +2874,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2893,7 +2895,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2904,7 +2906,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2913,13 +2915,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3202,11 +3204,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3405,9 +3407,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3580,54 +3582,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3635,11 +3637,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3648,11 +3650,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3660,26 +3662,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3691,38 +3693,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3731,21 +3733,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3754,11 +3756,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3766,15 +3768,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3782,21 +3784,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3949,7 +3951,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4305,17 +4307,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4627,7 +4640,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -4998,7 +5011,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6686,11 +6699,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6726,7 +6740,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6739,29 +6754,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6773,65 +6788,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6840,18 +6855,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6860,11 +6875,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6874,7 +6889,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6883,11 +6898,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6899,24 +6914,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6924,17 +6939,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6945,11 +6960,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6957,14 +6972,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7591,12 +7606,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8302,17 +8311,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8320,34 +8329,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8355,42 +8364,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8399,18 +8420,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8740,7 +8755,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9356,40 +9371,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9397,25 +9416,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9423,45 +9442,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9472,31 +9491,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9697,9 +9716,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9726,9 +9745,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9759,7 +9778,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9789,8 +9808,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9842,7 +9861,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9853,8 +9872,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9866,8 +9885,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9900,7 +9919,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -9974,8 +9993,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10005,90 +10024,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10097,26 +10116,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10124,28 +10143,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10153,33 +10172,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13230,86 +13249,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13318,116 +13333,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13437,51 +13381,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13489,7 +13393,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13497,18 +13401,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13517,7 +13421,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13528,7 +13432,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13546,7 +13450,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13555,7 +13459,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13567,26 +13471,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13594,24 +13498,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14365,11 +14273,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16201,17 +16109,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18219,7 +18133,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20562,95 +20476,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20673,10 +20597,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20727,7 +20647,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20735,24 +20655,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20762,139 +20682,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20908,7 +20828,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20917,7 +20837,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20929,30 +20849,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20961,21 +20881,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -20985,26 +20905,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21013,40 +20933,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21055,11 +20975,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21089,56 +21009,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21146,38 +21066,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21185,14 +21105,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21200,7 +21120,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21208,24 +21128,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21233,7 +21153,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21244,13 +21164,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21259,7 +21179,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21274,38 +21194,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21315,7 +21235,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21323,7 +21243,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21331,21 +21251,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21353,19 +21273,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21374,20 +21294,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21395,18 +21315,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21414,7 +21334,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21422,32 +21342,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22271,7 +22191,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22310,7 +22230,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22530,14 +22450,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22571,7 +22491,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22579,45 +22499,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22625,7 +22545,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22634,23 +22554,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22659,14 +22579,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22676,7 +22596,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22684,14 +22604,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22701,45 +22621,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22748,7 +22668,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22758,17 +22678,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22776,7 +22696,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22785,11 +22705,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22797,11 +22717,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22864,11 +22784,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22877,65 +22797,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22943,7 +22863,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22954,7 +22874,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22963,33 +22883,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -22999,7 +22919,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23009,7 +22929,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23017,7 +22937,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23028,22 +22948,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23052,25 +22972,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23078,13 +22998,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23094,18 +23014,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23113,7 +23033,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23123,7 +23043,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23131,7 +23051,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23139,7 +23059,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23148,18 +23068,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23167,13 +23087,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23182,23 +23102,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23207,79 +23127,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23557,7 +23477,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24084,11 +24004,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24096,22 +24038,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24120,11 +24062,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24134,11 +24076,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24148,11 +24090,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24160,11 +24102,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24175,11 +24117,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24187,11 +24129,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24199,11 +24141,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24213,11 +24155,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24225,11 +24167,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24237,11 +24179,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24249,11 +24191,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24262,11 +24204,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24275,11 +24217,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24289,7 +24231,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24297,69 +24239,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24367,48 +24309,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24419,7 +24361,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24429,17 +24371,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24448,14 +24390,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24466,7 +24408,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24474,30 +24416,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24505,30 +24447,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24536,60 +24478,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24598,79 +24540,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24679,7 +24621,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24687,7 +24629,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24697,21 +24639,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24719,7 +24661,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24728,7 +24670,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24738,14 +24680,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24754,28 +24696,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24784,27 +24726,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24814,7 +24756,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24824,13 +24766,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25050,7 +24994,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25058,7 +25002,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25069,15 +25013,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25085,7 +25029,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25093,7 +25037,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25105,43 +25049,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25150,29 +25094,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26538,7 +26490,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26577,11 +26529,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/gl/LC_MESSAGES/messages.po b/locales/gl/LC_MESSAGES/messages.po index 8baf0c4d1..d8e81abc8 100644 --- a/locales/gl/LC_MESSAGES/messages.po +++ b/locales/gl/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -2647,7 +2647,7 @@ msgid "A simple version with just one component: ``42``" msgstr "" #: ../source/discussions/versioning.rst:30 -msgid "A version with an epoch: ``1!1.0``" +msgid "A version with an epoch (discouraged): ``1!1.0``" msgstr "" #: ../source/discussions/versioning.rst:32 @@ -2678,20 +2678,22 @@ msgstr "" #: ../source/discussions/versioning.rst:49 msgid "" -"Finally, epochs, a rarely used feature, serve to fix the sorting order when " -"changing the versioning scheme. For example, if a project is using calendar " -"versioning, with versions like 23.12, and switches to semantic versioning, " -"with versions like 1.0, the comparison between 1.0 and 23.12 will go the " -"wrong way. To correct this, the new version numbers should have an explicit " -"epoch, as in \"1!1.0\", in order to be treated as more recent than the old " -"version numbers." +"Finally, epochs were intended to fix the sorting order when changing the " +"versioning scheme. For example, if a project was using calendar versioning, " +"with versions like ``23.12``, and switched to semantic versioning, with " +"versions like ``1.0``, the comparison between ``1.0`` and ``23.12`` would go " +"the wrong way. To correct this, the new version numbers would have an " +"explicit epoch, as in ``1!1.0``, in order to be treated as more recent than " +"the old version numbers. However, this is discouraged, and it is preferable " +"to use a higher version number that is unlikely to cause user confusion, " +"such as ``100.0``." msgstr "" -#: ../source/discussions/versioning.rst:59 +#: ../source/discussions/versioning.rst:60 msgid "Semantic versioning vs. calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:61 +#: ../source/discussions/versioning.rst:62 msgid "" "A versioning scheme is a formalized way to interpret the segments of a " "version number, and to decide which should be the next version number for a " @@ -2699,7 +2701,7 @@ msgid "" "Python packages, semantic versioning and calendar versioning." msgstr "" -#: ../source/discussions/versioning.rst:68 +#: ../source/discussions/versioning.rst:69 msgid "" "The decision which version number to choose is up to a project's maintainer. " "This effectively means that version bumps reflect the maintainer's view. " @@ -2707,7 +2709,7 @@ msgid "" "versioning scheme promises them." msgstr "" -#: ../source/discussions/versioning.rst:74 +#: ../source/discussions/versioning.rst:75 msgid "" "There are known exceptions for selecting the next version number. The " "maintainers may consciously choose to break the assumption that the last " @@ -2716,31 +2718,31 @@ msgid "" "come in patch versions but contain breaking changes inevitably." msgstr "" -#: ../source/discussions/versioning.rst:84 -#: ../source/specifications/version-specifiers.rst:726 +#: ../source/discussions/versioning.rst:85 +#: ../source/specifications/version-specifiers.rst:741 msgid "Semantic versioning" msgstr "" -#: ../source/discussions/versioning.rst:86 +#: ../source/discussions/versioning.rst:87 msgid "" "The idea of *semantic versioning* (or SemVer) is to use 3-part version " "numbers, *major.minor.patch*, where the project author increments:" msgstr "" -#: ../source/discussions/versioning.rst:89 +#: ../source/discussions/versioning.rst:90 msgid "*major* when they make incompatible API changes," msgstr "" -#: ../source/discussions/versioning.rst:90 +#: ../source/discussions/versioning.rst:91 msgid "" "*minor* when they add functionality in a backwards-compatible manner, and" msgstr "" -#: ../source/discussions/versioning.rst:91 +#: ../source/discussions/versioning.rst:92 msgid "*patch*, when they make backwards-compatible bug fixes." msgstr "" -#: ../source/discussions/versioning.rst:93 +#: ../source/discussions/versioning.rst:94 msgid "" "A majority of Python projects use a scheme that resembles semantic " "versioning. However, most projects, especially larger ones, do not strictly " @@ -2752,7 +2754,7 @@ msgid "" "used to signal significant but backwards-compatible new features." msgstr "" -#: ../source/discussions/versioning.rst:103 +#: ../source/discussions/versioning.rst:104 msgid "" "For those projects that do use strict semantic versioning, this approach " "allows users to make use of :ref:`compatible release version specifiers " @@ -2764,13 +2766,13 @@ msgid "" "and allows a later release with same X and Y but higher Z." msgstr "" -#: ../source/discussions/versioning.rst:112 +#: ../source/discussions/versioning.rst:113 msgid "" "Python projects adopting semantic versioning should abide by clauses 1-8 of " "the `Semantic Versioning 2.0.0 specification `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2781,41 +2783,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2824,7 +2826,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2833,12 +2835,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2848,7 +2850,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2860,11 +2862,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2872,20 +2874,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2893,7 +2895,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2904,7 +2906,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2913,13 +2915,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3202,11 +3204,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3405,9 +3407,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3580,54 +3582,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3635,11 +3637,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3648,11 +3650,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3660,26 +3662,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3691,38 +3693,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3731,21 +3733,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3754,11 +3756,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3766,15 +3768,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3782,21 +3784,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3949,7 +3951,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4305,17 +4307,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4627,7 +4640,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -4998,7 +5011,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6686,11 +6699,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6726,7 +6740,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6739,29 +6754,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6773,65 +6788,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6840,18 +6855,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6860,11 +6875,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6874,7 +6889,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6883,11 +6898,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6899,24 +6914,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6924,17 +6939,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6945,11 +6960,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6957,14 +6972,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7591,12 +7606,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8302,17 +8311,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8320,34 +8329,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8355,42 +8364,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8399,18 +8420,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8740,7 +8755,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9356,40 +9371,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9397,25 +9416,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9423,45 +9442,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9472,31 +9491,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9697,9 +9716,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9726,9 +9745,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9759,7 +9778,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9789,8 +9808,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9842,7 +9861,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9853,8 +9872,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9866,8 +9885,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9900,7 +9919,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -9974,8 +9993,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10005,90 +10024,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10097,26 +10116,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10124,28 +10143,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10153,33 +10172,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13230,86 +13249,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13318,116 +13333,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13437,51 +13381,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13489,7 +13393,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13497,18 +13401,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13517,7 +13421,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13528,7 +13432,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13546,7 +13450,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13555,7 +13459,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13567,26 +13471,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13594,24 +13498,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14365,11 +14273,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16201,17 +16109,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18219,7 +18133,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20562,95 +20476,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20673,10 +20597,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20727,7 +20647,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20735,24 +20655,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20762,139 +20682,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20908,7 +20828,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20917,7 +20837,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20929,30 +20849,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20961,21 +20881,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -20985,26 +20905,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21013,40 +20933,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21055,11 +20975,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21089,56 +21009,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21146,38 +21066,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21185,14 +21105,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21200,7 +21120,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21208,24 +21128,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21233,7 +21153,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21244,13 +21164,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21259,7 +21179,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21274,38 +21194,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21315,7 +21235,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21323,7 +21243,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21331,21 +21251,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21353,19 +21273,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21374,20 +21294,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21395,18 +21315,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21414,7 +21334,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21422,32 +21342,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22271,7 +22191,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22310,7 +22230,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22530,14 +22450,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22571,7 +22491,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22579,45 +22499,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22625,7 +22545,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22634,23 +22554,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22659,14 +22579,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22676,7 +22596,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22684,14 +22604,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22701,45 +22621,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22748,7 +22668,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22758,17 +22678,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22776,7 +22696,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22785,11 +22705,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22797,11 +22717,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22864,11 +22784,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22877,65 +22797,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22943,7 +22863,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22954,7 +22874,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22963,33 +22883,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -22999,7 +22919,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23009,7 +22929,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23017,7 +22937,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23028,22 +22948,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23052,25 +22972,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23078,13 +22998,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23094,18 +23014,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23113,7 +23033,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23123,7 +23043,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23131,7 +23051,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23139,7 +23059,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23148,18 +23068,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23167,13 +23087,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23182,23 +23102,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23207,79 +23127,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23557,7 +23477,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24084,11 +24004,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24096,22 +24038,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24120,11 +24062,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24134,11 +24076,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24148,11 +24090,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24160,11 +24102,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24175,11 +24117,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24187,11 +24129,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24199,11 +24141,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24213,11 +24155,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24225,11 +24167,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24237,11 +24179,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24249,11 +24191,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24262,11 +24204,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24275,11 +24217,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24289,7 +24231,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24297,69 +24239,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24367,48 +24309,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24419,7 +24361,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24429,17 +24371,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24448,14 +24390,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24466,7 +24408,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24474,30 +24416,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24505,30 +24447,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24536,60 +24478,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24598,79 +24540,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24679,7 +24621,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24687,7 +24629,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24697,21 +24639,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24719,7 +24661,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24728,7 +24670,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24738,14 +24680,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24754,28 +24696,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24784,27 +24726,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24814,7 +24756,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24824,13 +24766,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25050,7 +24994,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25058,7 +25002,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25069,15 +25013,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25085,7 +25029,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25093,7 +25037,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25105,43 +25049,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25150,29 +25094,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26538,7 +26490,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26577,11 +26529,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/gmh/LC_MESSAGES/messages.po b/locales/gmh/LC_MESSAGES/messages.po index 2b3760480..f65e599ab 100644 --- a/locales/gmh/LC_MESSAGES/messages.po +++ b/locales/gmh/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -2647,7 +2647,7 @@ msgid "A simple version with just one component: ``42``" msgstr "" #: ../source/discussions/versioning.rst:30 -msgid "A version with an epoch: ``1!1.0``" +msgid "A version with an epoch (discouraged): ``1!1.0``" msgstr "" #: ../source/discussions/versioning.rst:32 @@ -2678,20 +2678,22 @@ msgstr "" #: ../source/discussions/versioning.rst:49 msgid "" -"Finally, epochs, a rarely used feature, serve to fix the sorting order when " -"changing the versioning scheme. For example, if a project is using calendar " -"versioning, with versions like 23.12, and switches to semantic versioning, " -"with versions like 1.0, the comparison between 1.0 and 23.12 will go the " -"wrong way. To correct this, the new version numbers should have an explicit " -"epoch, as in \"1!1.0\", in order to be treated as more recent than the old " -"version numbers." +"Finally, epochs were intended to fix the sorting order when changing the " +"versioning scheme. For example, if a project was using calendar versioning, " +"with versions like ``23.12``, and switched to semantic versioning, with " +"versions like ``1.0``, the comparison between ``1.0`` and ``23.12`` would go " +"the wrong way. To correct this, the new version numbers would have an " +"explicit epoch, as in ``1!1.0``, in order to be treated as more recent than " +"the old version numbers. However, this is discouraged, and it is preferable " +"to use a higher version number that is unlikely to cause user confusion, " +"such as ``100.0``." msgstr "" -#: ../source/discussions/versioning.rst:59 +#: ../source/discussions/versioning.rst:60 msgid "Semantic versioning vs. calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:61 +#: ../source/discussions/versioning.rst:62 msgid "" "A versioning scheme is a formalized way to interpret the segments of a " "version number, and to decide which should be the next version number for a " @@ -2699,7 +2701,7 @@ msgid "" "Python packages, semantic versioning and calendar versioning." msgstr "" -#: ../source/discussions/versioning.rst:68 +#: ../source/discussions/versioning.rst:69 msgid "" "The decision which version number to choose is up to a project's maintainer. " "This effectively means that version bumps reflect the maintainer's view. " @@ -2707,7 +2709,7 @@ msgid "" "versioning scheme promises them." msgstr "" -#: ../source/discussions/versioning.rst:74 +#: ../source/discussions/versioning.rst:75 msgid "" "There are known exceptions for selecting the next version number. The " "maintainers may consciously choose to break the assumption that the last " @@ -2716,31 +2718,31 @@ msgid "" "come in patch versions but contain breaking changes inevitably." msgstr "" -#: ../source/discussions/versioning.rst:84 -#: ../source/specifications/version-specifiers.rst:726 +#: ../source/discussions/versioning.rst:85 +#: ../source/specifications/version-specifiers.rst:741 msgid "Semantic versioning" msgstr "" -#: ../source/discussions/versioning.rst:86 +#: ../source/discussions/versioning.rst:87 msgid "" "The idea of *semantic versioning* (or SemVer) is to use 3-part version " "numbers, *major.minor.patch*, where the project author increments:" msgstr "" -#: ../source/discussions/versioning.rst:89 +#: ../source/discussions/versioning.rst:90 msgid "*major* when they make incompatible API changes," msgstr "" -#: ../source/discussions/versioning.rst:90 +#: ../source/discussions/versioning.rst:91 msgid "" "*minor* when they add functionality in a backwards-compatible manner, and" msgstr "" -#: ../source/discussions/versioning.rst:91 +#: ../source/discussions/versioning.rst:92 msgid "*patch*, when they make backwards-compatible bug fixes." msgstr "" -#: ../source/discussions/versioning.rst:93 +#: ../source/discussions/versioning.rst:94 msgid "" "A majority of Python projects use a scheme that resembles semantic " "versioning. However, most projects, especially larger ones, do not strictly " @@ -2752,7 +2754,7 @@ msgid "" "used to signal significant but backwards-compatible new features." msgstr "" -#: ../source/discussions/versioning.rst:103 +#: ../source/discussions/versioning.rst:104 msgid "" "For those projects that do use strict semantic versioning, this approach " "allows users to make use of :ref:`compatible release version specifiers " @@ -2764,13 +2766,13 @@ msgid "" "and allows a later release with same X and Y but higher Z." msgstr "" -#: ../source/discussions/versioning.rst:112 +#: ../source/discussions/versioning.rst:113 msgid "" "Python projects adopting semantic versioning should abide by clauses 1-8 of " "the `Semantic Versioning 2.0.0 specification `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2781,41 +2783,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2824,7 +2826,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2833,12 +2835,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2848,7 +2850,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2860,11 +2862,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2872,20 +2874,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2893,7 +2895,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2904,7 +2906,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2913,13 +2915,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3202,11 +3204,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3405,9 +3407,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3580,54 +3582,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3635,11 +3637,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3648,11 +3650,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3660,26 +3662,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3691,38 +3693,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3731,21 +3733,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3754,11 +3756,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3766,15 +3768,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3782,21 +3784,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3949,7 +3951,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4305,17 +4307,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4627,7 +4640,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -4998,7 +5011,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6686,11 +6699,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6726,7 +6740,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6739,29 +6754,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6773,65 +6788,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6840,18 +6855,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6860,11 +6875,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6874,7 +6889,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6883,11 +6898,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6899,24 +6914,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6924,17 +6939,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6945,11 +6960,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6957,14 +6972,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7591,12 +7606,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8302,17 +8311,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8320,34 +8329,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8355,42 +8364,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8399,18 +8420,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8740,7 +8755,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9356,40 +9371,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9397,25 +9416,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9423,45 +9442,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9472,31 +9491,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9697,9 +9716,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9726,9 +9745,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9759,7 +9778,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9789,8 +9808,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9842,7 +9861,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9853,8 +9872,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9866,8 +9885,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9900,7 +9919,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -9974,8 +9993,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10005,90 +10024,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10097,26 +10116,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10124,28 +10143,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10153,33 +10172,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13230,86 +13249,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13318,116 +13333,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13437,51 +13381,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13489,7 +13393,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13497,18 +13401,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13517,7 +13421,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13528,7 +13432,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13546,7 +13450,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13555,7 +13459,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13567,26 +13471,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13594,24 +13498,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14365,11 +14273,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16201,17 +16109,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18219,7 +18133,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20562,95 +20476,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20673,10 +20597,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20727,7 +20647,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20735,24 +20655,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20762,139 +20682,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20908,7 +20828,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20917,7 +20837,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20929,30 +20849,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20961,21 +20881,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -20985,26 +20905,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21013,40 +20933,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21055,11 +20975,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21089,56 +21009,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21146,38 +21066,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21185,14 +21105,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21200,7 +21120,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21208,24 +21128,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21233,7 +21153,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21244,13 +21164,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21259,7 +21179,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21274,38 +21194,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21315,7 +21235,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21323,7 +21243,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21331,21 +21251,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21353,19 +21273,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21374,20 +21294,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21395,18 +21315,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21414,7 +21334,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21422,32 +21342,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22271,7 +22191,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22310,7 +22230,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22530,14 +22450,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22571,7 +22491,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22579,45 +22499,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22625,7 +22545,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22634,23 +22554,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22659,14 +22579,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22676,7 +22596,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22684,14 +22604,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22701,45 +22621,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22748,7 +22668,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22758,17 +22678,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22776,7 +22696,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22785,11 +22705,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22797,11 +22717,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22864,11 +22784,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22877,65 +22797,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22943,7 +22863,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22954,7 +22874,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22963,33 +22883,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -22999,7 +22919,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23009,7 +22929,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23017,7 +22937,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23028,22 +22948,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23052,25 +22972,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23078,13 +22998,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23094,18 +23014,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23113,7 +23033,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23123,7 +23043,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23131,7 +23051,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23139,7 +23059,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23148,18 +23068,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23167,13 +23087,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23182,23 +23102,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23207,79 +23127,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23557,7 +23477,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24084,11 +24004,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24096,22 +24038,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24120,11 +24062,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24134,11 +24076,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24148,11 +24090,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24160,11 +24102,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24175,11 +24117,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24187,11 +24129,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24199,11 +24141,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24213,11 +24155,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24225,11 +24167,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24237,11 +24179,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24249,11 +24191,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24262,11 +24204,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24275,11 +24217,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24289,7 +24231,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24297,69 +24239,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24367,48 +24309,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24419,7 +24361,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24429,17 +24371,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24448,14 +24390,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24466,7 +24408,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24474,30 +24416,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24505,30 +24447,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24536,60 +24478,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24598,79 +24540,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24679,7 +24621,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24687,7 +24629,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24697,21 +24639,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24719,7 +24661,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24728,7 +24670,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24738,14 +24680,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24754,28 +24696,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24784,27 +24726,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24814,7 +24756,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24824,13 +24766,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25050,7 +24994,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25058,7 +25002,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25069,15 +25013,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25085,7 +25029,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25093,7 +25037,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25105,43 +25049,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25150,29 +25094,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26538,7 +26490,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26577,11 +26529,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/hi/LC_MESSAGES/messages.po b/locales/hi/LC_MESSAGES/messages.po index 9e274ef5f..3ef5f19e7 100644 --- a/locales/hi/LC_MESSAGES/messages.po +++ b/locales/hi/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2024-09-16 10:09+0000\n" "Last-Translator: kumar Shivam \n" "Language-Team: Hindi `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2799,41 +2801,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2842,7 +2844,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2851,12 +2853,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2866,7 +2868,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2878,11 +2880,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2890,20 +2892,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2911,7 +2913,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2922,7 +2924,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2931,13 +2933,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3220,11 +3222,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3425,9 +3427,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3606,54 +3608,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3661,11 +3663,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3674,11 +3676,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3686,28 +3688,28 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 #, fuzzy #| msgid "Project name" msgid "Root License Directory" msgstr "परियोजना" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3719,38 +3721,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3759,21 +3761,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3782,11 +3784,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3794,15 +3796,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3810,21 +3812,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3977,7 +3979,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4333,17 +4335,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4661,7 +4674,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5032,7 +5045,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6740,11 +6753,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6780,7 +6794,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6793,29 +6808,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6827,65 +6842,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6894,18 +6909,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6914,11 +6929,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6928,7 +6943,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6937,11 +6952,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6953,24 +6968,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6978,17 +6993,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6999,11 +7014,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -7011,14 +7026,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7647,12 +7662,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8358,17 +8367,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8376,34 +8385,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8411,42 +8420,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8455,18 +8476,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8796,7 +8811,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9414,40 +9429,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9455,25 +9474,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9481,45 +9500,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9530,31 +9549,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9755,9 +9774,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9784,9 +9803,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9817,7 +9836,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9847,8 +9866,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9900,7 +9919,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9911,8 +9930,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9924,8 +9943,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9958,7 +9977,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -10032,8 +10051,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10063,90 +10082,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10155,26 +10174,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10182,28 +10201,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10211,33 +10230,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13288,88 +13307,84 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 #, fuzzy #| msgid "Project name" msgid "Subdirectory name" msgstr "परियोजना" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13378,116 +13393,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13497,51 +13441,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13549,7 +13453,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13557,18 +13461,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13577,7 +13481,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13588,7 +13492,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13606,7 +13510,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13615,7 +13519,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13627,26 +13531,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13654,24 +13558,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14427,11 +14335,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16268,17 +16176,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18290,7 +18204,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20645,95 +20559,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20756,10 +20680,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20810,7 +20730,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20818,24 +20738,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20845,139 +20765,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20991,7 +20911,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -21000,7 +20920,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -21012,30 +20932,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -21044,21 +20964,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -21068,26 +20988,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21096,40 +21016,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21138,11 +21058,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21172,56 +21092,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21229,38 +21149,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21268,14 +21188,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21283,7 +21203,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21291,24 +21211,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21316,7 +21236,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21327,13 +21247,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21342,7 +21262,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21357,38 +21277,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21398,7 +21318,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21406,7 +21326,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21414,21 +21334,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21436,19 +21356,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21457,20 +21377,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21478,18 +21398,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21497,7 +21417,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21505,32 +21425,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22360,7 +22280,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22399,7 +22319,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22619,14 +22539,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22660,7 +22580,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22668,45 +22588,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22714,7 +22634,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22723,23 +22643,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22748,14 +22668,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22765,7 +22685,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22773,14 +22693,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22790,45 +22710,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22837,7 +22757,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22847,17 +22767,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22865,7 +22785,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22874,11 +22794,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22886,11 +22806,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22953,11 +22873,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22966,65 +22886,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -23032,7 +22952,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -23043,7 +22963,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -23052,33 +22972,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23088,7 +23008,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23098,7 +23018,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23106,7 +23026,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23117,22 +23037,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23141,25 +23061,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23167,13 +23087,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23183,18 +23103,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23202,7 +23122,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23212,7 +23132,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23220,7 +23140,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23228,7 +23148,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23237,18 +23157,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23256,13 +23176,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23271,23 +23191,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23296,79 +23216,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23646,7 +23566,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24173,11 +24093,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24185,22 +24127,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24209,11 +24151,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24223,11 +24165,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24237,11 +24179,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24249,11 +24191,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24264,11 +24206,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24276,11 +24218,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24288,11 +24230,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24302,11 +24244,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24314,11 +24256,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24326,11 +24268,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24338,11 +24280,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24351,11 +24293,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24364,11 +24306,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24378,7 +24320,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24386,69 +24328,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24456,48 +24398,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24508,7 +24450,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24518,17 +24460,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24537,14 +24479,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24555,7 +24497,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24563,30 +24505,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24594,30 +24536,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24625,60 +24567,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24687,79 +24629,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24768,7 +24710,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24776,7 +24718,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24786,21 +24728,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24808,7 +24750,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24817,7 +24759,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24827,14 +24769,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24843,28 +24785,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24873,27 +24815,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24903,7 +24845,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24913,13 +24855,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25139,7 +25083,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25147,7 +25091,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25158,15 +25102,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25174,7 +25118,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25182,7 +25126,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25194,43 +25138,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25239,29 +25183,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26629,7 +26581,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26668,11 +26620,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/id/LC_MESSAGES/messages.po b/locales/id/LC_MESSAGES/messages.po index 5e84b0eb4..b06586903 100644 --- a/locales/id/LC_MESSAGES/messages.po +++ b/locales/id/LC_MESSAGES/messages.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2024-10-17 21:16+0000\n" "Last-Translator: oon arfiandwi \n" "Language-Team: Indonesian `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2826,43 +2828,43 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 #, fuzzy msgid "Calendar versioning" msgstr "Penerjemahan" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 #, fuzzy msgid "Other schemes" msgstr "Penerjemahan" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2871,7 +2873,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2880,12 +2882,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2895,7 +2897,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2907,11 +2909,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2919,20 +2921,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2940,7 +2942,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2951,7 +2953,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2960,13 +2962,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3249,11 +3251,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3454,9 +3456,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3629,54 +3631,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3684,11 +3686,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3697,11 +3699,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3709,26 +3711,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3740,38 +3742,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3780,21 +3782,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3803,11 +3805,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3815,15 +3817,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3831,21 +3833,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3998,7 +4000,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4354,17 +4356,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4680,7 +4693,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5052,7 +5065,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6744,11 +6757,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6784,7 +6798,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6797,29 +6812,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6831,65 +6846,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6898,18 +6913,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6918,11 +6933,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6932,7 +6947,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6941,11 +6956,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6957,24 +6972,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6982,17 +6997,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -7003,11 +7018,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -7015,14 +7030,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7649,12 +7664,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8360,17 +8369,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8378,34 +8387,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8413,42 +8422,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8457,18 +8478,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8800,7 +8815,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9418,42 +9433,46 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 #, fuzzy #| msgid "Reviewing new contributions" msgid "Building distributions" msgstr "Tinjau kontribusi baru" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9461,25 +9480,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9487,45 +9506,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9536,31 +9555,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9761,9 +9780,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9790,9 +9809,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9823,7 +9842,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9853,8 +9872,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9906,7 +9925,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9917,8 +9936,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9930,8 +9949,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9964,7 +9983,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -10038,8 +10057,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10069,90 +10088,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10161,26 +10180,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10188,28 +10207,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10217,33 +10236,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13294,86 +13313,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13382,116 +13397,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13501,51 +13445,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13553,7 +13457,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13561,18 +13465,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13581,7 +13485,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13592,7 +13496,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13610,7 +13514,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13619,7 +13523,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13631,26 +13535,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13658,24 +13562,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14434,11 +14342,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16273,17 +16181,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18297,7 +18211,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20650,95 +20564,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20761,10 +20685,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20815,7 +20735,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20823,24 +20743,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20850,139 +20770,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20996,7 +20916,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -21005,7 +20925,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -21017,30 +20937,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -21049,23 +20969,23 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 #, fuzzy #| msgid "Specification" msgid "Legacy specification" msgstr "Spesifikasi" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -21075,26 +20995,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21103,40 +21023,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21145,11 +21065,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21179,56 +21099,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21236,38 +21156,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21275,14 +21195,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21290,7 +21210,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21298,24 +21218,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21323,7 +21243,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21334,13 +21254,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21349,7 +21269,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21364,38 +21284,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21405,7 +21325,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21413,7 +21333,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21421,21 +21341,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21443,19 +21363,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21464,20 +21384,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21485,18 +21405,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21504,7 +21424,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21512,32 +21432,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22363,7 +22283,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22402,7 +22322,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22623,14 +22543,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22664,7 +22584,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22672,45 +22592,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22718,7 +22638,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22727,23 +22647,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22752,14 +22672,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22769,7 +22689,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22777,14 +22697,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22794,45 +22714,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22841,7 +22761,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22851,17 +22771,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22869,7 +22789,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22878,11 +22798,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22890,11 +22810,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22957,12 +22877,12 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 #, fuzzy msgid "Version + Format Selection" msgstr "Penerjemahan" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22971,65 +22891,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -23037,7 +22957,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -23048,7 +22968,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -23057,33 +22977,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23093,7 +23013,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23103,7 +23023,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23111,7 +23031,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23122,22 +23042,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23146,25 +23066,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23172,13 +23092,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23188,18 +23108,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23207,7 +23127,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23217,7 +23137,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23225,7 +23145,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23233,7 +23153,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23242,18 +23162,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23261,13 +23181,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23276,23 +23196,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23301,79 +23221,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23651,7 +23571,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24182,12 +24102,34 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 #, fuzzy msgid "Normalization" msgstr "Penerjemahan" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24195,23 +24137,23 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 #, fuzzy msgid "Integer Normalization" msgstr "Penerjemahan" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24220,11 +24162,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24234,11 +24176,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24248,11 +24190,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24260,11 +24202,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24275,11 +24217,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24287,11 +24229,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24299,11 +24241,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24313,11 +24255,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24325,11 +24267,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24337,11 +24279,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24349,11 +24291,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24362,11 +24304,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24375,11 +24317,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24389,7 +24331,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24397,69 +24339,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24467,48 +24409,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24519,7 +24461,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24529,17 +24471,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24548,14 +24490,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24566,7 +24508,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24574,30 +24516,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24605,30 +24547,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24636,60 +24578,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24698,79 +24640,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24779,7 +24721,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24787,7 +24729,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24797,21 +24739,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24819,7 +24761,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24828,7 +24770,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24838,14 +24780,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24854,29 +24796,29 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 #, fuzzy msgid "Version exclusion" msgstr "Penerjemahan" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24885,27 +24827,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24915,7 +24857,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24925,13 +24867,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25151,7 +25095,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25159,7 +25103,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25170,15 +25114,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25186,7 +25130,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25194,7 +25138,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25206,43 +25150,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25251,29 +25195,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26641,7 +26593,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26680,11 +26632,12 @@ msgstr "Membuat sebuah LICENSE" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/ja/LC_MESSAGES/messages.po b/locales/ja/LC_MESSAGES/messages.po index bfb23950d..64eb69526 100644 --- a/locales/ja/LC_MESSAGES/messages.po +++ b/locales/ja/LC_MESSAGES/messages.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) 2013–2020, PyPA # This file is distributed under the same license as the Python Packaging User Guide package. -# moto kawasaki , 2021, 2022, 2023, 2024, 2025. +# moto kawasaki , 2021, 2022, 2023, 2024, 2025, 2026. # tsutsu3 , 2023. # nikkie , 2023. # Rafael Fontenelle , 2024. @@ -12,17 +12,17 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" -"PO-Revision-Date: 2025-11-25 09:00+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" +"PO-Revision-Date: 2026-03-11 02:09+0000\n" "Last-Translator: moto kawasaki \n" -"Language-Team: Japanese \n" +"Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.15-dev\n" +"X-Generator: Weblate 5.17-dev\n" #: ../source/contribute.rst:5 msgid "Contribute to this guide" @@ -61,19 +61,18 @@ msgid "" "`pull requests`__. If you're planning to write or edit the guide, please " "read the :ref:`style guide `." msgstr "" -"|PyPUG| のほとんどの作業は `プロジェクトのGitHubリポジトリ `__ で行われます。手始めに `未解決の問題 `__ のリスト" -"をチェックアウトして(改善策の) `プルリクエスト `__ を送ってく" -"ださい。もしあなたがこのガイドに何かを書き加えたり編集したりするつもりな" -"ら、:ref:`スタイルガイド `__ を読みましょう。" +"|PyPUG| のほとんどの作業は `project's GitHub repository`__ で行われます。手始" +"めに `open issues`__ のリストをチェックアウトして `pull requests`__ を送って" +"ください。もしあなたがこのガイドに何かを書き加えたり編集したりするつもりな" +"ら、 :ref:`スタイルガイド ` を読みましょう。" #: ../source/contribute.rst:25 msgid "" "By contributing to the |PyPUG|, you're expected to follow the PSF's `Code of " "Conduct`__." msgstr "" -"|PyPUG|に貢献を行うのであれば、あなたがPSFの `行動規範 `__ " -"に従うことが期待されています。" +"|PyPUG| に貢献を行うことによって、あなたがPSFの `Code of Conduct`__ に従うこ" +"とが期待されています。" #: ../source/contribute.rst:32 msgid "Documentation types" @@ -87,9 +86,9 @@ msgid "" "pick the appropriate documentation type." msgstr "" "本プロジェクトは、特定の目的に合わせた四つの別個の文書類型で成り立っていま" -"す。本プロジェクトでは、文書化の品質向上のために `ディアタクシスプロセス " -"` に従うことを強く希望します。新たに追加することを提案する" -"場合には、いずれかの適切な文書類型を選択してください。" +"す。本プロジェクトでは、文書化の品質向上のために `Diátaxis process`_ に従うこ" +"とを強く希望します。新たに追加することを提案する場合には、いずれかの適切な文" +"書類型を選択してください。" #: ../source/contribute.rst:42 ../source/index.rst:55 #: ../source/tutorials/index.rst:2 @@ -104,8 +103,8 @@ msgid "" msgstr "" "チュートリアルは目標を達成することで読者に新しい概念を教えることに注力してい" "ます。こうするべきだという意見に従ったステップバイステップのガイドになってい" -"ます。大筋に無関係な警告や情報は省略されています。`チュートリアル型文書の例 " -"`_." +"ます。大筋に無関係な警告や情報は省略されています。 `example tutorial-style " +"document`_ 。" #: ../source/contribute.rst:51 ../source/guides/index.rst:2 #: ../source/index.rst:69 @@ -167,7 +166,7 @@ msgid "" "`packaging.python.org`_ project on Weblate to contribute." msgstr "" "我々は本プロジェクトの翻訳を管理するために `Weblate`_ を使用しています。 翻訳" -"で貢献するには、Weblate上の`packaging.python.org`_ プロジェクトをご覧くださ" +"で貢献するには、Weblate上の `packaging.python.org`_ プロジェクトをご覧くださ" "い。" #: ../source/contribute.rst:80 @@ -181,8 +180,8 @@ msgstr "" msgid "" "Any translations of this project should follow `reStructuredText syntax`_." msgstr "" -"本プロジェクトの翻訳はすべて、 `reStructuredText 文法 `_ に従わなければなりません。" +"本プロジェクトの翻訳はすべて、 `reStructuredText syntax`_ に従わなければなり" +"ません。" #: ../source/contribute.rst:93 msgid "Adding a language" @@ -209,7 +208,7 @@ msgid "" "`this guide`_ before translating on Weblate." msgstr "" "もしあなたがreStructuredText(RST)の書き方に慣れていないのであれば、Weblateで" -"翻訳作業をする前に `このガイド `_ を読んでください。" +"翻訳作業をする前に `this guide`_ を読んでください。" #: ../source/contribute.rst:118 msgid "**Do not translate the text in reference directly**" @@ -321,10 +320,10 @@ msgid "" "your contributions will help add to a cohesive whole and make it easier for " "your contributions to be accepted into the project." msgstr "" -"このスタイルガイドは、あなたがどのように|PyPUG|を書くべきかについて推奨事項を" -"与えます。あなたが書き始める前に目を通してください。スタイルガイドに従うこと" -"であなたの貢献がまとまりのある全体の中の一部として追加され、あなたの貢献がプ" -"ロジェクトによって受け入れられやすくなります。" +"このスタイルガイドは、あなたがどのように |PyPUG| を書くべきかについて推奨事項" +"を与えます。あなたが書き始める前に目を通してください。スタイルガイドに従うこ" +"とであなたの貢献がまとまりのある全体の中の一部として追加され、あなたの貢献が" +"プロジェクトによって受け入れられやすくなります。" #: ../source/contribute.rst:179 msgid "Purpose" @@ -335,8 +334,8 @@ msgid "" "The purpose of the |PyPUG| is to be the authoritative resource on how to " "package, publish, and install Python projects using current tools." msgstr "" -"|PyPUG|の目的は、現在のツール群を用いてPythonプロジェクトをパッケージし、公開" -"し、インストールする方法に関して権威ある参照先となることです。" +"|PyPUG| の目的は、現在のツール群を用いてPythonプロジェクトをパッケージし、公" +"開し、インストールする方法に関して権威ある参照先となることです。" #: ../source/contribute.rst:186 msgid "Scope" @@ -416,8 +415,8 @@ msgstr "" "頭が良くてスキルのある人たちと一緒にPythonのプロジェクトをやるところを思い描" "いてください。あなたは彼らと働くのが好きだし、彼らもあなたと働くのが好きなの" "です。そんな人があなたに質問をして、あなたが答えを知っていたとしましょう。あ" -"なたはどんな風に応対しますか?*それ*こそが、あなたがこの文書を書く時のやり方" -"なのです。" +"なたはどんな風に応対しますか? *それ* こそが、あなたがこの文書を書く時のやり" +"方なのです。" #: ../source/contribute.rst:223 msgid "" @@ -459,8 +458,8 @@ msgid "" "When giving recommendations or steps to take, address the reader as *you* or " "use the imperative mood." msgstr "" -"推奨事項や実行すべきステップを与えるときは、読者に*あなた*と呼びかけるか、ま" -"たは、命令法を用いて欲しい。" +"推奨事項や実行すべきステップを与えるときは、読者に *あなた* と呼びかけるか、" +"または、命令法を用いて欲しい。" #: ../source/contribute.rst:0 msgid "Wrong: To install it, the user runs…" @@ -541,11 +540,11 @@ msgid "" "Otherwise, use gender-neutral pronouns *they*, *their*, and *theirs* or " "avoid pronouns entirely." msgstr "" -"あなたが読者に直接呼びかけるときは「あなた」「あなたの」「あなたのもの」を" -"使ってください。そうできない場合は代名詞として「彼ら」「彼らの」「彼らのも" -"の」を使う(訳註:従来なら\"he\", \"she\"を用いた場所に\"they\"を使うことで" -"ジェンダーへの配慮を示す場合がある)か、または、代名詞をまったく使わないように" -"しましょう。" +"あなたが読者に直接呼びかけるときは「 *あなた* 」「 *あなたの* 」「 *あなたの" +"もの* 」を使ってください。そうできない場合は代名詞として「 *彼ら* 」「 *彼ら" +"の* 」「 *彼らのもの* 」を使う(訳註:従来なら\"he\", \"she\"を用いた場所に" +"\"they\"を使うことでジェンダーへの配慮を示す場合がある)か、または、代名詞を" +"まったく使わないようにしましょう。" #: ../source/contribute.rst:0 msgid "Wrong: A maintainer uploads the file. Then he…" @@ -681,7 +680,7 @@ msgid "" "tool downloads the specified Python-interpreter for Windows and packages it " "with all the dependencies in a single Windows-executable installer." msgstr "" -"`Pynsist `__は、Pythonで書かれたプログラム" +"`Pynsist `__ は、Pythonで書かれたプログラム" "群をNSISベースのPythonインタープリタ付きの単体インストーラにまとめるツールで" "す。ほとんどの場合、パッケージング作業ではユーザがPythonインタープリタのバー" "ジョンを選択することとプログラムの依存関係を宣言することしか求められません。" @@ -708,9 +707,9 @@ msgid "" "the MIT-licence." msgstr "" "Pynsistを使う大きな利点は、Windows用のパッケージをLinux上で作成することができ" -"るということです。 :any: `説明文書 ` には異なる種類のプログラ" -"ム(コンソール用やGUIを使うものなど)の例がいくつかあります。このツールはMITラ" -"イセンスのもとに公開されています。" +"るということです。 :any:`documentation ` には異なる種類のプロ" +"グラム(コンソール用やGUIを使うものなど)の例がいくつかあります。このツールは" +"MITライセンスのもとに公開されています。" #: ../source/discussions/deploying-python-applications.rst:77 msgid "Application bundles" @@ -734,12 +733,12 @@ msgstr "" "`py2exe `__ はdistutilsの拡張パッケージで、" "Pythonのスクリプトから単独で動作するWindowsの実行プログラム(32ビット版または" "64ビット版)を作成することができます。公式の開発サイクルに含まれるバージョンの" -"Pythonがすべてサポートされています(`Pythonのブランチの状況 `__を参照して下さい)。py2exeはコンソールで動作する実行可能ファイル" -"も、Windowsの(GUIの)実行ファイルも作成することができます。Windowsサービスや" -"DLL/EXE COMサーバを作成することもできるかもしれませんが、これらは活発にサポー" -"トされているとは言えません。distutilsの拡張パッケージは、MITライセンスと" -"Mozilla Publicライセンス2.0の下で公開されています。" +"Pythonがすべてサポートされています( `Status of Python branches`__ を参照して" +"下さい)。py2exeはコンソールで動作する実行可能ファイルも、Windowsの(GUIの)実行" +"ファイルも作成することができます。WindowsサービスやDLL/EXE COMサーバを作成す" +"ることもできるかもしれませんが、これらは活発にサポートされているとは言えませ" +"ん。distutilsの拡張パッケージは、MITライセンスとMozilla Publicライセンス2.0の" +"下で公開されています。" #: ../source/discussions/deploying-python-applications.rst:103 #: ../source/specifications/platform-compatibility-tags.rst:200 @@ -844,9 +843,9 @@ msgid "" msgstr "" "Linux の世界では、 \"配布パッケージ \" が \"ディストロ" "パッケージ \" か単に \"パッケージ \" と短縮形で呼ば" -"れることが通常であり、 `Linux ディストリビューション `_ のシステム" -"パッケージ管理者によって提供される何かのことであって、異なる意味で使われてい" -"るということは意識しておいてください。" +"れることが通常であり、 `Linux distibution `_ のシステムパッケージ管" +"理者によって提供される何かのことであって、異なる意味で使われているということ" +"は意識しておいてください。" #: ../source/discussions/distribution-package-vs-import-package.rst:31 msgid "What's an import package?" @@ -863,11 +862,13 @@ msgid "" "subpackages as subdirectories." msgstr "" "インポートパッケージは Python モジュールです。したがって、 Python コードに " -"``import pkg`` もしくは ``from pkg import func`` と書く時、``pkg`` の部分はイ" -"ンポートパッケージの名称です。より精確には、インポートパッケージは、サブモ" -"ジュールを内包することができる特別な Python モジュールです。通常は、インポー" -"トパッケージはファイルシステム上のディレクトリであって、モジュールを ``.py`` " -"の形で含み、サブパッケージをサブディレクトリの形で含むものです。" +"``import pkg`` もしくは ``from pkg import func`` と書く時、 ``pkg`` の部分は" +"インポートパッケージの名称です。より精確には、インポートパッケージは、サブモ" +"ジュールを内包することができる特別な Python モジュールです。例えば、 " +"``numpy`` パッケージは ``numpy.linalg`` や ``numpy.fft`` のようなモジュールを" +"内包しています。通常は、インポートパッケージはファイルシステム上のディレクト" +"リであって、モジュールを ``.py`` の形で含み、サブパッケージをサブディレクトリ" +"の形で含むものです。" #: ../source/discussions/distribution-package-vs-import-package.rst:42 msgid "" @@ -1233,10 +1234,10 @@ msgid "" "shell completions, editor support files, and so on." msgstr "" "理想的には、 ** PyPI上で公開されたソースコード配布物のアーカイブには、その" -"パッケージの Git リポジトリからパッケージ自体をビルドし、テストスイートを走ら" -"せ、説明文書をインストールするために必要なファイルや、シェル補完やエディタ用" -"のサポートファイルなどエンドユーザにとって役に立つかもしれない他のファイルを" -"全て含めるべきです ** 。" +"パッケージの Git リポジトリのファイルを全て含み ** 、それらのファイル群から" +"パッケージ自体をビルドし、テストスイートを走らせ、説明文書をインストールする" +"ために必要なファイルや、シェル補完やエディタ用のサポートファイルなどエンド" +"ユーザにとって役に立つかもしれない他のファイルを全て含めるべきです。" #: ../source/discussions/downstream-packaging.rst:107 msgid "" @@ -1292,8 +1293,8 @@ msgstr "" "に、ユーザがテストスイートを走らせることを許すという利点を追加することができ" "ます。さらに別のやり方としては、テストスイートやテストデータを別の Python " "パッケージに分割する方法があります。そのような方法は、巨大なテストベクトルを " -"cryptography-vectors_package に分離する形で、 cryptography_ プロジェクトで採" -"用されています。" +"cryptography-vectors_package に分離する形で、 cryptography_project で採用され" +"ています。" #: ../source/discussions/downstream-packaging.rst:132 msgid "" @@ -2071,18 +2072,18 @@ msgid "" "correctly. When the project is installed by :ref:`pip`, this is the " "specification that is used to install its dependencies." msgstr "" -"``install_requires``は:ref:`setuptools` :file:`setup.py`のキーワードで、その" -"プロジェクトが正しく動作するために必要な最小限のものを指定するものです。プロ" -"ジェクトが:ref:`pip`でインストールされた場合には、プロジェクトが依存するパッ" -"ケージをインストールするのに用いられます。" +"``install_requires`` は :ref:`setuptools` :file:`setup.py` のキーワードで、そ" +"のプロジェクトが正しく動作するために必要な **最小限** のものを指定するもので" +"す。プロジェクトが :ref:`pip` でインストールされた場合には、プロジェクトが依" +"存するパッケージをインストールするのに用いられます。" #: ../source/discussions/install-requires-vs-requirements.rst:16 msgid "" "For example, if the project requires A and B, your ``install_requires`` " "would be like so:" msgstr "" -"例えば、プロジェクトがAとBに依存しているなら、``install_requires``は次のよう" -"になるでしょう:" +"例えば、プロジェクトがAとBに依存しているなら、 ``install_requires`` は次のよ" +"うになるでしょう:" #: ../source/discussions/install-requires-vs-requirements.rst:26 msgid "" @@ -2117,8 +2118,8 @@ msgid "" "prevents the user from gaining the benefit of dependency upgrades." msgstr "" "依存関係にあるものを特定のバージョンに固定するために、あるいは、さらなる依存" -"関係(すなわち、あなたの依存先が依存するもの)を指定するために" -"``install_requires``を使うことはベストプラクティスとは考えられていません。こ" +"関係(すなわち、あなたの依存先が依存するもの)を指定するために " +"``install_requires`` を使うことはベストプラクティスとは考えられていません。こ" "れは過剰に制限的であり、依存関係にあるものをまとめて更新することからユーザが" "得られる利益を阻害するものと考えられています。" @@ -2131,11 +2132,12 @@ msgid "" "\"Concrete\") is to be determined at install time using :ref:`pip` options. " "[1]_" msgstr "" -"最後に、``install_requires``が必要事項の「要約」のリスト、つまり、単に必要事" -"項の名前とバージョンが要求されるだけあって、どこから(すなわち、どんな索引や情" -"報源から)充当するのかについては要求していないのだということを理解することは重" -"要です。どこから(すなわち、どのようにして「具体化」されるのか)という点につい" -"ては、:ref:`pip`のオプションを使ってインストール時に決定されるのです。[1]_" +"最後に、 ``install_requires`` が必要事項の「要約」のリスト、つまり、単に必要" +"事項の名前とバージョンが要求されるだけあって、どこから(すなわち、どんな索引や" +"情報源から)充当するのかについては要求していないのだということを理解することは" +"重要です。どこから(すなわち、どのようにして「具体化」されるのか)という点につ" +"いては、 :ref:`pip` のオプションを使ってインストール時に決定されるのです。" +"[1]_" #: ../source/discussions/install-requires-vs-requirements.rst:62 #: ../source/tutorials/installing-packages.rst:464 @@ -2147,8 +2149,8 @@ msgid "" ":ref:`Requirements Files ` described most simply, " "are just a list of :ref:`pip:pip install` arguments placed into a file." msgstr "" -":ref:`Requirementsファイル `は、一番簡単にいうなら" -"ば、:ref:`pip:pip install`の引数のリストをファイルに書いただけのものです。" +":ref:`Requirementsファイル ` は、一番簡単にいうなら" +"ば、 :ref:`pip:pip install` の引数のリストをファイルに書いただけのものです。" #: ../source/discussions/install-requires-vs-requirements.rst:67 msgid "" @@ -2156,9 +2158,9 @@ msgid "" "project, :ref:`Requirements Files ` are often used " "to define the requirements for a complete Python environment." msgstr "" -"``install_requires``が単一のプロジェクトにおける依存関係を定義する一方" -"で、:ref:`Requirements Files `はPython環境全体に対す" -"る要求事項を定義するのにしばしば用いられます。" +"``install_requires`` が単一のプロジェクトにおける依存関係を定義する一方" +"で、 :ref:`Requirements Files ` はPython環境全体に対" +"する要求事項を定義するのにしばしば用いられます。" #: ../source/discussions/install-requires-vs-requirements.rst:71 msgid "" @@ -2167,9 +2169,9 @@ msgid "" "achieving :ref:`repeatable installations ` of a complete " "environment." msgstr "" -"``install_requires``での要求事項が最小限のものである一方で、requirementsファ" -"イルは再現可能な形で環境全体をインストールできるようにする:ref:`repeatable " -"installations `という目的に沿って限定されたバージョンの網" +"``install_requires`` での要求事項が最小限のものである一方で、requirementsファ" +"イルは再現可能な形で環境全体をインストールできるようにする :ref:`repeatable " +"installations ` という目的に沿って限定されたバージョンの網" "羅的なリストを含むことがしばしばです。" #: ../source/discussions/install-requires-vs-requirements.rst:76 @@ -3598,8 +3600,8 @@ msgid "A simple version with just one component: ``42``" msgstr "たったひとつの部分から構成される簡明なバージョン: ``42``" #: ../source/discussions/versioning.rst:30 -msgid "A version with an epoch: ``1!1.0``" -msgstr "エポック付きのバージョン: ``1!1.0``" +msgid "A version with an epoch (discouraged): ``1!1.0``" +msgstr "エポック付きのバージョン (非推奨): ``1!1.0``" #: ../source/discussions/versioning.rst:32 msgid "" @@ -3644,27 +3646,30 @@ msgstr "" #: ../source/discussions/versioning.rst:49 msgid "" -"Finally, epochs, a rarely used feature, serve to fix the sorting order when " -"changing the versioning scheme. For example, if a project is using calendar " -"versioning, with versions like 23.12, and switches to semantic versioning, " -"with versions like 1.0, the comparison between 1.0 and 23.12 will go the " -"wrong way. To correct this, the new version numbers should have an explicit " -"epoch, as in \"1!1.0\", in order to be treated as more recent than the old " -"version numbers." -msgstr "" -"最後に、エポックは、稀にしか使われない機能ですが、バージョニングの方法を変更" -"するときに順序を訂正するために使われます。例えば、 23.12 のようなカレンダー" -"バージョニングを使っているプロジェクトが 1.0 のようなセマンティックバージョニ" -"ングに移行するような場合に、 1.0 と 23.12 の間の比較は誤った結果になるでしょ" -"う。これを訂正するために、明示的に示された \"1!1.0\" のようなエポックを持つこ" -"とで、新しいバージョン番号が古いバージョン番号よりもより最近のものとして扱わ" -"れるようにするべきです。" - -#: ../source/discussions/versioning.rst:59 +"Finally, epochs were intended to fix the sorting order when changing the " +"versioning scheme. For example, if a project was using calendar versioning, " +"with versions like ``23.12``, and switched to semantic versioning, with " +"versions like ``1.0``, the comparison between ``1.0`` and ``23.12`` would go " +"the wrong way. To correct this, the new version numbers would have an " +"explicit epoch, as in ``1!1.0``, in order to be treated as more recent than " +"the old version numbers. However, this is discouraged, and it is preferable " +"to use a higher version number that is unlikely to cause user confusion, " +"such as ``100.0``." +msgstr "" +"最後に、エポックは、バージョニングの方法を変更する時にソート順を修正すること" +"を意図しています。例えば、 ``23.12`` のようなカレンダーバージョニングを使って" +"いるプロジェクトが ``1.0`` のようなセマンティックバージョニングに移行するよう" +"な場合に、 ``1.0`` と ``23.12`` の間の比較は誤った結果になるでしょう。これを" +"訂正するために、 ``1!1.0`` のような明示された エポックを持つことで、新しい" +"バージョン番号が古いバージョン番号よりもより最近のものとして扱われるようにす" +"るべきです。しかしながら、これは非推奨であって、例えば ``100.0`` のようなより" +"大きなバージョン番号でユーザが混乱しそうにないものを使う方が好ましいです。" + +#: ../source/discussions/versioning.rst:60 msgid "Semantic versioning vs. calendar versioning" msgstr "セマンティックバージョニング対カレンダーバージョニング" -#: ../source/discussions/versioning.rst:61 +#: ../source/discussions/versioning.rst:62 msgid "" "A versioning scheme is a formalized way to interpret the segments of a " "version number, and to decide which should be the next version number for a " @@ -3676,7 +3681,7 @@ msgstr "" "べきかを決めるやり方です。Python パッケージにしばしば用いられる二つのバージョ" "ニング方法は、セマンティックバージョニングとカレンダーバージョニングです。" -#: ../source/discussions/versioning.rst:68 +#: ../source/discussions/versioning.rst:69 msgid "" "The decision which version number to choose is up to a project's maintainer. " "This effectively means that version bumps reflect the maintainer's view. " @@ -3688,7 +3693,7 @@ msgstr "" "とを実質的に意味します。そのような観点は、バージョニング方法が約束するやり方" "についてのエンドユーザの受け取り方とは異なるかも知れません。" -#: ../source/discussions/versioning.rst:74 +#: ../source/discussions/versioning.rst:75 msgid "" "There are known exceptions for selecting the next version number. The " "maintainers may consciously choose to break the assumption that the last " @@ -3703,12 +3708,12 @@ msgstr "" "ンとして提供されますが、そうすると必然的にここで述べているような変更をもたら" "します。" -#: ../source/discussions/versioning.rst:84 -#: ../source/specifications/version-specifiers.rst:726 +#: ../source/discussions/versioning.rst:85 +#: ../source/specifications/version-specifiers.rst:741 msgid "Semantic versioning" msgstr "セマンティックバージョニング" -#: ../source/discussions/versioning.rst:86 +#: ../source/discussions/versioning.rst:87 msgid "" "The idea of *semantic versioning* (or SemVer) is to use 3-part version " "numbers, *major.minor.patch*, where the project author increments:" @@ -3717,20 +3722,20 @@ msgstr "" "成されるバージョン番号、つまり *major.minor.patch* を用いることで、プロジェク" "トの作者は以下のように各段階の数字を増やします:" -#: ../source/discussions/versioning.rst:89 +#: ../source/discussions/versioning.rst:90 msgid "*major* when they make incompatible API changes," msgstr "APIの変更で互換性を失う時には *major* 番号、" -#: ../source/discussions/versioning.rst:90 +#: ../source/discussions/versioning.rst:91 msgid "" "*minor* when they add functionality in a backwards-compatible manner, and" msgstr "後方互換性を保ったままで新機能を追加する場合には *minor* を、そして" -#: ../source/discussions/versioning.rst:91 +#: ../source/discussions/versioning.rst:92 msgid "*patch*, when they make backwards-compatible bug fixes." msgstr "後方互換性を維持したままのバグ修正の場合には *patch* を増加させます。" -#: ../source/discussions/versioning.rst:93 +#: ../source/discussions/versioning.rst:94 msgid "" "A majority of Python projects use a scheme that resembles semantic " "versioning. However, most projects, especially larger ones, do not strictly " @@ -3751,7 +3756,7 @@ msgstr "" "なわない新機能に注目を集めるために major バージョン番号を増加させることもあり" "ます。" -#: ../source/discussions/versioning.rst:103 +#: ../source/discussions/versioning.rst:104 msgid "" "For those projects that do use strict semantic versioning, this approach " "allows users to make use of :ref:`compatible release version specifiers " @@ -3772,7 +3777,7 @@ msgstr "" "て X と Y が同じである限り Z が大きくなった後続のリリースを許容するということ" "です。" -#: ../source/discussions/versioning.rst:112 +#: ../source/discussions/versioning.rst:113 msgid "" "Python projects adopting semantic versioning should abide by clauses 1-8 of " "the `Semantic Versioning 2.0.0 specification `_." @@ -3781,7 +3786,7 @@ msgstr "" "ティックバージョニング 2.0.0 仕様書 `_ の第1節から第8節までを甘受" "すべきです。" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -3799,11 +3804,11 @@ msgstr "" "(:doc:`NumPy バージョニング方針 `) ということ" "で、明示的に \"ゆるい\" セマンティックバージョニングを採用しています。" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "カレンダーバージョニング" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " @@ -3814,17 +3819,16 @@ msgstr "" "たるリリースで非推奨(deprecation)の警告を出すような場合には適していないかもし" "れません。" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -"`カレンダーバージョニング `_ (CalVer) の最大の利点は、バージョン番号" -"を見ただけで基盤になっている機能セットがどれほど古いのかが直截にわかることで" -"す。" +"`calendar versioning `_ (CalVer) の最大の利点は、バージョン番号を見" +"ただけで基盤になっている機能セットがどれほど古いのかが直截にわかることです。" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." @@ -3832,7 +3836,7 @@ msgstr "" "カレンダーバージョン番号は、典型的には *年.月* (例えば2023年12月に対して " "23.12) の形を取ります。" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." @@ -3840,11 +3844,11 @@ msgstr "" "標準的な Python パッケージインストーラである :doc:`Pip ` はカレン" "ダーバージョニングを採用しています。" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "他の方法" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -3858,7 +3862,7 @@ msgstr "" "バージョン番号を見てもAPIの後方互換性に関する情報がほとんど又は全くわからない" "ので、ユーザにとっては追跡するのが最も困難です。" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -3872,12 +3876,12 @@ msgstr "" "かるようにしているが、あるリリースのその年の中での歩調についてはあまり気にし" "ていないこともあります。" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "ローカルバージョン識別子" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -3892,7 +3896,7 @@ msgstr "" "スの識別子として用いるような :ref:`局所的バージョン識別子 ` の考え方もサポートします。" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -3913,11 +3917,11 @@ msgstr "" "されていない変更のあるリポジトリなら \"0.5.dev1+00980f.d20231217\" のようにな" "ることがあります。" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "ランタイムにバージョン情報にアクセスする" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -3929,17 +3933,16 @@ msgstr "" "の :func:`importlib.metadata.version` 関数を使ってランタイム内から取得するこ" "とが可能です::" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" "多くのプロジェクトでは、パッケージレベルの ``__version__`` アトリビュートを提" -"供することで、トップレベルの :term:`インポートパッケージ `:term:`インポートパッケージ ` にバージョン番号を付与" -"することも選択しています::" +"供することで、トップレベルの :term:`インポートパッケージ ` に" +"バージョン番号を付与することも選択しています::" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " @@ -3949,7 +3952,7 @@ msgstr "" "など) が可能な限り素早く動作することが保証されることを望む CLI アプリケーショ" "ンにおいて価値があります。" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -3961,7 +3964,7 @@ msgstr "" "めの潜在的なアプローチとして :ref:`シングルソースのバージョン番号 ` の議論を復習することができます。" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -3972,14 +3975,15 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" "インポートされたパッケージやモジュールはランタイムのバージョン情報をこのやり" -"方で公開することを *要求* されてはいない (:pep:`396` で撤回された提案を見てく" -"ださい) ので、 ``__version__`` アトリビュートは、それを提供するものとして知ら" -"れているインターフェース (あるプロジェクトが自身のバージョン番号やその直接の" -"依存先のバージョン番号を問い合わせるなど) だけから問い合わせを受けるか、また" -"は、問い合わせる側のコードがアトリビュート欠損の場合 [#fallback-to-dist-" -"version]_ を取り扱えるように設計されているかのいずれかであるべきです。" +"方で公開することを *要求* されてはいない ( :pep:`PEP 396 <396>` で撤回された" +"提案を見てください) ので、 ``__version__`` アトリビュートは、それを提供するも" +"のとして知られているインターフェース (あるプロジェクトが自身のバージョン番号" +"やその直接の依存先のバージョン番号を問い合わせるなど) だけから問い合わせを受" +"けるか、または、問い合わせる側のコードがアトリビュート欠損の場合 [#fallback-" +"to-dist-version]_ を取り扱えるように設計されているかのいずれかであるべきで" +"す。" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -3994,15 +3998,15 @@ msgstr "" "ている OpenSSL ライブラリのバージョンにアクセスするための複数の方法を提供して" "います::" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -"普通でないバージョン番号のいくつかの例が Seth Larson によって `ブログポスト " -"`_ に挙げられています。" +"普通でないバージョン番号のいくつかの例が Seth Larson によって `blog post " +"`_ に挙げられています。" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_ ・ `Brett Cannon によるもの `_ 。ユー" "モラスなものが良ければ、 ZeroVer_ について読んでみてください。" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -4051,10 +4055,10 @@ msgid "" "`Python Package Index (PyPI)`_. It is written for package publishers, who " "are assumed to be the package author." msgstr "" -"文書は、大抵は `Python パッケージインデックス (PyPI) `_ への :term:`配布パッケージ ` の公開や配布に必" -"要な作業の流れをおおまかに描き出すことを目的としています。パッケージの作者と" -"目される、パッケージを公開する人向けに書かれました。" +"文書は、大抵は `Python Package Index (PyPI)`_ への :term:`配布パッケージ " +"` の公開や配布に必要な作業の流れをおおまかに描き出すこ" +"とを目的としています。パッケージの作者と目される、パッケージを公開する人向け" +"に書かれました。" #: ../source/flow.rst:12 msgid "" @@ -4179,8 +4183,8 @@ msgid "" "the `TOML format`_." msgstr "" "ビルド成果物を作成するのに用いるツールによって設定ファイルは変わります。" -"`TOML フォーマット `_ で書かれた `pyproject.toml` ファイルを使う" -"のが標準的な慣習です。" +"`TOML format`_ で書かれた :file:`pyproject.toml` ファイルを使うのが標準的な慣" +"習です。" #: ../source/flow.rst:68 msgid "" @@ -4374,7 +4378,7 @@ msgid "" "End users may also use other tools like :ref:`pipenv`, :ref:`poetry`, " "or :ref:`pdm`." msgstr "" -"エンドユーザは、 :ref:`pipenv` ・ :ref:`poetry` ・ :ref:`ppm` のような他の" +"エンドユーザは、 :ref:`pipenv` ・ :ref:`poetry` ・ :ref:`pdm` のような他の" "ツールを使うことも可能です。" #: ../source/glossary.rst:3 @@ -4390,8 +4394,8 @@ msgid "" "A specific kind of :term:`Built Distribution` that contains compiled " "extensions." msgstr "" -"`ビルド済配布物 `の特定の種類で、コンパイル済みの拡張部分" -"を含むもの。" +":term:`ビルド済配布物 ` の特定の種類で、コンパイル済みの" +"拡張部分を含むもの。" #: ../source/glossary.rst:14 msgid "Build Backend" @@ -4399,16 +4403,17 @@ msgstr "ビルドバックエンド" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" -"ソースコードツリーを受け取って、そこから :term:`ソースコード配布物 ` や :term:`ビルド済配布物 ` " -"をビルドするライブラリ。ビルドの作業は、 :term:`フロントエンド ` によってバックエンドに委任されます。" +":term:`ソースコードツリー ` を受け取って、そこか" +"ら :term:`ソースコード配布物 ` や :term:`" +"ビルド済配布物 ` をビルドするライブラリ。ビルドの作業" +"は、 :term:`フロントエンド ` によってバックエンドに委任されま" +"す。すべてのバックエンドが標準化されたインタフェースを提供します。" #: ../source/glossary.rst:24 msgid "" @@ -4459,12 +4464,12 @@ msgid "" "See :ref:`package-formats` for more information." msgstr "" ":term:`配布物 ` フォーマットは、インストールするために" -"ターゲットとなるシステムの適切な位置に移動させることに必要となるファイルやメ" -"タデータだけを含んでいます。 :term:`Wheel` はそのようなフォーマットですが、イ" -"ンストールできるようになる前にビルド段階が必須となると言う点で :term:`ソース" -"コード配布物 ` はそうではありません。" -"このフォーマットであることは、 Python のファイル群があらかじめコンパイルされ" -"た状態でなければならないということを意味しません (:term:`Wheel` では意図的に" +"ターゲットとなるシステムの適切な位置に移動させることに必要となるファイルや" +"メタデータだけを含んでいます。 :term:`Wheel` はそのようなフォーマットですが、" +"インストールできるようになる前にビルド段階が必須となると言う点で " +":term:`Source Distribution (or \"sdist\")` はそうではありません。この" +"フォーマットであることは、 Python のファイル群があらかじめコンパイルされた状" +"態でなければならないということを意味しません (:term:`Wheel` では意図的に" "コンパイル済みの Python ファイル群を含まないようになっています)。より詳しく" "は :ref:`package-formats` を見てください。" @@ -4480,8 +4485,8 @@ msgid "" "\"sdist\")>` and ``METADATA`` in a :term:`Wheel`)." msgstr "" "インストールされた :term:`プロジェクト ` (``METADATA`` ファイル) " -"や :term:`配布物アーカイブ ` (:term:`Sdist ` の中の ``PKG-INFO`` や :term:`Wheel` 内の " +"や :term:`配布物アーカイブ ` ( :term:`Sdist ` の中の ``PKG-INFO`` や :term:`Wheel` 内の " "``METADATA``) の内部に含まれる場合に :term:`コアとなるメタデータ ` が具体的な形式を取ることになります。" @@ -4496,7 +4501,7 @@ msgid "" "a :term:`Distribution Package` or :term:`Installed Project`." msgstr "" ":ref:`仕様 ` および :term:`コアとなるメタデータのフィールド " -"`\\s において、 :term:`配布パッケージ ` あるいは :term:`インストール済みのプロジェクト ` の鍵となる静的なアトリビュートを記述するものを定義しています。" @@ -4540,10 +4545,10 @@ msgid "" "to distribute a :term:`Release`. The archive file is what an end-user will " "download from the internet and install." msgstr "" -":term:`モジュール `すなわちPythonの :term:`パッケージ `や、ある :term:`Release`を配布するために使われるその他のリソースファ" -"イルを内部に含むバージョン付きアーカイブファイル。アーカイブファイルはエンド" -"ユーザがインターネットからダウンロードしてインストールするものです。" +":term:`モジュール ` すなわちPythonの :term:`パッケージ ` や、ある :term:`Release` を配布するために使われるその他のリソース" +"ファイルを内部に含むバージョン付きアーカイブファイル。アーカイブファイルはエ" +"ンドユーザがインターネットからダウンロードしてインストールするものです。" #: ../source/glossary.rst:97 msgid "" @@ -4556,12 +4561,13 @@ msgid "" "\"distribution\". See :ref:`distribution-package-vs-import-package` for a " "breakdown of the differences." msgstr "" -"配布パッケージは単語ひとつで「パッケージ」や「配布物」と呼ばれることもしばし" -"ばですが、本ガイドでは、 :term:`インポートパッケージ `(これも" -"通常は単に「パッケージ」と呼ばれます)や他の種類の配布物(例えばLinuxディストリ" -"ビューションやPython言語の配布物)でよく単語ひとつの「配布物」と呼ばれるものと" -"の混同を避けるために明確に述べる必要がある場合には、長い方の用語を用いること" -"があります。" +"配布パッケージは1単語で「パッケージ」もしくは「配布物」と呼ばれることもしば" +"しばですが、本ガイドでは、 :term:`インポートパッケージ ` (こ" +"れも通常は単に「パッケージ」と呼ばれます) や、しばしば「配布物」の1単語で呼" +"ばれるもうひとつの種類の配布物 (例えばLinuxディストリビューションやPython言語" +"の配布物) との混同を避けるために明確に述べる必要がある場合には、長い方の用語" +"を用いることがあります。これらの相違に関する詳細について" +"は、 :ref:`distribution-package-vs-import-package` を見てください。" #: ../source/glossary.rst:105 msgid "Egg" @@ -4588,9 +4594,9 @@ msgid "" "file for Python extensions on Unix, a DLL (given the .pyd extension) for " "Python extensions on Windows, or a Java class file for Jython extensions." msgstr "" -":term:`モジュール `とは、Pythonの実装のうちの低レベル言語で書かれた部" -"分で、C/C++で書かれたCythonやJavaで書かれたJythonが該当する。典型的には動的に" -"ロードできるコンパイル済みのファイルをひとつ含んでいて、Unix上では共有オブ" +":term:`モジュール ` とは、Pythonの実装のうちの低レベル言語で書かれた" +"部分で、C/C++で書かれたCythonやJavaで書かれたJythonが該当する。典型的には動的" +"にロードできるコンパイル済みのファイルをひとつ含んでいて、Unix上では共有オブ" "ジェクトファイル(.so)、Windows上ではDLL(拡張子.pydを与えられる)のPython拡張、" "Jython拡張ではJavaのクラスファイルの形を取る。" @@ -4615,9 +4621,10 @@ msgid "" "package` for a breakdown of the differences." msgstr "" "インポートパッケージは、より普通には「パッケージ」という1単語の用語で呼ばれ" -"ますが、本ガイドでは、同様に単に「パッケージ」と呼ばれることが普通であ" -"る :term:`配布物パッケージ `との混同を避けるために必要" -"な場合には、長い方の用語を用いることにします。" +"ますが、本ガイドでは、同様に単に「パッケージ」と呼ばれることが普通である " +":term:`配布物パッケージ ` との混同を避けるために必要な" +"場合には、長い方の用語を用いることにします。これらの違いの細かな部分について" +"は、 :ref:`distribution-package-vs-import-package` を見てください。" #: ../source/glossary.rst:133 msgid "Installed Project" @@ -4645,10 +4652,10 @@ msgid "" "used by frameworks and toolkits which are comprised of multiple individual " "distributions." msgstr "" -"(KGSとは)相互に互換性のある特定のバージョンの配布物の集合。典型的には、テスト" -"スイートで全てのテストに合格して実行できるようなパッケージの特定の組み合わせ" -"が既知の良好なセット(KGS)であると宣言されます。この用語は、個々の配布物を複数" -"組み合わせて構成されるフレームワークやツールキットで共通して用いられます。" +"相互に互換性のある特定のバージョンの配布物の集合。典型的には、テストスイート" +"で全てのテストに合格して実行できるようなパッケージの特定の組み合わせが既知の" +"良好なセットであると宣言されます。この用語は、個々の配布物を複数組み合わせて" +"構成されるフレームワークやツールキットで共通して用いられます。" #: ../source/glossary.rst:149 msgid "License Classifier" @@ -4659,7 +4666,7 @@ msgid "" "A PyPI Trove classifier (as :ref:`described ` in " "the :term:`Core Metadata` specification) which begins with ``License ::``." msgstr "" -"ライセンス ::`` で始まる (:term:`コアとなるメタデータ ` 仕様の中で :ref:`記述されている ` とおり" "の) `` PyPI の Trove classifier プロジェクト。" @@ -4674,15 +4681,15 @@ msgstr "SPDX 表現" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" "ひとつかそれ以上の SPDX :term:`ライセンス識別子 ` (複数の" -"場合もあり) を含む、正当な SPDX ライセンス表現の文法を伴う文字列で、 :term:`" -"プロジェクト ` のライセンス(群) を記述し、どのように相互に関係するの" -"かを表現するもの。例: ``GPL-3.0-or-later`` ・ ``MIT AND (Apache-2.0 OR BSD-2-" -"Clause)``" +"場合もあり) を含む、正当な SPDX ライセンス表現のシンタックスを伴う文字列" +"で、 :term:`配布物アーカイブ ` のライセンス(群) を記述" +"し、どのように相互に関係するのかを表現するもの。例: ``GPL-3.0-or-later`` ・ " +"``MIT AND (Apache-2.0 OR BSD-2-Clause)``" #: ../source/glossary.rst:169 msgid "License Identifier" @@ -4843,10 +4850,10 @@ msgstr "" ":term:`プロジェクト ` の :term:`ソースコードツリー ` 内でパッケージ作者が定義したメタデータで、プロジェクトの :term:`ビルド" "バックエンド ` が :term:`ビルド済メタデータ ` " -"内の :term:`コアとなるメタデータのフィールド ` の形か、ツール特有" -"のフォーマット (``pyproject.toml`` 内の ``[tool]`` テーブル、または、ツール独" -"自の設定ファイル) で書くことができます。" +"内の :term:`Core Metadata field` へ変換するもの。 :term:`Pyproject のメタデー" +"タ ` の形か、ツール特有のフォーマット " +"(``pyproject.toml`` 内の ``[tool]`` テーブル、または、ツール独自の設定ファイ" +"ル) で書くことができます。" #: ../source/glossary.rst:254 msgid "Pure Module" @@ -4857,8 +4864,8 @@ msgid "" "A :term:`Module` written in Python and contained in a single ``.py`` file " "(and possibly associated ``.pyc`` and/or ``.pyo`` files)." msgstr "" -"Pythonで書かれていて単一の``.py``ファイル(とおそらくは対応する``.pyc``ファイ" -"ルや``.pyo``ファイル)に収められた :term:`モジュール `。" +"Pythonで書かれていて単一の ``.py`` ファイル(とおそらくは対応する ``.pyc`` " +"ファイルや ``.pyo`` ファイル)に収められた :term:`モジュール ` 。" #: ../source/glossary.rst:260 msgid "Pyproject Metadata" @@ -4872,13 +4879,12 @@ msgid "" "a :term:`pyproject.toml` file. Notably, *not* a tool-specific source " "metadata format under the ``[tool]`` table in ``pyproject.toml``." msgstr "" -"ref:`プロジェクトのメタデータを宣言する ` の仕様" -"で定義されており、 :pep:`621` で初めて登場した :term:`プロジェクトソースのメ" -"タデータ ` のフォーマット" -"で、 :term:`pyproject.toml` ファイルの ``[project]`` テーブルの下の :term:`プ" -"ロジェクトソースのメタデータ ` として格納されるも" -"の。 ``pyproject.toml`` 内の ``[tool]`` テーブルの下にあるツール特有のソース" -"メタデータでは *ない* ということに注意。" +":ref:`declaring-project-metadata` の仕様で定義されていて、 :pep:`621` で初め" +"て登場した :term:`プロジェクトソースのメタデータ ` " +"で、 :term:`pyproject.toml` ファイルの ``[project]`` テーブルの下" +"の :term:`Pyproject Metadata Key`\\s として格納されるもの。 " +"``pyproject.toml`` 内の ``[tool]`` テーブルの下にあるツール特有のソースメタ" +"データでは *ない* ということに注意。" #: ../source/glossary.rst:271 msgid "Pyproject Metadata Key" @@ -4892,7 +4898,7 @@ msgid "" msgstr "" "``pyproject.toml`` 内の ``[project]`` テーブルの中にあるトップレベルの TOML " "キー; :term:`Pyproject のメタデータ ` の一部。 :term:`コ" -"アとなるメタデータのフィールド ` とは異なる点に注意。" #: ../source/glossary.rst:278 msgid "Pyproject Metadata Subkey" @@ -4913,71 +4919,71 @@ msgstr "Pythonパッケージングオーソリティ(PyPA)" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" "PyPAは、Pythonのパッケージングに関係する多くのプロジェクトを維持管理する作業" "グループです。その活動の一環として :doc:`papa.io ` を維持管理して" -"おり、 `GitHub `_ と `Bitbucket `_ に関連プロジェクトを置くとともに、 `distutils-sig メー" -"リングリスト `_ と `Python談話フォーラム `__ で議論を進めています。" +"おり、 `GitHub `_ に関連プロジェクトを置くととも" +"に、 `distutils-sig メーリングリスト `_ と `Python談話フォーラム `__ で議論を進めています。" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "Pythonパッケージインデックス (PyPI)" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" "`PyPI `_ は、Pythonコミュニティにとってデフォルト" -"の :term:`Package Index`です。ここから配布物を取り出し、また、配布するために" +"の :term:`Package Index` です。ここから配布物を取り出し、また、配布するために" "すべてのPython開発者に開かれています。" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "pypi.org" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" "`pypi.org `_ は、 :term:`Python パッケージインデックス" -"(PyPI)` のためのドメイン名です。2017年にそれまでのドメイン名である " -"``pypi.python.org`` を置き換えました。 :ref:`warehouse`を使っています。" +"(PyPI) ` のためのドメイン名です。2017年にそれま" +"でのドメイン名である ``pypi.python.org`` を置き換えました。 :ref:`warehouse` " +"を使っています。" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "pyproject.toml" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" "ツール不可知論者の :term:`プロジェクト ` 仕様を示すファイ" "ル。 :pep:`518` で定義。" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "リリース" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -"ある特定の時点における :term:`プロジェクト `のスナップショットで、" +"ある特定の時点における :term:`プロジェクト ` のスナップショットで、" "バージョン識別子付きのもの。" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -4989,11 +4995,11 @@ msgstr "" "らば、ソースコード配布物とWindowsインストーラ付配布物の両方が利用可能となって" "いるという具合です。" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "要求事項" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -5007,46 +5013,46 @@ msgstr "" "を許容しています。詳細については、 :ref:`pip:pip install` の項を参照してくだ" "さい。" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "要求事項識別子" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " "For example, \"foo>=1.3\" is a requirement specifier, where \"foo\" is the " "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -":term:`パッケージインデックス `からパッケージをインストールす" +":term:`パッケージインデックス ` からパッケージをインストールす" "るために :ref:`pip` で用いられる様式。この様式の EBNF 文法構造について" "は、 :ref:`依存関係指定子 ` を見てください。例えば、 " "\"foo>=1.3\" は要求事項識別子であり、 \"foo\" の部分がプロジェクトの名称で、 " "\">=1.3\" の部分は :term:`バージョン指定子 ` です" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "Requirementsファイル" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -":ref:`pip`を用いてインストールできるように :term:`要求事項 ` を" +":ref:`pip` を用いてインストールできるように :term:`要求事項 ` を" "記したファイル。詳しい情報は、 :ref:`pip` のドキュメント" "の :ref:`pip:Requirementsファイル ` をみてください。" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "ライセンスディレクトリのルート" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "ライセンスディレクトリ" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -5057,32 +5063,41 @@ msgid "" "root directory that paths recorded in the ``License-File`` :term:`Core " "Metadata Field` are relative to." msgstr "" -":term:`プロジェクトソースツリー <その下にライセンスファイル群を保存するディレ" -"クトリ" - -#: ../source/glossary.rst:366 +":term:`プロジェクトソースツリー ` 、 :term:`配布物アーカ" +"イブ ` 、または、 :term:`インストール済みのプロジェク" +"ト ` の中で、その下にライセンスファイル群を保存するディレ" +"クトリ。 :term:`プロジェクトソースツリー ` また" +"は :term:`ソースコード配布物 (または \"sdist\") ` では、これは、 :term:`プロジェクトルートディレクトリ ` です。 :term:`ビルド済配布物 ` " +"や :term:`インストール済みのプロジェクト ` では、これは、 " +"それぞれ、wheel アーカイブの :file:`.dist-info/licenses/` ディレクトリである" +"か、プロジェクトフォルダーです。また、 ``License-File`` 内の :term:`Core " +"Metadata Field` に記録されているパスはルートディレクトリからの相対パスです。" + +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "setup.py" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "setup.cfg" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -":ref:`distutils`や :ref:`setuptools` で使われるプロジェクトの仕様を記したファ" -"イル。 :term:`pyproject.toml`も見てください。" +":ref:`distutils` や :ref:`setuptools` で使われるプロジェクトの仕様を記した" +"ファイル。 :term:`pyproject.toml` も見てください。" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "ソースコードアーカイブ" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` や :term:`ビ" "ルド配布物 ` という用語を作る前には、:term:`リリース " -"`向けに生のソースコードを収めたアーカイブのことをこう呼んでいた。" +"` 向けに生のソースコードを収めたアーカイブのことをこう呼んでいた。" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" "`ソースコード配布物 (またはsdist) `" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -5111,11 +5126,11 @@ msgstr "" "``python -m build --sdist`` を使って生成されます) 。もっと情報が欲しけれ" "ば、 :ref:`パッケージフォーマット ` を見てください。" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "システムパッケージ" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." @@ -5123,11 +5138,11 @@ msgstr "" "rpmやdpkgのように、オペレーティングシステムに固有のフォーマットで提供される" "パッケージ。" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "バージョン指定子" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -5141,11 +5156,11 @@ msgstr "" "specifiers>` を読んでください。この仕様のサポートは、 :ref:`setuptools` v8.0 " "と :ref:`pip` v6.0 で実装されました。" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "仮想環境" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -5157,15 +5172,15 @@ msgstr "" "環境の生成と使用 ` を見てください。参照実装である :term:`Wheel プロ" "ジェクト ` と混同しないように。" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "Wheel プロジェクト" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." @@ -5190,11 +5205,11 @@ msgstr "" ":term:`Wheel フォーマット ` の PyPA による参照実" "装; :ref:`wheel` 参照。" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "動作可能セット" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -5325,17 +5340,16 @@ msgid "" "`__" msgstr "" -"`Google BigQuery`_ を使って `PyPIダウンロード統計の公開データセット `_ に問い合わせを行うためには、まずGoogleア" -"カウントが必要で、Google Cloud Platform (GCP)でBigQuery APIを有効にしておく必" -"要があります。`クレジットカード登録なしのBigQuery 無料枠 `__ を使うと一ヶ月当たり1TBまでのクエリを走らせ" -"ることができます" +"`Google BigQuery`_ を使って `public PyPI download statistics dataset`_ に問い" +"合わせを行うためには、まずGoogleアカウントが必要で、Google Cloud Platform " +"(GCP) プロジェクトで BigQuery API を有効にしておく必要があります。 `クレジッ" +"トカード登録なしのBigQuery 無料枠 `__ " +"を使うと一ヶ月当たり1TBまでのクエリを走らせることができます" #: ../source/guides/analyzing-pypi-package-downloads.rst:57 msgid "Navigate to the `BigQuery web UI`_." -msgstr "`BigQuery ウェブ UI `_ への道案内。" +msgstr "`BigQuery web UI`_ への道案内。" #: ../source/guides/analyzing-pypi-package-downloads.rst:58 msgid "Create a new project." @@ -5371,12 +5385,12 @@ msgid "" "schema `__ include:" msgstr "" -"それぞれのダウンロードの情報を格納した ``bigquery-public-" -"data.pypi.file_downloads``テーブルについての説明をLinehaulが書きました。この" -"テーブルは、どのファイルがどのようにダウンロードされたかに関する情報を格納し" -"ています。`テーブル構造 `__ から役に" -"立つカラムをいくつか挙げると:" +"それぞれのダウンロードに関する ``bigquery-public-data.pypi.file_downloads`` " +"テーブルについての説明をLinehaulが書きました。このテーブルは、どのファイルが" +"どのようにダウンロードされたかに関する情報を格納しています。`テーブル構造 " +"`__ から役に立つカラムをいくつか挙げ" +"ると:" #: ../source/guides/analyzing-pypi-package-downloads.rst:77 msgid "Column" @@ -5392,7 +5406,7 @@ msgstr "説明" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "例" @@ -5504,8 +5518,8 @@ msgid "" "To count downloads from pip only, filter on the ``details.installer.name`` " "column." msgstr "" -"pipを通じてダウンロードされた数だけを数えるには、``details.installer.name``カ" -"ラムを使って抽出してください。" +"pipを通じてダウンロードされた数だけを数えるには、 ``details.installer.name`` " +"カラムを使って抽出してください。" #: ../source/guides/analyzing-pypi-package-downloads.rst:141 msgid "24334215" @@ -5520,8 +5534,8 @@ msgid "" "To group by monthly downloads, use the ``TIMESTAMP_TRUNC`` function. Also " "filtering by this column reduces corresponding costs." msgstr "" -"月毎のダウンロード数を数えるには、``TIMESTAMP_TRUNC``関数を使います。このカラ" -"ムを使って抽出することは、通信量を抑えることにもなります。" +"月毎のダウンロード数を数えるには、 ``TIMESTAMP_TRUNC`` 関数を使います。このカ" +"ラムを使って抽出することは、通信量を抑えることにもなります。" #: ../source/guides/analyzing-pypi-package-downloads.rst:167 msgid "month" @@ -5584,7 +5598,7 @@ msgid "" "Extract the Python version from the ``details.python`` column. Warning: This " "query processes over 500 GB of data." msgstr "" -"``details.python``カラムからPythonのバージョンを取り出します。警告:このクエ" +"``details.python`` カラムからPythonのバージョンを取り出します。警告:このクエ" "リは500GB以上のデータを処理します。" #: ../source/guides/analyzing-pypi-package-downloads.rst:204 @@ -5772,8 +5786,8 @@ msgid "" "number of download for a package with the command ``pypinfo package_name``." msgstr "" "`pypinfo`_ はデータセットにアクセスして、役に立つクエリをいくつか生成する機能" -"を提供するコマンドラインツールです。例えば、``pypinfo package_name``を実行す" -"れば、そのパッケージのダウンロード総数を問い合わせることができます。" +"を提供するコマンドラインツールです。例えば、 ``pypinfo package_name`` を実行" +"すれば、そのパッケージのダウンロード総数を問い合わせることができます。" #: ../source/guides/analyzing-pypi-package-downloads.rst:309 msgid "Install `pypinfo`_ using pip." @@ -5795,11 +5809,25 @@ msgstr "" "できます。" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 +msgid "``ClickPy``" +msgstr "``ClickPy``" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:339 +msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" +"`ClickPy`_ プロジェクトは、基礎となる日毎に更新されるオープンソースの " +"`ClickHouse`_ データベースへのフリーで直接な SQL アクセスとともに、ダウンロー" +"ド統計をビジュアライズする公開のアプリケーションを提供します。" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 msgid "References" msgstr "参考文献" -#: ../source/guides/analyzing-pypi-package-downloads.rst:339 +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 msgid "" "`PyPI Download Counts deprecation email `__" @@ -5808,7 +5836,7 @@ msgstr "" "email) `__" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -5840,11 +5868,11 @@ msgstr "プラグインの自動検出には大きく分けて3個の実現方 #: ../source/guides/creating-and-discovering-plugins.rst:12 msgid "`Using naming convention`_." -msgstr "`命名規則を用いるやり方 `_ 。" +msgstr "`Using naming convention`_ 。" #: ../source/guides/creating-and-discovering-plugins.rst:13 msgid "`Using namespace packages`_." -msgstr "`namespaceパッケージを用いるやり方 `_ 。" +msgstr "`Using namespace packages`_ 。" #: ../source/guides/creating-and-discovering-plugins.rst:14 msgid "`Using package metadata`_." @@ -6250,12 +6278,12 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" "しかしながら、このシンタックスはちょっと実際的ではありません; 上で定義したエ" -"ントリポイントの名称がパッケージ名称と一致しないので、 (たとえひとつしか実行" -"スクリプトがないとしても) 明示的にどの実行スクリプトを走らせるのかを述べる必" -"要があります。" +"ントリポイントの名称がパッケージ名称と一致しないので、 (たとえたったひとつだ" +"けしか実行スクリプトがないとしても) 明示的にどの実行スクリプトを走らせるのか" +"を述べる必要があります。" #: ../source/guides/creating-command-line-tools.rst:159 msgid "" @@ -6780,7 +6808,7 @@ msgstr "" "ん。" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -7313,8 +7341,9 @@ msgid "" "This workflow requires that the user installing the package uses Pip [#]_, " "or another installer that supports the Metadata 1.2 specification." msgstr "" -"このワークフローは、パッケージをインストールしようとするユーザが Pip か、また" -"は、Metadata 1.2 の仕様を満足する別のインストーラを使うことを要求します。" +"このワークフローは、パッケージをインストールしようとするユーザが Pip [#]_ " +"か、または、Metadata 1.2 の仕様を満足する別のインストーラを使うことを要求しま" +"す。" #: ../source/guides/dropping-older-python-versions.rst:20 msgid "Dealing with the universal wheels" @@ -7389,9 +7418,10 @@ msgid "" "Or, at least Python 3.7 and beyond, skipping the 3.7.0 and 3.7.1 point " "releases:" msgstr "" -"「少なくとも Python 3.9」のような、バージョンの範囲や除外のルールを指定するこ" -"とができます。あるいは、「少なくとも Python 3.7 かそれ以上、しかし、 3.7.0 " -"と 3.7.1 を除く」というポイントリリース:" +"「少なくとも Python 3.9」のような、バージョンの範囲や除外のルール " +"(で :ref:`version-specifiers` 仕様に合致するもの) を指定することができます。" +"あるいは、「少なくとも Python 3.7 かそれ以上、しかし、 3.7.0 と 3.7.1 のポイ" +"ントリリースを除く」:" #: ../source/guides/dropping-older-python-versions.rst:89 msgid "" @@ -7541,9 +7571,10 @@ msgid "" "with valid HTTPS. At this time, the security of your user's installations " "depends on all repositories using a valid HTTPS setup." msgstr "" -"加えて、あなたのリポジトリを公開する場合はHTTPSで公開することが強く推奨されま" -"す。この時、ユーザがあなたのパッケージをインストールする際のセキュリティは、" -"すべてのリポジトリが適切なHTTPS設定であるか否かに依存します。" +"加えて、あなたのリポジトリを公開する場合は正当なHTTPSで公開することが **強く" +"** 推奨されます。この時、ユーザがあなたのパッケージをインストールする際のセ" +"キュリティは、すべてのリポジトリが適切なHTTPS設定を使っているか否かに依存しま" +"す。" #: ../source/guides/hosting-your-own-index.rst:35 msgid "\"Manual\" repository" @@ -8234,7 +8265,7 @@ msgid "" "``ensurepath`` ensures that the application directory is on your ``$PATH``. " "You may need to restart your terminal for this update to take effect." msgstr "" -"``ensurepath `` は、アプリケーションのあるディレクトリが ``$PATH`` に含まれる" +"``ensurepath`` は、アプリケーションのあるディレクトリが ``$PATH`` に含まれる" "ようにすることを保証します。この更新(訳注、``$PATH``の修正のこと)が効果を持つ" "ようにするためにターミナルを再起動する必要があるかもしれません。" @@ -8632,9 +8663,9 @@ msgid "" "into your shell's ``PATH``." msgstr "" "仮想環境に (依存先の) パッケージをインストールして使用できるようにするには、" -"まず *仮想環境* を ``activate`` しなければなりません。仮想環境を活性化する" -"と、その仮想環境に特有の ``python`` と ``pip`` の実行ファイルがシェルの " -"``PATH`` 変数に追加されます。" +"まず仮想環境を ``activate`` しなければなりません。仮想環境を活性化すると、そ" +"の仮想環境に特有の ``python`` と ``pip`` の実行ファイルがシェルの ``PATH`` 変" +"数に追加されます。" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:93 msgid "" @@ -8775,9 +8806,9 @@ msgid "" "using :term:`version specifiers `. For example, to " "install a specific version of ``requests``:" msgstr "" -":term:`バージョン指定子 ` を使えば、 pip でパッケージのバー" -"ジョンを指定してインストールすることができます。例えば、 ``requests`` の特定" -"のバージョンをインストールするなら:" +":term:`version specifiers ` を使えば、 pip でパッケージの" +"バージョンを指定してインストールすることができます。例えば、 ``requests`` の" +"特定のバージョンをインストールするなら:" #: ../source/guides/installing-using-pip-and-virtual-environments.rst:257 msgid "To install the latest ``2.x`` release of requests:" @@ -9006,18 +9037,19 @@ msgstr "ライセンシングの例とユーザシナリオ" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" -":pep:`639` では、プロジェクトの来船を宣言する方法やライセンスファイルへのパ" -"ス、そして、その他の法的に要求される情報を仕様化しています。この説明文書は、" -"レガシーなライセンス宣言から標準化されたそれへどのようにして移行するのかに関" -"する明確なガイダンスを提供することを目的としています。より新しいガイダンスを" -"適用しようと試みる前に、好みのビルドバックエンドが :pep:`639` をサポートして" -"いることを確認してください。" +":pep:`639` では、 :term:`配布物アーカイブ ` のライセン" +"スを宣言する方法やライセンスファイルへのパス、そして、その他の法的に要求され" +"る情報を仕様化しています。この説明文書は、レガシーなライセンス宣言から標準化" +"されたそれへどのようにして移行するのかに関する明確なガイダンスを提供すること" +"を目的としています。より新しいガイダンスを適用しようと試みる前に、好みのビル" +"ドバックエンドが :pep:`639` をサポートしていることを確認してください。" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 msgid "Licensing Examples" @@ -9062,9 +9094,11 @@ msgstr "" "``[metadata]`` テーブルで:" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" -"配布物パッケージのためのコアとなるメタデータの出力はこんなふうになるでしょう:" +":term:`配布パッケージ ` のためのコアとなるメタデータの" +"出力はこんなふうになるでしょう:" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 msgid "" @@ -9082,11 +9116,11 @@ msgstr "" "れのアーカイブのルートディレクトリであり、 ``{VERSION}`` はコアとなるメタデー" "タ内の Setuptools のリリースのバージョンです。" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "先進的な例" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " @@ -9096,11 +9130,11 @@ msgstr "" "_vendor/` のディレクトリ内に第三者のプロジェクトのライセンスを包含していたと" "しましょう; 特にこの場合は:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" -msgstr "これらのプロジェクトに対するライセンス条項は:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" +msgstr "適切なライセンス表現は:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " @@ -9110,7 +9144,7 @@ msgstr "" "イセンス条項をすべてひとつにまとめて、これらのメタデータを包含することになる" "でしょう。そのような条項はこんなものになるでしょう:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -9130,7 +9164,7 @@ msgstr "" "ピーライト文言や `ライセンス選択通知 `__ があるものと思っ" "てください。" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " @@ -9140,13 +9174,13 @@ msgstr "" "(プロジェクトルートと :file:`pyproject.toml` からの相対) パスに位置するものと" "仮定しています:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" "これらをすべて一緒にすると、 :file:`pyproject.toml` はこんなふうになるでしょ" "う:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" @@ -9154,20 +9188,20 @@ msgstr "" "あるいは、別の方法としては、ライセンスファイル群を明示的に示すこともできます " "(パスはglobパターンとして解釈されるでしょう):" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" ":file:`setup.cfg` をプロジェクトで使っているなら、こんなふうに定義することが" "できます:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" "どちらのアプローチでも、配布物内のコアとなるメタデータの出力はこんな風になる" "でしょう:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " @@ -9178,7 +9212,7 @@ msgstr "" "バージョン番号として、ライセンスファイル群が次のようなパスに配置されるでしょ" "う:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" @@ -9186,7 +9220,7 @@ msgstr "" "ビルド済みの wheel では、 :file:`/` をルートディレクトリとし、 ``{VERSION}`` " "を先述の通りとして、ライセンスファイル群は次の場所に保存されるでしょう:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " @@ -9196,19 +9230,19 @@ msgstr "" "ディレクトリとし、 ``{VERSION}`` を先述の通りとして、ライセンスファイル群は次" "の場所にインストールされるでしょう:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "表現 の例" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "いくつかの追加の ``License-Expression`` の正当な値の例:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "ユーザシナリオ" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -9222,11 +9256,11 @@ msgstr "" "て確信を持てないならば、それを法律上の管轄範囲とするライセンスを持った法律実" "務家に相談するべきす。" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "配布するつもりのないプライベートなパッケージがあります" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " @@ -9236,7 +9270,7 @@ msgstr "" "ら、 *通常は* 厳格に公式のライセンス (ファイル) を含める必要があるわけではあ" "りませんし、だからここで何か追加の作業をする必要があるわけではないでしょう。" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -9249,11 +9283,11 @@ msgstr "" "パッケージの設定の中にライセンス条項として ``LicenseRef-Proprietary`` や著作" "権情報やその他の法的通知を含めておくことは良い考えです。" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "自分の作品を法的制限なしに共有したいだけです" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -9269,7 +9303,7 @@ msgstr "" "作品に対して誰でも (多分作者も望まないでしょうが、作者相手に訴訟を起こす以外" "の) どんなことでも許容するので、その代替として偉大な選択肢です。" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -9284,11 +9318,11 @@ msgstr "" "``license = \"MIT\"`` を :file:`pyproject.toml` の中の ``[project]`` の下か、" "あるいは、設定ファイル・節の中に追加してください。これで出来上がりです!" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "プロジェクトを特定のライセンスの下で配布したい" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -9308,7 +9342,7 @@ msgstr "" "`__ や `SPDX `__ のようなサイトに行けば、 " "``LICENSE-ID`` とコピー可能なライセンス条項を見つけることができるでしょう。" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." @@ -9317,11 +9351,11 @@ msgstr "" "ツールによってライセンスファイルを加えることができ、将来に渡って表現をサポー" "トするでしょう。" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "既にライセンスが付与された既存パッケージを維持管理しています" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " @@ -9330,7 +9364,7 @@ msgstr "" "ライセンスファイルやプロジェクト内のメタデータが既に存在しているなら、新機能" "の利点を得るためには2,3の捻りを加えるだけで良いはずです。" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -9338,18 +9372,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" "プロジェクト設定ファイルにおいて、ライセンス条項を ``license`` " "(:file:`pyproject.toml` の ``[project]`` テーブル) の下か、使っているパッケー" "ジングツールでの相当する場所に置き、古いやり方である ``license`` テーブルサブ" "キーや ``License::`` 分類子を取り除くのを忘れないでください。既存の " "``license`` 値は、そのままでも正当なもの (例えば ``MIT`` や ``Apache-2.0 OR " -"BSD-2-Clause`` 等) かもしれません; そうでなければ、そのプロジェクトで採用して" -"いるライセンスに合致する識別子を `SPDX ライセンスリスト `__ で確認" -"して下さい。" +"BSD-2-Clause`` 等) かもしれません; そうでなければ、採用しているライセンスに合" +"致する識別子を `SPDX ライセンスリスト `__ で確認して下さい。" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " @@ -9359,7 +9392,7 @@ msgstr "" "しているツールの設定ファイルに、ライセンスファイル群を列挙しておくのを忘れな" "いでください。" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -9378,11 +9411,11 @@ msgstr "" "いるかもしれませんので、さらなる情報を得るために使っているツールの説明文書を" "調べて下さい。" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "私のパッケージには異なるライセンスの他のソースコードが含まれています" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -9394,22 +9427,21 @@ msgstr "" "含んでいるなら、関与するライセンスとそれらの間の関係を記述するために、ライセ" "ンス条項を構築することができます。" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 -msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." -msgstr "" -"端的に言えば、 ``License-1 AND License-2`` では、 *両方の* ライセンスか、また" -"は、その一部 (例えば、同梱されたあるファイルがもう一つの方のライセンスの下に" -"ある) がプロジェクトに適用され、 ``License-1 OR License-2`` では、ユーザの選" -"択によって、 *いずれか一方の* ライセンス (例えば、複数のライセンスから一つを" -"選ぶことをユーザに許したい) を適用しても構いません。もっとも込み入った状況で" -"さえもカバーできる表現を組み立てるためのグループ化のために括弧 (``()``) を使" -"うことができます。" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 +msgid "" +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." +msgstr "" +"端的に言えば、 ``License-1 AND License-2`` は *両方の* ライセンスが適用される" +"こと (例えば、同梱されたあるファイルがもう一つの方のライセンスの下にある) を" +"意味し、また、 ``License-1 OR License-2`` では、ユーザの選択によって、 *いず" +"れか一方の* ライセンスを使用することができます (例えば、複数のライセンスから" +"一つを選ぶことをユーザに許したい) 。もっと込み入った状況でさえもカバーできる" +"表現を組み立てるためのグループ化のために括弧 (``()``) を使うことができます。" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 msgid "" @@ -9729,8 +9761,8 @@ msgid "" "Uploads through ``pypi.python.org`` were *switched off* on **July 3, 2017**. " "As of April 13th, 2018, ``pypi.org`` is the URL for PyPI." msgstr "" -"``pypi.python.org`` を通じたアップロードは **2017年7月3日** に使用不可能にな" -"りました。2018年4月13日以降は、``pypi.org`` が PyPI のURLです。" +"``pypi.python.org`` を通じたアップロードは **2017年7月3日** に *使用不可能* " +"になりました。2018年4月13日以降は、``pypi.org`` が PyPI のURLです。" #: ../source/guides/migrating-to-pypi-org.rst:23 msgid "" @@ -9782,9 +9814,9 @@ msgid "" msgstr "" "ツールのデフォルト設定が切り替わっている程に十分に新しいツールを使っているこ" "とを確認するのに加えて、そのデフォルトのアップロード先 URL を上書きするような" -"設定をしていないことを確実にしてください。これは典型的には " -"file:`$HOME/.pypirc` で設定されています。もしこんなファイルを目にするようであ" -"れば:" +"設定をしていないことを確実にしてください。これは典型的に" +"は :file:`$HOME/.pypirc` で設定されています。もしこんなファイルを目にするよう" +"であれば:" #: ../source/guides/migrating-to-pypi-org.rst:52 msgid "" @@ -9832,8 +9864,8 @@ msgid "" "As a result, attempting explicit registration after switching to using " "PyPI.org for uploads will give the following error message::" msgstr "" -"その結果、アップロードに PyPI.org を使うように切り替えた後は明示的な登録の試" -"行は次のエラーメッセージを返すでしょう::" +"その結果、アップロードに PyPI.org を使うように切り替えた後は、明示的な登録の" +"試行は次のエラーメッセージを返すでしょう::" #: ../source/guides/migrating-to-pypi-org.rst:88 msgid "" @@ -10100,8 +10132,8 @@ msgid "" "Read :ref:`pyproject-project-table` for the full specification of the " "content allowed in the ``[project]`` table." msgstr "" -"``[project]`` テーブルで許される内容の完全な仕様について" -"は、 :ref:`` を読んでください。" +"``[project]`` テーブル内で許される内容の完全な仕様について" +"は、 :ref:`pyproject-project-table` を読んでください。" #: ../source/guides/modernize-setup-py-project.rst:169 msgid "How to handle dynamic metadata?" @@ -10146,8 +10178,8 @@ msgid "" "This file can be as minimalistic as this:" msgstr "" "たとえ全ての内容が :file:`pyproject.toml` へ移された後であっても、プロジェク" -"トのソースコードツリーに `setup.py` を残すことは完全に問題のないことです。こ" -"のファイルの最小限の姿はこのようになります:" +"トのソースコードツリーに :file:`setup.py` を残すことは完全に問題のないことで" +"す。このファイルの最小限の姿はこのようになります:" #: ../source/guides/modernize-setup-py-project.rst:246 msgid ":ref:`pyproject-toml-spec`" @@ -10230,15 +10262,6 @@ msgstr "" "ラッパスクリプトを書くか、アプリケーションの main エントリポイントを直接に呼" "び出すための ``python -c ''`` を使うかしなければなりません。" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" -"さらに詳しい情報については、 `pkg_resources 説明文書 `__ を参照してください。" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "バイナリ拡張をパッケージングする" @@ -10567,8 +10590,8 @@ msgid "" "wrapper modules up to date." msgstr "" "以下に記述するアプローチは、単に配布物での事例ということは全くなく、むしろ" -"ラッパモジュールを最新に保つというメンテナンス上の重荷を大いに軽減することが" -"できるものです。" +"ラッパモジュールを最新に保つというメンテナンス上の重荷を大いに軽減することが " +"*できる* ものです。" #: ../source/guides/packaging-binary-extensions.rst:160 msgid "" @@ -11089,15 +11112,16 @@ msgid "" "as **distributions** in this document to avoid ambiguity). For example, if " "you have the following package structure:" msgstr "" -"名前空間 (Namespace) パッケージは、複数かつ個別の :term:`パッケージ ` (曖昧にならないようにこの文書では **配布物** と呼ぶことにする) を越" -"えて、単一の :term:`パッケージ ` の中のサブパッケージやモ" -"ジュールを分離できるようにすることができます。例えば、下に示すようなパッケー" -"ジ構造であれば:" +"名前空間 (Namespace) パッケージは、複数かつ個別の :term:`配布パッケージ " +"` (曖昧にならないようにこの文書では **配布物** と呼ぶこ" +"とにする) を越えて、単一の :term:`パッケージ ` の中のサブパッ" +"ケージやモジュールを分離できるようにすることができます。例えば、下に示すよう" +"なパッケージ構造であれば:" #: ../source/guides/packaging-namespace-packages.rst:26 msgid "And you use this package in your code like so::" -msgstr "そして、このパッケージを自分のソースコード中で使うにはこのようにする::" +msgstr "" +"そして、このパッケージを自分のソースコード中で使うにはこのようにします::" #: ../source/guides/packaging-namespace-packages.rst:31 msgid "Then you can break these sub-packages into two separate distributions:" @@ -11159,7 +11183,7 @@ msgid "" "Use `legacy namespace packages`_. This comprises `pkgutil-style namespace " "packages`_ and `pkg_resources-style namespace packages`_." msgstr "" -"`レガシー名前空間パッケージ群`_ を使ってください。これは`pkgutil 型の名前空間" +"`legacy namespace packages`_ を使ってください。これは `pkgutil 型の名前空間" "パッケージ`_ および `pkg_resources 型の名前空間パッケージ`_ から構成されてい" "ます。" @@ -11177,8 +11201,7 @@ msgstr "" "Python 3.3 では :pep:`420` から **暗黙の** 名前空間パッケージを追加しました。" "ネイティブな名前空間パッケージを作成するのに必要なことは、名前空間パッケージ" "のディレクトリから :file:`__init__.py` を取り除くことだけです。ファイル構造の" -"例はこちら (:ref:`ソースコードレイアウト ` に従いま" -"す):" +"例はこちら (:ref:`src-layout ` に従います):" #: ../source/guides/packaging-namespace-packages.rst:94 msgid "" @@ -11250,16 +11273,15 @@ msgstr "伝統的な名前空間パッケージ群" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" "これらのふたつの方法は、 :pep:`420` 以前に名前空間を作成するのに使われました" -"が、今では過去のやり方であると考えられていて、すでにこの方法を使っているパッ" -"ケージとの互換性を必要とする場合を除いては使われるべきではないと考えられてい" -"ます。また、 :doc:`pkg_resources ` は非推奨になりま" -"した。" +"が、今では過去のやり方であると考えられていて、すでにこれらの方法のいずれかを" +"使っているパッケージとの互換性を必要とする場合を除いては使われるべきではない" +"と考えられています。" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." @@ -11267,7 +11289,7 @@ msgstr "" "既存のパッケージを移植するためには、名前空間を共有するすべてのパッケージが同" "時に移植されなければなりません。" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -11279,25 +11301,25 @@ msgstr "" "りません。同じ名前空間向けにパッケージを提供するような複数の配布物で、異なる" "手法を用いることは推奨されません。" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "pkgutil 型名前空間パッケージ" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" "Python 2.3 で :doc:`pkgutil ` モジュール" "と :py:func:`python:pkgutil.extend_path` 関数が導入されました。Python 2.3+ " "と Python 3 の両方に互換性を持つ必要がある名前空間パッケージを宣言するのにこ" "れが使えるかもしれません。これは、互換性のレベルが最も高くなるアプローチとし" -"て推奨されています。" +"て推奨されていました。" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" @@ -11305,8 +11327,8 @@ msgstr "" "pkgutil 型の名前空間パッケージを作成するには、その名前空間パッケージ用" "に :file:`__init__.py` ファイルを準備する必要があります:" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" @@ -11314,8 +11336,8 @@ msgstr "" "名前空間パッケージ用の :file:`__init__.py` ファイルは、次に示すものを含んでい" "る必要があります:" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -11328,7 +11350,7 @@ msgstr "" "しょう。 :file:`__init__.py` に他のコードを追加しても、それはアクセスできない" "ものとなるでしょう。" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." @@ -11336,31 +11358,48 @@ msgstr "" "pkgutil 型の名前空間パッケージのふたつの動作例が `pkgutil 型名前空間を例示す" "るプロジェクト`_ にあります。" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "pkg_resources 型名前空間パッケージ" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" +"この節の情報は既に古くなっていて、 (Setuptools 82.0.0 の時点では) もはや機能" +"しません。歴史上の参考のために保持されているだけです。" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." msgstr "" -":doc:`Setuptools ` は、 `pkg_resources.declare_namespace`_ " -"関数と :func:`~setuptools.setup` に渡す ``namespace_packages`` 引数を提供しま" -"す。これらを一緒に使うことで名前空間パッケージを宣言することができます。この" -"手法はもはや推奨されていませんが、既存の名前空間パッケージのほとんどで使われ" -"ています。この手法を採用している既存の名前空間パッケージの中に新しい配布物を" -"作成する時には、異なる手法が相互に互換ではないために既存パッケージを移植しよ" -"うとすることが推奨されていないので、この手法を採用し続けることを推奨します。" +"``pkg_resources`` は既に非推奨になっており、 Setuptools 82.0.0 で完全に取り除" +"かれました。" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." +msgstr "" +":doc:`Setuptools ` は、以前は、 " +"``pkg_resources.declare_namespace`` 関数と :func:`~setuptools.setup` に渡す " +"``namespace_packages`` 引数を提供します。これらを一緒に使うことで名前空間パッ" +"ケージを宣言することができます。この手法はもはや推奨されていませんが、既存の" +"名前空間パッケージのほとんどで使われています。この手法を採用している既存の名" +"前空間パッケージの中に新しい配布物を作成する時には、異なる手法が相互に互換で" +"はないために既存パッケージを移植しようとすることが推奨されていないので、この" +"手法を採用し続けることを推奨します。" + +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" @@ -11368,7 +11407,7 @@ msgstr "" "pkg_resources 型名前空間パッケージを作成するには、名前空間パッケージ用" "の :file:`__init__.py` を準備する必要があります:" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" @@ -11376,7 +11415,7 @@ msgstr "" "いくつかの古めの推奨では、次のような名前空間パッケージ用 :file:`__init__.py` " "を使うように言っています:" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -11391,7 +11430,7 @@ msgstr "" "パッケージとしては ``install_requires`` を通じて setuptools に明示的に依存す" "ると示しておくべきです。" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" @@ -11399,14 +11438,6 @@ msgstr "" "最後に、それぞれの配布物は :file:`setup.py` の :func:`~setuptools.setup` 向け" "に ``namespace_packages`` 引数を準備しておく必要があります。例えば:" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" -"pkg_resources 型の名前空間パッケージの動作可能な二つの例が `pkg_resources 型" -"名前空間例示プロジェクト`_ で見つかるはずです。" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -11778,7 +11809,8 @@ msgstr "0; url=../../discussions/single-source-version/" #: ../source/guides/single-sourcing-package-version.rst:6 msgid "Redirecting stale single-source package version link..." -msgstr "古くなったシングルソースのパッケージバージョンリンクをリダイレクトする" +msgstr "" +"古くなったシングルソースのパッケージバージョンリンクをリダイレクトする..." #: ../source/guides/single-sourcing-package-version.rst:8 msgid "" @@ -11862,12 +11894,12 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" -"`Travis CI `_ は Linux と macOS の両方の環境を提供しま" -"す。原稿執筆時点で、 Linux 環境は Ubuntu 12.04 LTS Server Edition 64 bit " +"`Travis CI `_ は Linux と macOS の両方の環境を提供しま" +"す。本稿執筆時点で、 Linux 環境は Ubuntu 12.04 LTS Server Edition 64 bit " "で、 macOS 環境は 10.9.2 です。" #: ../source/guides/supporting-multiple-python-versions.rst:68 @@ -12413,7 +12445,7 @@ msgid "" msgstr "" "しかしながら、このやり方は、 Appveyor のような Windows 上の CI システムでは " "(例えば) Python 3.4 の (32 版ビットと64ビット版の) ふたつの実装が利用できるの" -"に、 ``tox`` では ``py34`` 環境がひとつしかないので、うまく動きません。" +"に、 ``tox`` では ``py34`` 環境がひとつしかないので、うまく *動きません* 。" #: ../source/guides/supporting-windows-using-appveyor.rst:191 msgid "" @@ -12749,7 +12781,11 @@ msgstr "" "ますし、まだ setuptools から利用可能ではありますが Python 3.12 で標準ライブラ" "リから取り除かれたものです。" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "拡張モジュール用のビルドバックエンド" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " @@ -12759,7 +12795,7 @@ msgstr "" "張が書かれた言語用の専用サポートのあるビルドシステムを使うのが最善です、例え" "ば:" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," @@ -12767,7 +12803,7 @@ msgstr "" ":ref:`setuptools` -- C 言語および C++ 言語をネイティブにサポート (サードパー" "ティのプラグインで Go 言語と Rust 言語も)、" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," @@ -12775,7 +12811,7 @@ msgstr "" ":ref:`meson-python` -- C 言語・ C++ 言語・ Fortran ・ Rust およびその他の言語" "が Meson によってサポートされています、" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," @@ -12783,15 +12819,15 @@ msgstr "" ":ref:`scikit-build-core` -- C 言語・ C++ 言語・ Fortran やその他の言語が " "CMake によってサポートされています、" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr ":ref:`maturin` -- Rust 、 Cargo を経由して。" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "配布物をビルドする" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -12804,7 +12840,7 @@ msgstr "" "guide-build-system-table>` ビルドバックエンドが何であれ、それを起動することに" "なります。" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " @@ -12814,7 +12850,7 @@ msgstr "" "bdist_wheel`` を *使わないで* ください。:file:`setup.py` を直接に起動すること" "は :ref:`非推奨 ` になっています。" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " @@ -12824,11 +12860,11 @@ msgstr "" "フォーム向けに wheel ファイルを配布したいと考えているなら、配布可能な wheel " "ファイルをビルドする CI 環境の一部として :ref:`cibuildwheel` を使いましょう。" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "PyPIにアップロードする" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -12841,7 +12877,7 @@ msgstr "" "る :ref:`Trusted Publishing ` を使うことが推奨されていま" "す。" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" @@ -12849,23 +12885,23 @@ msgstr "" "2024 年 11 月の時点では、 PyPI は以下のプラットフォームを 信頼ある公開 " " プロバイダとしてサポートしています:" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "(``https://github.com`` における) GitHub Actions" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "(``https://gitlab.com`` における) GitLab CI/CD" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "ActiveState" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "Google Cloud" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." @@ -12873,7 +12909,7 @@ msgstr "" "利用可能なもうひとつの方法は、 :ref:`twine` を用いて手動でパッケージをアップ" "ロードすることです。" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." @@ -12882,11 +12918,11 @@ msgstr "" "* ください。 :ref:`非推奨 ` であることに加えて、危険 " " です。" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "ワークフローツール" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -12904,31 +12940,31 @@ msgstr "" "のロックファイルをサポートしています。これらは、往々にして、先述のツール群を" "内部的に呼び出しています。アルファベット順に:" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr ":ref:`Flit`," -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr ":ref:`Hatch`," -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr ":doc:`nox `," -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr ":ref:`PDM`," -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr ":ref:`Pipenv`," -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr ":ref:`Poetry`," -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr ":doc:`tox `." @@ -13202,9 +13238,9 @@ msgid "Basic information" msgstr "基本的な情報" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "``名称``" @@ -13242,9 +13278,9 @@ msgstr "" "__sTuFF`` 。" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -13283,7 +13319,7 @@ msgid "Dependencies and requirements" msgstr "依存関係と要求事項" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "``dependencies``/``optional-dependencies``" @@ -13321,8 +13357,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "``requires-python``" @@ -13390,7 +13426,7 @@ msgid "About your project" msgstr "あなたのプロジェクトについて" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "``authors``/``maintainers``" @@ -13403,8 +13439,8 @@ msgstr "" "れる人々のリストを含みます。" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "``説明 ``" @@ -13419,8 +13455,8 @@ msgstr "" "のなので、1行でプロジェクトの説明をしたものであるべきです。" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "``readme``" @@ -13458,7 +13494,7 @@ msgid "``license`` and ``license-files``" msgstr "``license`` と ``license-files``" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" ":pep:`639` によれば、ライセンスはふたつのフィールドで宣言されるべきです:" @@ -13540,8 +13576,8 @@ msgid "0.7.19" msgstr "0.7.19" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "``ライセンス``" @@ -13584,24 +13620,25 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -"プロジェクトが使っているライセンスが既存の SPDX 識別子を持っていない時は、 " -"``LicenseRef-[idstring]`` の書式で作成することができます。カスタムの識別子" -"は、バージョン 2.2 かそれより新しい互換のバージョンの `clause 10.1 " -"`_ という SPDX 仕様に従わなければなりません。" +":term:`配布物アーカイブ ` が使っているライセンスが既存" +"の SPDX 識別子を持っていない時は、 ``LicenseRef-[idstring]`` の書式で作成する" +"ことができます。カスタム識別子は、バージョン 2.2 かそれより新しい互換のバー" +"ジョンの `clause 10.1 `_ という SPDX 仕様に従わなければなりま" +"せん。" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "``license-files``" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." @@ -13609,11 +13646,11 @@ msgstr "" "これは、そのパッケージとともに配布したいと望む、ライセンスファイルとその他の" "法律関係の情報を含むファイルのリストです。" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "glob パターンは、次の仕様に従わなければなりません:" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." @@ -13621,18 +13658,18 @@ msgstr "" "英数字・アンダースコア (``_``) ・ハイフン (``-``) ・ドット (``.``) が文字通り" "に合致するでしょう。" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" "特殊文字: ``*`` ・ ``?`` ・ ``**`` と文字の帯域: [] がサポートされています。" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "パスデリミタは、正スラッシュ (``/``) でなければなりません。" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." @@ -13640,15 +13677,15 @@ msgstr "" "パターンは、 :file:`pyproject.toml` を含むディレクトリに対する相対パスで、" "従ってスラッシュ文字で始まることはできません。" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "親ディレクトリ表示子 (``..``) を使用してはなりません。" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "各 glob は、少なくとも一つのファイルにマッチしなければなりません。" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." @@ -13656,13 +13693,13 @@ msgstr "" "字義通りのパスは、正当な glob です。この仕様でカバーされていない文字や文字の" "並びは、すべて、正当なものではありません。" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "``keywords``" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." @@ -13670,13 +13707,13 @@ msgstr "" "これは、 PyPI 上の検索でキーワードが与えられた時にこのプロジェクトをサジェス" "トするのを助けます。" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "``分類詞 ``" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." @@ -13684,7 +13721,7 @@ msgstr "" "プロジェクトに合致する PyPI 分類子 のリスト。 `可能な分類子のリ" "スト `_ を参照してください。" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -13699,7 +13736,7 @@ msgstr "" "トールされ得るのかを実際に制約するためには、 :ref:`requires-python` 引数を" "使ってください。" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " @@ -13709,13 +13746,13 @@ msgstr "" "Upload`` 分類子を使いましょう。``Private ::`` で始まる分類子を付けられたパッ" "ケージを PyPI は常に拒否します。" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "``urls``" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." @@ -13723,7 +13760,7 @@ msgstr "" "プロジェクトに関連のある URL のリストで、PyPI 上のプロジェクトページの左サイ" "ドバーに表示されるもの。" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -13735,7 +13772,7 @@ msgstr "" "て見たければ `PyPI のプロジェクトメタデータ説明文書 `_ を見て下さい。" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" @@ -13745,7 +13782,7 @@ msgstr "" "example.com\"`` ではなくて ``\"Official Website\" = \"https://" "example.com\"`` のように引用符で囲む必要があります。" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " @@ -13755,7 +13792,7 @@ msgstr "" "することができるように、ユーザにはそのプロジェクトの適切な URL のため" "に :ref:`well-known-labels` を使用することを推奨します。" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " @@ -13765,7 +13802,7 @@ msgstr "" "Link\"`` のいずれもよく知られたラベルではなく、従って、これらは文字通りに展開" "されます:" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -13777,11 +13814,11 @@ msgstr "" "れ得ることを心に留めておいて下さい (順にそれぞれプロジェクトのホームページ、" "および、その外部のダウンロードできる場所)。" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "先進的なプラグイン" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " @@ -13792,16 +13829,16 @@ msgstr "" "以下のように ``[project.entry-points]`` のサブテーブルで宣言する必要がありま" "す:" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" "詳しくは、 :ref:`プラグインガイド ` を見てください。" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "完全な例" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " @@ -13811,7 +13848,7 @@ msgstr "" "考えてください。起きる可能性のある問題に関するいくらかの情報が `このブログ記" "事 `_ にあります。" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -15248,13 +15285,13 @@ msgid "" "Organizations who use pypiserver usually download packages both from " "pypiserver and from PyPI." msgstr "" -"pypiserver は、単純な API とブラウザ向けのインタフェイスだけを実装した (ロー" -"カルディレクトリ上の) 組織内部向けプライベート Python :term:`パッケージイン" -"デックス ` として振る舞う「小さいことは良いことだ」主義者のア" -"プリケーションです。公衆向けに公開することなく標準のツールを使って外部非公開" -"のパッケージをアップロードすることもできますし、それを `pip` でダウンロード・" -"インストールすることもできます。 pypiserver を用いる組織では、通常は " -"pypiserver と PyPI の両方からパッケージをダウンロードします。" +"pypiserver は、単純な API とブラウザ向けのインターフェースを実装した (ローカ" +"ルディレクトリ上の) 組織内部向けプライベート Python :term:`パッケージインデッ" +"クス ` を提供するミニマリストのアプリケーションです。公衆向け" +"に公開することなく標準のツールを使って外部非公開のパッケージをアップロードす" +"ることもできますし、それを :ref:`pip` でダウンロード・インストールすることも" +"できます。 pypiserver を用いる組織では、通常は pypiserver と PyPI の両方から" +"パッケージをダウンロードします。" #: ../source/key_projects.rst:722 msgid "PyScaffold" @@ -16068,7 +16105,7 @@ msgstr "``flit`` を鍵となるプロジェクト群のリストに追加した #: ../source/news.rst:184 msgid "Added ``enscons`` to the list of key projects. (:pr:`357`)" -msgstr "``enscons `` を鍵となるプロジェクト群のリストに追加した。 (:pr:`357`)" +msgstr "``enscons`` を鍵となるプロジェクト群のリストに追加した。 (:pr:`357`)" #: ../source/news.rst:185 msgid "" @@ -16556,7 +16593,7 @@ msgid "" "follow the :doc:`tutorials/packaging-projects` tutorial." msgstr "" "Python と PyPI を使えば、wheel ファイルと sdist ファイルを一緒にアップロード" -"するのが簡単になります。 :doc:`tutoeials/packaging-projects` のチュートリアル" +"するのが簡単になります。 :doc:`tutorials/packaging-projects` のチュートリアル" "に従うだけです。" #: ../source/overview.rst:145 @@ -16744,9 +16781,9 @@ msgid "" "about some of the technologies and techniques utilized by the frameworks " "above, continue reading below." msgstr "" -"フレームワークやプラットフォームに興味がなければ、あるいは、上記のフレーム" -"ワークが利用している技術や手練手管について不思議に思うのであれば、このまま読" -"み進めてください。" +"フレームワークやプラットフォームを使うことに興味が *なければ* 、あるいは、上" +"記のフレームワークが利用している技術や手練手管について不思議に思うのであれ" +"ば、このまま読み進めてください。" #: ../source/overview.rst:230 msgid "Depending on a pre-installed Python" @@ -17602,9 +17639,9 @@ msgid "" "specifier specification `. Normalised version numbers " "cannot contain ``-``." msgstr "" -"バージョン番号は、 `バージョン指定子仕様 ` に従って正規化" -"されなければなりません。正規化済みのバージョン番号は ``-`` を含んでいてはなり" -"ません。" +"バージョン番号は、 :ref:`バージョン指定子仕様 ` に従って" +"正規化されなければなりません。正規化済みのバージョン番号は ``-`` を含んでいて" +"はなりません。" #: ../source/specifications/binary-distribution-format.rst:159 msgid "" @@ -17829,52 +17866,49 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" "RECORD は、 wheel に含まれる (ほとんど) 全てのファイルとそのセキュアなハッ" "シュ値のリストです。 PEP 376 とは異なり、自分自身のハッシュ値を内包することは" -"不可能な RECORD を除く各ファイルのハッシュ値が含まれていなければなりません。" -"署名済みの wheel ファイルがアーカイブの完全性を検証するのに RECORD 内の暗号学" -"的に強いハッシュ値に依存しているので、ハッシュ計算のアルゴリズムは sha256 以" -"上でなければならず、特に md5 とsha1 は許されません。" +"不可能な RECORD を除く個々のファイルのハッシュ値が含まれていなければなりませ" +"ん。ハッシュ計算のアルゴリズムは sha256 以上でなければならず、特に md5 と" +"sha1 は許されません。" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "PEP 376 の INSTALLER と REQUESTED はアーカイブに含まれません。" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" -"RECORD.jws は、デジタル署名のために使われます。これについては RECORD では触れ" -"られません。" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -"自分の wheel ファイルを S/MIME 署名でセキュアにすることを好む人は、 " -"RECORD.p7s を使うことができます。これについては RECORD では触れられません。" +"RECORD.jws および RECORD.p7s は非推奨になりました。これらがまだ使われている場" +"所では、 RECORD.jws と RECORD.p7s のいずれも RECORD の中で言及してはなりませ" +"ん。ビルドバックエンドとその他のツール類はもはやこれらを wheel ファイルに追加" +"してはならず、 インストーラはこれらのファイルがまだその一部をなすような " +"wheel ファイルも存在するということを認識しておくべきです。" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" "展開中に wheel インストーラは RECORD 内のハッシュ値と実際のファイルの内容 (の" -"ハッシュ値) をすべて検証します。 RECORD とその署名による検証に加えて、アーカ" -"イブの中のいずれかのファイルが RECORD にリストされていないか、または、正しく" -"ハッシュされていない時にはインストールがフェイルするでしょう。" +"ハッシュ値) をすべて検証します。 RECORD ・ RECORD.jws ・ RECORD.p7s による検" +"証とは別に、アーカイブの中のいずれかのファイルが RECORD にリストされていない" +"か、または、ハッシュ値が正しくない時には、インストールがフェイルするでしょ" +"う。" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr ":file:`.dist-info/` 内のサブディレクトリ群" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " @@ -17884,48 +17918,48 @@ msgstr "" "ます。 :file:`.dist-info/` の下のサブディレクトリ名で以下のものが特定の用途の" "ために予約されています:" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "サブディレクトリ名" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "PEP / Standard" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "``licenses``" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr ":pep:`639`" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "``license_files``" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "``LICENSES``" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "`REUSE ライセンシングフレームワーク `__" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "``sboms``" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr ":pep:`770`" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr ":file:`.dist-info/licenses/` ディレクトリ" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -17940,11 +17974,11 @@ msgstr "" "に :file:`licenses/` ディレクトリからの相対パスの形で列挙されたファイル群を含" "んでいなければなりません。" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "The :file:`.dist-info/sboms/` ディレクトリ" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " @@ -17954,11 +17988,11 @@ msgstr "" "イブ内に含まれるソフトウェアを記述するソフトウェア部品表 (SBOM) のファイルでなければなりません。" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr ".data ディレクトリ" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " @@ -17968,7 +18002,7 @@ msgstr "" "も、.dist-info ディレクトリと同様に命名されるが .data/ 拡張子をつけられ" "て .data ディレクトリに行きます::" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " @@ -17978,114 +18012,18 @@ msgstr "" "ディレクトリに収めています。インストール中に、これらのサブディレクトリの内容" "を行き先となるパスへ動かします。" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "署名済み wheel ファイル" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" -"Wheel ファイルは、デジタル署名を可能にした拡張 RECORD ファイルを含みます。 " -"PEP 376 の RECORD は、 md5sum の代わりにセキュアなハッシュ値 " -"``digestname=urlsafe_b64encode_nopad(digest)`` (末尾に = 文字を追加しない " -"url セーフな base64 エンコード) を二つ目のカラムとするように修正されました。" -"生成された .pyc ファイルなども含むすべての可能なエントリにハッシュ値が付加さ" -"れていますが、 RECORD は自身のハッシュ値を含むことができないので例外です。例" -"えば::" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" -"署名用のファイルである RECORD.jws と RECORD.p7s は、 RECORD ファイルが作成さ" -"れた後にしか追加できないので、RECORD ファイル内で言及されることは全くありませ" -"ん。アーカイブの中の他のファイルはすべて、RECORD ファイル内に正しいハッシュ値" -"を持たなければならず、そうでなければインストールに失敗します。" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" -"JSON ウェブ署名が使われる場合には、ひとつかそれ以上の JSON Web Signature " -"JSON Serialization (JWS-JS) 署名が RECORD ファイルの隣にある RECORD.jws ファ" -"イルの中に保存されます。 RECORD ファイルの SHA-256 ハッシュ値を署名の JSON ペ" -"イロードに含むことで RECORD ファイルに署名するために JWS が使われます:" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "(ハッシュ値の書き方のフォーマットは RECORD で使われるものと同じです。)" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" -"RECORD.p7s を使う場合は、このファイルに RECORD ファイルに関する分離型の S/" -"MIME 署名を入れておかなければなりません。" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" -"wheel インストーラはデジタル署名を理解することを要求されてはいませんが、 " -"RECORD ファイル内のハッシュ値が展開されたファイル内容に対して妥当であることを" -"検証しなければなりません。インストーラが RECORD ファイルに対するハッシュ値を" -"確認する際には、別途用意された署名検証プログラムは RECORD ファイルが署名に対" -"して妥当であることだけを確認すれば十分です。" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "以下を参照のこと" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "https://datatracker.ietf.org/doc/html/rfc7515" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "https://datatracker.ietf.org/doc/html/rfc7517" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "FAQ" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" "Wheel は .data ディレクトリを定義します。すべてのデータをそこに入れるべきで" "しょうか?" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -18101,63 +18039,11 @@ msgstr "" "*wheel の* ``.data`` ディレクトリに置く形で配布されない時でさえも、 " "``pkgutil.get_data(package, resource)`` を使い続けても構わないのです。" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "なぜ wheel は添付された署名を持つのか?" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" -"添付された署名は、アーカイブと一体のものとして転送されるので、分離署名よりも" -"便利です。個々のファイルが署名されているだけなので、アーカイブを圧縮し直して" -"も署名が無効にならず、また、アーカイブ全体をダウンロードしなくても個々のファ" -"イルの検証を行うことができます。" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "なぜ wheel は JWS 署名を許容するのか?" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" -"JWS がその一部を構成する JOSE の仕様は実装を容易にするように設計されており、" -"その性質は wheel の基本的な設計目標のひとつでもあります。 JWS は使いやすくて" -"簡潔な純 Python の実装をもたらします。" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "なぜ wheel は S/MIME 署名をも許容するのか?" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" -"S/MIME 署名は、既存の公開鍵基盤を wheel でも採用する必要があるか、または、採" -"用したいユーザのために許容されています。" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" -"署名されたパッケージは、セキュアなパッケージ更新システムを構成するひとつのビ" -"ルディングブロックであるというだけのものです。 Wheel としては、単にビルディン" -"グブロックを提供するだけです。" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "\"pure lib\" と \"plat lib\" って、どう扱えばいいの?" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -18170,7 +18056,7 @@ msgstr "" "ムに依存しないパッケージを '/usr/lib64/pythonX.Y/site-packages' にインストー" "ルします。" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -18183,7 +18069,7 @@ msgstr "" "ルと相同であり、 \"purelib\" と \"platlib\" の両カテゴリにファイル群が存在す" "ることには問題がありません。" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " @@ -18193,13 +18079,13 @@ msgstr "" "\"purelib\" または \"platlib\" のいずれか一方しか持たず、 \"Root-Is-" "purelib\" を適切に設定しつつファイル群をルートディレクトリに置くべきです。" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" "Python のソースコードを wheel ファイルから直接にインポートすることはできます" "か?" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -18213,7 +18099,7 @@ msgstr "" "す* 。しかし、このような動作はフォーマット設計の自然な結果とはいうものの、実" "際にはこれに依存することは一般的には推奨されていません。" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -18231,7 +18117,7 @@ msgstr "" "を適切な場所に公開することによって C 言語拡張をビルドする標準的な機構を完全に" "統合する機能) への信頼を故意に避けることになります。" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -18264,7 +18150,7 @@ msgstr "" "イスは依然として実際にディスク上に存在するファイルがないと動作できないかもし" "れません。" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -18279,7 +18165,7 @@ msgstr "" "バグであると認めてもらう前に、多くのプロジェクトではそれを完全インストールの" "状態で再現するように要求されるであろうということを認識しておいてください。" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -18291,20 +18177,20 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "歴史" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "2013年2月: :pep:`427` を通じてこの仕様書が承認されました。" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." @@ -18312,7 +18198,7 @@ msgstr "" "2021年2月: 他の普及しているツールが実際にやるのと同じやり方に合わせて、 " "wheel のファイル名におけるエスケーピングの規則が修正されました。" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -18325,7 +18211,7 @@ msgstr "" "いての公式には定義されていないので、ツールが異なれば動作が異なるかもしれませ" "ん) 。" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " @@ -18334,7 +18220,7 @@ msgstr "" "2022年12月: :pep:`639` を通じて、 :file:`.dist-info/licenses/` ディレクトリが" "仕様化された。" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." @@ -18342,11 +18228,16 @@ msgstr "" "2025年1月: 名称とバージョン番号が ``.dist-info`` と ``.data`` のディレクトリ" "のために標準化される必要があると明確化された。" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" +"2026年1月: :pep:`815` で RECORD.jws および RECORD.p7s が非推奨になりました。" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "補遺" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "urlsafe-base64-nopad の実装の例::" @@ -18463,7 +18354,7 @@ msgstr "**schema\\_version**" #: ../source/specifications/build-details/v1.0.rst:12 msgid "Schema version." -msgstr "スキーマバージョン" +msgstr "スキーマバージョン。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "" @@ -19070,7 +18961,7 @@ msgid "" "config definition files, otherwise this section will be missing." msgstr "" "Python 実装が pkg-config 定義ファイル群を提供しているなら、このフィールドは存" -"在していなければ ** ならず** 、そうでなければ欠けていることでしょう。" +"在していなければ **ならず** 、そうでなければ欠けていることでしょう。" #: ../source/specifications/build-details/v1.0.rst:12 msgid "/usr/lib/pkgconfig" @@ -19202,18 +19093,18 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" -"メタデータを処理する自動化ツールは、 ``metadata_version`` が自身のサポートす" -"る最大のものより大きい場合には警告を行うべきであり、かつ、 " -"``metadata_version`` が自身のサポートする最大のメジャーバージョンより大きいメ" -"ジャーバージョンを持つ場合には異常終了しなければなりません (:ref:`バージョン" -"指定子 ` に記述されている通り、メジャーバージョンとはバー" -"ジョンのうち最初のドットよりも前の部分です) 。" +"メタデータを処理する自動化ツールは、 ``metadata-version`` が自身のサポートす" +"る最大のものより大きい場合には警告を行うべきであり、かつ、 ``metadata-" +"version`` が自身のサポートする最大のメジャーバージョンより大きいメジャーバー" +"ジョンを持つ場合には異常終了しなければなりません (:ref:`バージョン指定子仕様 " +"` に記述されている通り、メジャーバージョンとはバージョン" +"のうち最初のドットよりも前の部分です) 。" #: ../source/specifications/core-metadata.rst:62 msgid "" @@ -19406,7 +19297,7 @@ msgstr "" #: ../source/specifications/core-metadata.rst:983 #: ../source/specifications/core-metadata.rst:1005 msgid "Examples::" -msgstr "例::" +msgstr "例 ::" #: ../source/specifications/core-metadata.rst:167 msgid "Supported-Platform (multiple use)" @@ -19548,7 +19439,7 @@ msgstr "" #: ../source/specifications/core-metadata.rst:279 msgid "Format::" -msgstr "フォーマット::" +msgstr "フォーマット ::" #: ../source/specifications/core-metadata.rst:283 msgid "The ``type/subtype`` part has only a few legal values:" @@ -19590,11 +19481,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:298 msgid "``GFM`` for :rfc:`GitHub-flavored Markdown <7764#section-3.2>`" -msgstr "``GFM`` すなわち :rfc:`Github 流の Markdown <7764#section-3.2>`" +msgstr "``GFM`` すなわち :rfc:`Github-flavored Markdown <7764#section-3.2>`" #: ../source/specifications/core-metadata.rst:299 msgid "``CommonMark`` for :rfc:`CommonMark <7764#section-3.5>`" -msgstr ":rfc:`CommonMark <7764#section-3.5>` を指定する ``CommonMark``" +msgstr "``CommonMark`` すなわち :rfc:`CommonMark <7764#section-3.5>`" #: ../source/specifications/core-metadata.rst:317 msgid "" @@ -19689,8 +19580,8 @@ msgid "" "Per RFC-822, this field may contain multiple comma-separated e-mail " "addresses::" msgstr "" -"RFC-822 によれば、このフィールドは、複数の電子メールアドレスをコンマで区切っ" -"て記述しても構いません::" +"RFC-822 によれば、このフィールドには、複数の電子メールアドレスをコンマで区" +"切って記述しても構いません ::" #: ../source/specifications/core-metadata.rst:399 msgid "Maintainer" @@ -19917,8 +19808,8 @@ msgid "" "The project names should correspond to names as found on the `Python Package " "Index`_." msgstr "" -"プロジェクト名は、 `Python パッケージインデックス `_ に" -"出現する名前に対応していなければなりません。" +"プロジェクト名称は、 `Python Package Index`_ に出現する名前に対応していなけれ" +"ばなりません。" #: ../source/specifications/core-metadata.rst:582 msgid "" @@ -20191,10 +20082,9 @@ msgstr "" "クトが ``Import-Name`` 内に持つエントリがもう一つのプロジェクトの ``Import-" "Namespace`` エントリと重複する時には、エラーを発生させるべきです。これは、プ" "ロジェクトが意図せずもう一つのプロジェクトのソースコードを覆い隠してしまうこ" -"とを避けるためです。ツール類は、\n" -"既にインストールされているプロジェクトとの間でインポートネームの重複が起きる" -"ような既存環境にプロジェクトをインストールする時には、警告するかエラーを発生" -"させて構いません。" +"とを避けるためです。ツール類は、既にインストールされているプロジェクトとの間" +"でインポートネームの重複が起きるような既存環境にプロジェクトをインストールす" +"る時には、警告するかエラーを発生させて構いません。" #: ../source/specifications/core-metadata.rst:762 msgid "" @@ -20476,10 +20366,11 @@ msgid "" msgstr "" "バージョン宣言は、一連の比較演算子とバージョン番号をカンマで区切ったもので" "す。比較演算子は、\"<\", \">\", \"<=\", \">=\", \"==\", \"!=\" のいずれかひと" -"つでなければなりません。バージョン番号は、オプションとして 'a' か 'b' の後ろ" -"に数字が続く形の \"pre-release\" タグを末尾につけた、二つか三つの数字部分を" -"ドットで区切ったものです。バージョン番号の例としては、 \"1.0\" や \"2.3a2\" " -"や \"1.3.99\" 、" +"つでなければなりません。バージョン番号は、 " +"``distutils.version.StrictVersion`` によって受け入れられるフォーマットでなけ" +"ればなりません: 二つか三つの数字部分をドットで区切ったもので、オプションとし" +"て 'a' か 'b' の後ろに数字が続く形の \"pre-release\" タグを末尾につけたもの。" +"バージョン番号の例としては、 \"1.0\" や \"2.3a2\" や \"1.3.99\" 、" #: ../source/specifications/core-metadata.rst:974 msgid "" @@ -21621,7 +21512,15 @@ msgstr "" "規表現が決定された (以前は ``\\Z`` の代わりに ``$`` で終端していたので、誤っ" "て後続する行末コード を許容していた)" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" +"2025年12月: あらゆる意味での同一性 の比較がパースされる" +"ことを許すために、 ``==`` より前に ``===`` を (評価することを) 確実に。" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" @@ -21629,11 +21528,11 @@ msgstr "" "Python のパッケージをインストールする際に推奨されるツールである pip (http://" "pip.readthedocs.org/en/stable/)" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "parsley PEG ライブラリ。 (https://pypi.python.org/pypi/parsley/)" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -22619,9 +22518,10 @@ msgid "" msgstr "" "この仕様では ``EXTERNALLY-MANAGED`` というマーカファイルを定義しており、これ" "によって Python をインストールする際に ``pip`` のような Python に特有のツール" -"群に対してインタプリタのデフォルトのインストール環境にパッケージをインストー" -"ルしたり取り除いたりしないように指示し、その代わりに、エンドユーザに対し" -"て :ref:`仮想環境 ` を使うようにガイドするべきで" +"す。" #: ../source/specifications/externally-managed-environments.rst:24 msgid "" @@ -22722,7 +22622,7 @@ msgid "" msgstr "" "インストールすることができ、Python 内で使うことができるソフトウエアの単位。つ" "まり、これは Python 特有のパッケージングツールが :term:`配布パッケージ " -"` または単に \"配布物\" と呼びがちなものを参照していま" +"` または単に \"配布物\" と呼びがちなものを参照していま" "す; 口語的な省略形である \"配布物\" は Python Package Index の意味で使われま" "す。" @@ -22785,7 +22685,7 @@ msgid "" "on Conda-created environments, most of the concerns in this document do not " "apply to ``conda`` when acting as a Python-specific package manager.)" msgstr "" -"(Conda_ は少々特別なケースです、というのは、 `conda` コマンドを使えば単に " +"(Conda_ は少々特別なケースです、というのは、 ``conda`` コマンドを使えば単に " "Python パッケージだけではなくずっと多くのものをインストールすることができるか" "らで、いくつかの意味ではディストロ 付属のパッケージマネージャにもっ" "と似ていると言えるでしょう。 ``conda`` コマンドは一般的には Conda が作成した" @@ -22866,13 +22766,13 @@ msgid "" "provides a means for the distributor to indicate how to use a virtual " "environment as an alternative." msgstr "" -"第一に、 ** Python インタープリタの配布を行う者が、そのインタープリタを" -"Python の外側にある手段によって管理されるパッケージを持ち** 、従って、 pip の" -"ような Python 特有のツール類が、特別にオーバーライドされない限りは、当該イン" -"タープリタのグローバルな ``sys.path`` に存在するインストール済みパッケージ" -"を、いかなる意味でも変更 (追加、更新・ダウングレード、あるいは削除) するべき" -"ではないという印を付ける方法を記述しています。また、代替手段としての仮想環境" -"をどのように使うのかを配布者 が指示する手段を提供します。" +"第一に、 **Python インタープリタの配布を行う者が、そのインタープリタをPython " +"の外側にある手段によって管理されるパッケージを持ち** 、従って、 pip のような " +"Python 特有のツール類が、特別にオーバーライドされない限りは、当該インタープリ" +"タのグローバルな ``sys.path`` に存在するインストール済みパッケージを、いかな" +"る意味でも変更 (追加、更新・ダウングレード、あるいは削除) するべきではないと" +"いう印を付ける方法を記述しています。また、代替手段としての仮想環境をどのよう" +"に使うのかを配布者 が指示する手段を提供します。" #: ../source/specifications/externally-managed-environments.rst:142 msgid "" @@ -22900,15 +22800,15 @@ msgid "" msgstr "" "第二に、パッケージをインタープリタのグローバルコンテキスト (マークされていな" "いインタープリタの場合やマークをオーバーライドした場合) にインストールする際" -"に、 ** Python 特有のパッケージマネージャが修正・削除しても構わないのは、今ま" +"に、 **Python 特有のパッケージマネージャが修正・削除しても構わないのは、今ま" "さにファイル群を作成しようとしている sysconfig スキームのディレクトリ内にある" -"ものだけである ** というルールを設定します。これによって、 Python インタープ" -"リタの配布者 がふたつのディレクトリをセットアップすることを許" -"し、つまり、一つは自分で管理しているパッケージ群 (のためのディレクトリ) でも" -"う一つはエンドユーザがインストールした管理対象外のパッケージ群 (のためのディ" -"レクトリ) で、管理対象外のパッケージをインストールしたとしても外部パッケージ" -"マネージャ が管理しているファイル群が削除 (または" -"上書き) されることがないことを保証します。" +"ものだけである** というルールを設定します。これによって、 Python インタープリ" +"タの配布者 がふたつのディレクトリをセットアップすることを許し、" +"つまり、一つは自分で管理しているパッケージ群 (のためのディレクトリ) でもう一" +"つはエンドユーザがインストールした管理対象外のパッケージ群 (のためのディレク" +"トリ) で、管理対象外のパッケージをインストールしたとしても外部パッケージマ" +"ネージャ が管理しているファイル群が削除 (または上" +"書き) されることがないことを保証します。" #: ../source/specifications/externally-managed-environments.rst:160 msgid "Marking an interpreter as using an external package manager" @@ -23016,12 +22916,12 @@ msgid "" "directory. For instance, Debian may ship a file in ``/usr/lib/python3.9/" "EXTERNALLY-MANAGED`` consisting of something like" msgstr "" -"Python 特有のものではないパッケージマネージャで、 Python パッケージの " +"Python 特有のものではないパッケージマネージャで、その Python パッケージの " "``sys.path`` 内にあるライブラリを管理するものを持っているソフトウェア配布者" "は、一般的に、標準ライブラリのディレクトリに ``EXTERNALLY-MANAGED`` ファイル" "を置いた状態で出荷するべきです。例えば、 Debian では、次に示すような何かで構" "成された ``/usr/lib/python3.9/EXTERNALLY-MANAGED`` ファイルを同梱して出荷して" -"も構いません。" +"も構いません" #: ../source/specifications/externally-managed-environments.rst:230 msgid "" @@ -23245,8 +23145,8 @@ msgstr "" "``/usr/local`` 対 ``/usr`` の分離が、 ``PATH`` 環境変数が典型的に ``/usr/" "local/bin:/usr/bin`` を含んでいて、デフォルトで非ディストロのソフトウェアが " "``/usr/local`` にインストールされることのアナロジーになっていることに注目して" -"ください。この分離は、 `推奨されるファイルシステム階層標準 `__ です。" +"ください。この分離は、 `recommended by the Filesystem Hierarchy Standard`__ " +"です。" #: ../source/specifications/externally-managed-environments.rst:349 msgid "" @@ -23293,15 +23193,15 @@ msgid "" "absolutely needed, use ``pip uninstall --scheme=posix_distro`` to use pip to " "remove packages from the system-managed directory." msgstr "" -"我々は、 pip が指定されたスキームで走るように指示する ``--scheme=...`` オプ" -"ションを追加することを提案します。(現在の pip がスキームを決定する方法につい" -"ては後述の `実装ノート `_ を参照してください。) これが" -"利用可能になり次第、ローカルのテストやおそらく実際のパッケージングで、 " -"(``get_preferred_schemes`` をバイパスして) 明示的にディストロ側の場所へパッ" -"ケージをインストールするために ``pip install --scheme=posix_distro`` のような" -"形で実行することができるようになるでしょう。また、もし本当に必要であれば、 " -"pip を使ってシステム側が管理するディレクトリからパッケージを削除するために " -"``pip uninstall --scheme=posix_distro`` を使うことさえできるでしょう。" +"我々は、 pip が指定されたスキームで走るように指示する ``--scheme=...`` " +"オプションを追加することを提案します。(現在の pip がスキームを決定する方法に" +"ついては後述の `Implementation Notes`_ を参照してください。) これが利用可能に" +"なり次第、ローカルのテストやおそらく実際のパッケージングで、 " +"(``get_preferred_schemes`` をバイパスして) 明示的にディストロ側の場所へ" +"パッケージをインストールするために ``pip install --scheme=posix_distro`` のよ" +"うな形で実行することができるようになるでしょう。また、もし本当に必要であれば" +"、 pip を使ってシステム側が管理するディレクトリからパッケージを削除するため" +"に ``pip uninstall --scheme=posix_distro`` を使うことさえできるでしょう。" #: ../source/specifications/externally-managed-environments.rst:377 msgid "" @@ -23441,12 +23341,11 @@ msgid "" "``sysconfig.get_path(\"stdlib\")``." msgstr "" "Debian は、現在、 (``VIRTUAL_ENV`` 環境変数を確認することを含む) いくつかの発" -"見的な解法を使った `仮想環境内のデフォルトのインストール先を変更するパッチ " -"`__ を入れていて、仮想環境内で使われるディレクトリが ``dist-" -"packages`` ではなく ``site-packages`` に留まるようになっています。これは、こ" -"の提案に特に影響を与えません、というのは、そのパッチの実装は、実際にはデフォ" -"ルトの ``sysconfig`` スキームを変更するわけではなく、特に " +"見的な解法を使った `patch to change the default install location inside a " +"virtual environment`__ を入れていて、仮想環境内で使われるディレクトリが " +"``dist-packages`` ではなく ``site-packages`` に留まるようになっています。これ" +"は、この提案に特に影響を与えません、というのは、そのパッチの実装は、実際には" +"デフォルトの ``sysconfig`` スキームを変更するわけではなく、特に " "``sysconfig.get_path(\"stdlib\")`` の結果を変更しないからです。" #: ../source/specifications/externally-managed-environments.rst:445 @@ -23457,13 +23356,12 @@ msgid "" "envisioned by bpo-43976_, except implemented as a code patch to " "``distutils`` instead of as a changed ``sysconfig`` scheme." msgstr "" -"Fedora は、現在、`rpmbuild 内で実行しているのでなければデフォルトのインストー" -"ル先を変更するパッチ `__ を適用していて、「ふたつのシステムワイドなディレ" -"クトリ」のアプローチを使っています。これは、概念としては、 ``sysconfig`` ス" -"キームを変更するものとしてではなく ``distutils`` へのソースコードパッチとして" -"実装されていることを除けば、 bpo-43976_ によって可視化されたある種のフックで" -"す。" +"Fedora は、現在、`patch to change the default install location when not " +"running inside rpmbuild`__ を適用していて、「ふたつのシステムワイドな" +"ディレクトリ」のアプローチを使っています。これは、概念としては、 " +"``sysconfig`` スキームを変更するものとしてではなく ``distutils`` への" +"ソースコードパッチとして実装されていることを除けば、 bpo-43976_ によって可視" +"化されたある種のフックです。" #: ../source/specifications/externally-managed-environments.rst:454 msgid "" @@ -24011,11 +23909,11 @@ msgid "" "and a ``PAYLOAD_BODY`` of the JSON-encoded statement above. No other " "``PAYLOAD_TYPE`` is permitted." msgstr "" -"このステートメントに対する署名は、 ``application/vnd.in-toto+json`` の " -"``PAYLOAD_TYPE`` と JSON にエンコードされた上記のステートメントを使った `v1 " -"DSSE 署名プロトコル `__ で構築されます。これ以外の ``PAYLOAD_TYPE`` は許されていませ" -"ん。" +"このステートメントに対する署名は、``application/vnd.in-toto+json`` の " +"``PAYLOAD_TYPE`` と JSON にエンコードされた上記のステートメントの " +"``PAYLOAD_BODY`` を伴った `v1 DSSE signature protocol `__ を使って構築されます。こ" +"れ以外の ``PAYLOAD_TYPE`` は許されていません。" #: ../source/specifications/index-hosted-attestations.rst:141 msgid "Provenance objects" @@ -24259,8 +24157,8 @@ msgid "" "This specification defines a metadata comment block format (loosely inspired " "by `reStructuredText Directives`__)." msgstr "" -"この仕様では、メタデータのコメントブロックの (`reStructuredText " -"Directives`__ に大雑把に基づく) フォーマットを定義します。" +"この仕様では、 (`reStructuredText Directives`__ に大雑把に基づく) メタデータ" +"のコメントブロックのフォーマットを定義します。" #: ../source/specifications/inline-script-metadata.rst:20 msgid "" @@ -24383,10 +24281,9 @@ msgid "" "configure behavior. It has the same semantics as the :ref:`[tool] table in " "pyproject.toml `." msgstr "" -"``[tool]`` テーブルは、どんなツールでもスクリプトランナーでもその他のもので" -"も、振る舞いを設定するのに使うことができます。:ref:`pyproject.toml " -" 内の [tool] テーブル` と同一のセマンティクスを持ちま" -"す。" +"``[tool]`` テーブルは、どんなツールでもスクリプトランナーでもその他のものでも" +"、振る舞いを設定するのに使用して構いません。 :ref:`pyproject.toml内の [tool] " +"テーブル ` と同一のセマンティクスを持ちます。" #: ../source/specifications/inline-script-metadata.rst:86 msgid "The top-level fields are:" @@ -24464,7 +24361,7 @@ msgstr "" "す。" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "推奨事項" @@ -27391,10 +27288,22 @@ msgstr "" "ユーザ名・パスワードなどの入力を省くことができます。" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr ":file:`.pypirc` ファイルは、 UTF-8 で符号化される **べき** です。" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" +"他の文字符号化方式を使うと、 :file:`.pypirc` ファイルを読み書きするツール類が" +"正しく動作しないかもしれません。" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "(元々は :ref:`distutils` パッケージで定義された) フォーマットは:" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." @@ -27402,23 +27311,23 @@ msgstr "" "``distutils`` の節では、リポジトリを説明するようなすべての節の名前を列挙する " "``index-servers`` フィールドを定義しています。" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "リポジトリを記述する各節では、3個のフィールドを定義しています:" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "``repository``: リポジトリの URL。" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "``username``: リポジトリで登録済みのユーザ名。" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "``password``: ユーザ名を認証するために使われるパスワード。" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " @@ -27428,7 +27337,7 @@ msgstr "" "ティのために `キーリング `_ ・環境変数での設定・コマンドラインでのパ" "スワード供給のような代替策を検討してください。" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" @@ -27436,11 +27345,11 @@ msgstr "" "そうでなければ、 :file:`.pypirc` のパーミッションを設定して、自分だけが閲覧や" "修正を行えるようにしてください。例えば、 Linux や macOS では次のようにします:" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "共通の設定" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " @@ -27451,7 +27360,7 @@ msgstr "" "異なります。もっと詳しい情報や使い方の指南については、それぞれのプロジェクト" "の説明文書を参照してください。" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" @@ -27459,7 +27368,7 @@ msgstr "" "Twine のデフォルト設定は、 PyPI と TestPyPI のリポジトリ節を含ん" "だ :file:`.pypirc` を真似ています:" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." @@ -27467,11 +27376,11 @@ msgstr "" "Twine は、 :file:`$HOME/.pypirc` からの設定に対して、コマンドラインや環境変数" "といった追加の設定をデフォルト設定に追加するでしょう。" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "PyPI トークンを使う" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" @@ -27479,7 +27388,7 @@ msgstr "" "自分の PyPI 用 `API トークン`_ を設定するには、次のよう" "な :file:`$HOME/.pypirc` を作れば良いでしょう:" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." @@ -27487,11 +27396,11 @@ msgstr "" ":ref:`TestPyPI ` 用には、Test PyPI アカウントで作成した API" "トークンを使った ``[testpypi]`` 節を追加してください。" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "別のパッケージインデックスを使う" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " @@ -27501,14 +27410,14 @@ msgstr "" "リの名前が含まれるように再定義する必要があるでしょう。PyPI と TestPyPI とプラ" "イベートなリポジトリの設定をした :file:`$HOME/.pypirc` の完全な例を示します:" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" msgstr "" -"``password`` フィールドを使う代わりに、 (Twineによってインストールされる) `" -"キーリング `_ を使って API トークンやパスワードを安全に保存すること" -"を検討してください:" +"``password`` フィールドを使う代わりに、 (Twineによってインストールされる) " +"`keyring`_ を使って API トークンやパスワードを安全に保存することを検討してく" +"ださい:" #: ../source/specifications/pyproject-toml.rst:6 msgid "``pyproject.toml`` specification" @@ -27520,7 +27429,7 @@ msgid "" "guide to ``pyproject.toml``, see :ref:`writing-pyproject-toml`." msgstr "" "これは **技術的な正式の仕様** です。 ``pyproject.toml`` の配慮があってユーザ" -"に優しいガイド文書としては、 :ref:`wriging-pyproject-toml` を見てください。" +"に優しいガイド文書としては、 :ref:`writing-pyproject-toml` を見てください。" #: ../source/specifications/pyproject-toml.rst:14 msgid "" @@ -27531,10 +27440,6 @@ msgstr "" "ツール類向けの設定ファイルとして働きます。" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "この仕様は、元々は :pep:`518` 及び :pep:`621` で定義されました。" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] ` に従います。" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" @@ -27584,7 +27489,7 @@ msgstr "" "``setuptools`` と共にビルドされるプロジェクトにおける ``[build-system]`` の例" "は:" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." @@ -27593,7 +27498,7 @@ msgstr "" "された設定ファイルをデフォルトのセマンティクスとして使用することを期待されて" "います。" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -27611,7 +27516,7 @@ msgstr "" "テーブルは存在しているけれども必須のフィールドが欠けている場合には、ツールは" "これをエラーであると判断するべきです。" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -27624,7 +27529,7 @@ msgstr "" "つ、 ``[project]`` テーブルが欠落している) のであれば、ツール類は、ユーザに対" "してエラーを提示することを選択しても構いません。" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " @@ -27634,11 +27539,11 @@ msgstr "" "を提供するためには、後述の `JSON スキーマ `_ がデー" "タフォーマットとして適しているでしょう:" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "プロジェクトのメタデータを宣言する: ``[project]`` テーブル" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." @@ -27646,7 +27551,7 @@ msgstr "" "``[project]`` テーブルは、プロジェクトの :ref:`コアとなるメタデータ ` を定義します。" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -27662,7 +27567,7 @@ msgstr "" "データは ``dynamic`` キー (この仕様内で後で定義します) を経由して一覧化されて" "いて、ツール側が後から提供することになるでしょう。" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." @@ -27670,11 +27575,11 @@ msgstr "" "``[project]`` テーブルが欠損している場合は、暗黙理に、 :term:`ビルドバックエ" "ンド ` が動的にすべてのキーを準備することを意味します。" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "必ず静的に定義しなければならない必須のキーは次の通り:" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" @@ -27682,7 +27587,7 @@ msgstr "" "必須フィールドだが、静的に指定しても動的に指定しても *いずれでも構わない* " "キーは以下の通り:" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." @@ -27690,58 +27595,58 @@ msgstr "" "他の全てのキーは必須ではないものと解釈され、これらは静的に指定しても動的にリ" "ストしても未指定のままにしていても構いません。" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "``[project]`` テーブルで許容されるキーの完全なリストは次のとおりです:" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "``著者 ``" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "``依存関係 ``" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "``import-names``" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "``import-namespaces``" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "``保守者 ``" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "``optional-dependencies``" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "TOML_ 型: 文字列" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" @@ -27749,11 +27654,11 @@ msgstr "" ":ref:`コアとなるメタデータ ` フィールドに対応する: :ref:`名前 " "` フィールド" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "プロジェクトの名前。" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." @@ -27761,7 +27666,7 @@ msgstr "" "内部的な一貫性を保つために、ツール側では読み取ったらすぐに、この名前を :ref:`" "正規化 ` するべきです。" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" @@ -27769,7 +27674,7 @@ msgstr "" ":ref:`コアとなるメタデータ ` に対応する: :ref:`バージョン " "`" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." @@ -27777,11 +27682,11 @@ msgstr "" ":ref:`バージョン指定子仕様 ` で定義されるものとしての、プ" "ロジェクトのバージョン。" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "ユーザは正規化済みのバージョンを指定するようにするべきです。" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" @@ -27789,7 +27694,7 @@ msgstr "" ":ref:`コアとなるメタデータ ` フィールドに対応する: :ref:`要約 " "`" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." @@ -27797,25 +27702,25 @@ msgstr "" "1行で書かれたプロジェクトに関する説明の要約。これが複数行に渡る場合には、" "ツールはエラーを発生させても構いません。" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "TOML_ 型: 文字列またはテーブル" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -"対応する `コアとなるメタデータ ` フィール" -"ド: :ref:`Description ` and :ref:`Description-" -"Content-Type `" +"対応する :ref:`core metadata ` フィールド: :ref:`Description " +"` and :ref:`Description-Content-Type `" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "プロジェクトの説明全体 (すなわち README)。" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -27841,7 +27746,7 @@ msgstr "" "場合には、全ての認識できない拡張子についてツールはエラーを発生させなければな" "りません。" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -27856,7 +27761,7 @@ msgstr "" "がこれら両方のキーを同時に指定していたらツールはエラーを発生させなければなり" "ません。" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -27878,7 +27783,7 @@ msgstr "" "でなければ、ツールはサポートしていない content-type に対してエラーを発生させ" "なければなりません。" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" @@ -27886,19 +27791,19 @@ msgstr "" ":ref:`コアとなるメタデータ ` フィールドに対応す" "る: :ref:`Requires-Python `" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "プロジェクトが要求する Python のバージョン。" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -"対応する :ref:`コアとなるメタデータ ` フィールド: :ref:`ライセ" -"ンス表現 `" +"対応する :ref:`コアとなるメタデータ ` フィール" +"ド: :ref:`License-Expression `" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " @@ -27908,7 +27813,7 @@ msgstr "" "SPDX :term:`ライセンス表現 ` であるテキスト文字列。ツール" "類は、表現文字列の正当性検証と大文字小文字正規化を行うべきです。" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -27921,15 +27826,15 @@ msgstr "" "同一である場合に **のみ** 指定されるべきです。ライセンス表現が異なるのであれ" "ば、動的なものとして指定するか、または、全く設定しないか、であるべきです。" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "伝統的仕様" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "TOML_ 型: テーブル" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" @@ -27937,7 +27842,7 @@ msgstr "" "対応する :ref:`core metadata ` フィールド: :ref:`License " "`" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -27954,22 +27859,22 @@ msgstr "" "排他的で、従って、両方のキーが指定されているメタデータについてツールの側では" "エラーを発生させなければなりません。" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" "テーブルサブキー群では、値としての文字列が :pep:`639` によって非推奨にされま" "した。" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "TOML_ 型: 文字列の配列" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" @@ -27977,7 +27882,7 @@ msgstr "" "対応する :ref:`コアとなるメタデータ ` フィール" "ド: :ref:`License-File `" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -27991,7 +27896,7 @@ msgstr "" "ば :file:`setup.py` や :file:`setup.cfg` その他のような伝統的なプロジェクト設" "定ファイル群のあるディレクトリ) からの相対パスで指定した配列。" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." @@ -27999,13 +27904,13 @@ msgstr "" "文字列は、 :doc:`/specifications/glob-patterns` の仕様に倣って、正当な glob " "パターンを含んでいなければなりません。" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" "パターンは、 :file:`pyproject.toml` を含むディレクトリからの相対パスで、" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." @@ -28014,11 +27919,11 @@ msgstr "" "と想定しなければならず、また、これを検証して、もし正当でなければエラーを発生" "させなければなりません。" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "ビルドツール:" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." @@ -28026,7 +27931,7 @@ msgstr "" "すべての配布物アーカイブ中の、列挙されたパターンにバッチするすべてのファイル" "を含めなければなりません。" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." @@ -28034,7 +27939,7 @@ msgstr "" "コアとなるメタデータの中の License-File フィールドの下にあるファイルパスで合" "致したもののそれぞれを列挙しなければなりません。" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -28049,11 +27954,11 @@ msgstr "" "をひとつも含めないことを選択することもできますし、あるいは、独自の論理を用い" "て配布物中の適切なファイルを発見することもできます。" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "TOML_ 型: 文字列のキー・バリュー組を伴ったインラインテーブルの配列" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email ` ・ :ref:`Maintainer ` " "・ :ref:`Maintainer-email `" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " @@ -28075,7 +27980,7 @@ msgstr "" "まに解釈可能です — 元々のまたは主要な作者でも構わないし、現在の保守者やパッ" "ケージのオーナでも構いません。" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." @@ -28083,7 +27988,7 @@ msgstr "" "\"maintainers\" キーは \"authors\" キーに似ていて、その正確な意味はさまざまに" "解釈可能です。" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -28099,14 +28004,14 @@ msgstr "" "ません。これらのキーは共に必須ではありませんが、少なくともいずれかのキーが" "テーブル内で指定されていなければなりません。" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" "データを使って :ref:`コアとなるメタデータ ` に書き込むやり方は" "次の通りです:" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." @@ -28115,7 +28020,7 @@ msgstr "" "author>` なり :ref:`Maintainer ` なりに書き込みま" "す。" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` なり :ref:`Maintainer-email ` なりに" "書き込みます。" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` なりに書き込みま" "す。" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "複数の値がある場合はコンマで区切るべきです。" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" "対応する :ref:`コアとなるメタデータ ` フィール" -"ド: :ref:`Keywords `" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "プロジェクトに関するキーワード。" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" @@ -28160,11 +28065,11 @@ msgstr "" "対応する :ref:`コアとなるメタデータ ` フィール" "ド: :ref:`Classifier `" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "プロジェクトに適合する Trove 分類子。" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -28177,11 +28082,11 @@ msgstr "" "子の両方が使われている場合には、ビルドツール類は、エラーを発生させても構いま" "せん。" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "TOML_ 型: 文字列のキー・バリューを伴うテーブル" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" @@ -28189,7 +28094,7 @@ msgstr "" "対応する :ref:`コアとなるメタデータ ` フィール" "ド: :ref:`Project-URL `" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" @@ -28199,11 +28104,11 @@ msgstr "" "にメタデータを処理する時の標準化のルールとよく知られた ルールに" "ついては、 :ref:`well-known-project-urls` を見てください。" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "エントリポイント" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" @@ -28211,11 +28116,11 @@ msgstr "" "TOML_ 型: table (``[project.scripts]`` ・ ``[project.gui-scripts]`` ・ " "``[project.entry-points]``)" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr ":ref:`Entry points specification `" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -28227,7 +28132,7 @@ msgstr "" "``console_scripts`` グループに対応しています。テーブル内のキーはエントリポイ" "ントの名前であり、値は参照されるオブジェクトです。" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " @@ -28237,7 +28142,7 @@ msgstr "" "points>` の中の ``gui_scripts`` グループに対応します。そのフォーマットは " "``[project.scripts]`` と同じです。" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -28250,7 +28155,7 @@ msgstr "" "てはならず、代わりにエントリポイントグループを1段階の深さに保つようにしなけ" "ればなりません。" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -28262,7 +28167,7 @@ msgstr "" "それぞれ ``[project.scripts]`` や ``[project.gui-scripts]`` と混同してしまう" "といけないので、ビルド時のバックエンドがエラーを発生させなければなりません。" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" @@ -28270,7 +28175,7 @@ msgstr "" "TOML_ 型: :pep:`508` の文字列 (``dependencies``) の配列、および、 :pep:`508` " "の文字列 (``optional-dependencies``) の配列の値を伴ったテーブル" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra ` および :ref:`Provides-" "Extra `" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "(必須ではない) プロジェクトの依存関係。" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -28296,7 +28201,7 @@ msgstr "" "フォーマットされていなければなりません。それぞれの文字列は、 :ref:`Requires-" "Dist ` エントリに直接にマップしています。" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -28314,7 +28219,7 @@ msgstr "" "する :ref:`Requires-Dist ` のエントリになりま" "す。" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" @@ -28322,7 +28227,7 @@ msgstr "" "対応する :ref:`core metadata ` フィールド: :ref:`Import-Name " "`" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -28336,7 +28241,7 @@ msgstr "" "private\"``) を、セミコロンの前後に空白文字がいくつあっても良い形で、後続させ" "ても構いません。" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -28363,8 +28268,8 @@ msgstr "" "プロジェクトは、それが public であるか private であるかを ``; private`` 修正" "子を適切に使用してすべてのインポートネームを列挙するべきです。" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." @@ -28373,7 +28278,7 @@ msgstr "" "に列挙している場合、ツール類は、曖昧さの故にエラーを発生させなければなりませ" "ん。" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " @@ -28383,8 +28288,8 @@ msgstr "" "配布物ファイルの中には Python モジュールがひとつも存在しないということ) を表" "現するために、 ``import-names`` を空の配列に設定しても構いません。" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." @@ -28392,11 +28297,11 @@ msgstr "" "``project.dynamic`` の中のそのキーをユーザが宣言しているなら、ビルド用バック" "エンドは、その値を動的に計算することをサポートしても構いません。" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "例:" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" @@ -28404,7 +28309,7 @@ msgstr "" "対応する :ref:`コアとなるメタデータ ` フィール" "ド: :ref:`Import-Namespace `" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -28420,7 +28325,7 @@ msgstr "" "ば ``\"; private\"``)。 ``import-names`` とは異なって、 ``import-" "namespaces`` は空の配列であってはいけません。" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -28433,7 +28338,7 @@ msgstr "" "``import-names`` と ``import-namespaces`` のいずれかまたは両方に適切に列挙さ" "れているべきです。" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -28445,15 +28350,15 @@ msgstr "" "に同じインポートネームを列挙しているプロジェクト群を、それぞれ互いに隠蔽して" "しまうことなしに一緒にインストールすることができます。" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "例:" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "TOML_ 型: 文字列の配列" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" @@ -28461,7 +28366,7 @@ msgstr "" ":ref:`コアとなるメタデータ ` フィールドに対応する: :ref:`ダイ" "ナミック ` フィールド" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -28474,7 +28379,7 @@ msgstr "" "されていて未指定のままであることを期待されているのかについて明確に描き出しま" "す。" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." @@ -28482,7 +28387,7 @@ msgstr "" "ビルド用のバックエンドは、静的に指定されたメタデータ (つまり ``dynamic`` 内に" "列挙されたキーではないメタデータ) を尊重しなければなりません。" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." @@ -28490,7 +28395,7 @@ msgstr "" "メタデータで ``dynamic`` 内に ``name`` が指定されている場合には、ビルド用バッ" "クエンドがエラーを発生させなければなりません。" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -28505,7 +28410,7 @@ msgstr "" "須のフィールドが ``[project]`` テーブルの中にどんな形でも存在していないという" "ことは不可能であるべきです)。" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " @@ -28516,7 +28421,7 @@ msgstr "" "タを提供するという期待が持てるのであればメタデータではそのキーを ``dynamic`` " "の中に挙げても構いません。" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." @@ -28524,7 +28429,7 @@ msgstr "" "メタデータ内で、あるキーが静的に指定されていて、かつ、 ``dynamic`` にも挙げて" "ある場合には、ビルド用バックエンドはエラーを発生させなければなりません。" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -28536,7 +28441,7 @@ msgstr "" "ち、ツールがメタデータを挿入できるのは ``dynamic`` の中だけであり、かつ、ユー" "ザがそうするようにオプトインしていなければならないということです) 。" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " @@ -28547,11 +28452,11 @@ msgstr "" "ンドはエラーを発生させなければなりません (正確な値であると判断した場合はデー" "タを省略することが許容されます) 。" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "任意のツールの設定: ``[tool]`` テーブル" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -28564,7 +28469,7 @@ msgstr "" "pypi.python.org/pypi/flit>`_ ツールならその設定を ``[tool.flit]`` に格納して" "おくでしょう。" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -28577,7 +28482,7 @@ msgstr "" "``$NAME`` というエントリを保有している場合、その場合に限って、 ``tool." "$NAME`` なるサブテーブルを使うことができるというものです。" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " @@ -28587,7 +28492,7 @@ msgstr "" "まり、 ``[build-system]`` が ``requires`` キーと ``[tool]`` テーブルしか含ん" "でいないものが承認されました。" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." @@ -28595,7 +28500,7 @@ msgstr "" "2020年11月: :pep:`621` を通じて、 ``[project]`` テーブルの仕様が承認されまし" "た。" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." @@ -28603,7 +28508,7 @@ msgstr "" "2024年12月: :pep:`639` を通じて、 ``license`` キーが再定義され、 ``license-" "files`` キーが追加され、 ``License::`` 分類子が非推奨になりました。" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." @@ -28611,7 +28516,7 @@ msgstr "" "2025年9月: ``license`` キーが、 :file:`pyproject.toml` ファイルから生成された" "すべての配布物のファイル群に適用されることが明確化されました。" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -28768,8 +28673,8 @@ msgid "" "This :file:`.dist-info/` directory may contain the following directories, " "described in detail below:" msgstr "" -"この :file:``.dist-info/`` ディレクトリには、以下に詳細を述べるディレクトリを" -"置くことができます:" +"この :file:`.dist-info/` ディレクトリには、以下に詳細を述べるディレクトリを置" +"くことができます:" #: ../source/specifications/recording-installed-packages.rst:72 msgid ":file:`licenses/`: contains license files." @@ -28885,11 +28790,11 @@ msgid "" "urlsafe-base64-nopad encoding (:py:func:`base64.urlsafe_b64encode(digest) " "` with trailing ``=`` removed)." msgstr "" -"*hash* は、空文字列または ``hashlib.algorithms_guaranteed`` から取ったハッ" -"シュアルゴリズムの名前の後ろに等号 ``=`` を付けて、ファイルの内容のハッシュ値" -"を urlsafe-base64-nopad エンコーディング (``base64.urlsafe_b64encode(digest) " -"`` の結果から末尾の ``=`` を取り除いたもの) で記" -"したものです。" +"*hash* は、空文字列または :py:data:`hashlib.algorithms_guaranteed` から取った" +"ハッシュアルゴリズムの名前の後ろに等号 ``=`` を付けて、ファイルの内容のハッ" +"シュ値を urlsafe-base64-nopad エンコーディング " +"(:py:func:`base64.urlsafe_b64encode(digest) ` の" +"結果から末尾の ``=`` を取り除いたもの) で記したものです。" #: ../source/specifications/recording-installed-packages.rst:125 msgid "" @@ -28941,7 +28846,7 @@ msgstr "" #: ../source/specifications/recording-installed-packages.rst:146 msgid "Here is an example snippet of a possible ``RECORD`` file::" -msgstr "ありうる ``RECORD`` ファイルの一部を切り出した例をここに掲げます::" +msgstr "ありうる ``RECORD`` ファイルの一部を切り出した例をここに掲げます ::" #: ../source/specifications/recording-installed-packages.rst:165 msgid "" @@ -29125,7 +29030,7 @@ msgid "" "used to manage the package (this allows ``RECORD``-aware tools to provide " "better error notices when asked to modify affected packages)" msgstr "" -"そのパッケージを管理するのに使用されるべきツールの名前を示すように" +"そのパッケージを管理するのに使用されるべきツールの名前を示すように " "``INSTALLER`` ファイルを書いてください (これによって、 ``RECORD`` を参照でき" "るツール群が影響を被るパッケージを修正するように言われた時により良いエラー通" "知を提供できます)" @@ -29738,7 +29643,7 @@ msgstr "" "ンクされた理由を表現する任意の文字列です。" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -29770,7 +29675,8 @@ msgstr "" msgid "" "The format of the linked provenance is defined in :ref:`index-hosted-" "attestations`." -msgstr "リンクされた起源のフォーマットは、 :ref:`index-hosted-attestations` で定義さ" +msgstr "" +"リンクされた起源のフォーマットは、 :ref:`index-hosted-attestations` で定義さ" "れています。" #: ../source/specifications/simple-repository-api.rst:274 @@ -29792,11 +29698,12 @@ msgstr "" "カでなければ **なりません** 。" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." -msgstr "正当なプロジェクト状態マーカとそのセマンティクスの組は、 :ref:`project-" +msgstr "" +"正当なプロジェクト状態マーカとそのセマンティクスの組は、 :ref:`project-" "status-markers` に記述されています。" #: ../source/specifications/simple-repository-api.rst:288 @@ -30112,7 +30019,7 @@ msgstr "" "で、(そのキーの値は) プロジェクトの名称を表す文字列です。" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." @@ -30120,7 +30027,7 @@ msgstr "" "``meta``: `先述の通り `__ の一般的な応答メタデータ。" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "ひとつの例として:" @@ -30168,8 +30075,9 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" -msgstr "この URL は、4個のキーを持つJSON にコード化された辞書を返さなければなりませ" +"This URL must respond with a JSON encoded dictionary that has five keys:" +msgstr "" +"この URL は、5個のキーを持つJSON にコード化された辞書を返さなければなりませ" "ん:" #: ../source/specifications/simple-repository-api.rst:482 @@ -30177,42 +30085,42 @@ msgid "``name``: The normalized name of the project." msgstr "``name``: そのプロジェクトの正規化された名前。" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." -msgstr "``files``: 辞書のリストで、各辞書が個別のファイルを表現しているもの。" +msgid "``project-status``: An optional dictionary, containing the following:" +msgstr "``project-status``: オプションの辞書で、次のものを内包する:" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" -msgstr "一般的な応答メタデータに加えて、プロジェクト詳細の ``meta`` 辞書には、以下の" -"ものを含めても **構いません** :" - -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." -msgstr "``project-status``: もし存在すれば、これは、正当なプロジェクト状態マーカで **" -"なければなりません** 。" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." +msgstr "" +"``status``: もし存在すれば、これは、正当なプロジェクト状態マーカで **なければ" +"なりません** 。" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." -msgstr "``project -status`` キーは、 API バージョン 1.4 で追加されました。" +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." +msgstr "``status`` キーは、 API バージョン 1.4 で追加されました。" -#: ../source/specifications/simple-repository-api.rst:500 +#: ../source/specifications/simple-repository-api.rst:496 msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -"``project-status-reason``: もし存在すれば、これは、任意の文字列でプロジェクト" -"の状態を記述するもので **なければなりません** 。" +"``reason``: もし存在すれば、これは、任意の文字列でプロジェクトの状態を記述す" +"るもので **なければなりません** 。" + +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." +msgstr "``reason`` キーは、 API バージョン 1.4 で追加されました。" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." -msgstr "``project-status-reason`` キーは、 API バージョン 1.4 で追加されました。" +msgid "The ``project-status`` key was added with API version 1.4." +msgstr "``project -status`` キーは、 API バージョン 1.4 で追加されました。" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "``files``: 辞書のリストで、各辞書が個別のファイルを表現しているもの。" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " @@ -30223,7 +30131,7 @@ msgstr "" "は、論理上は集合であり、それ故に重複を許さず、バージョン番号の順序は大きな問" "題ではありません。" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -30235,7 +30143,7 @@ msgstr "" "そのような概念を持っているならば、ファイルなしのバージョンというものを表現す" "るために) 対応するファイルがないバージョンを含んでいても構いません。" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -30244,28 +30152,29 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" ":ref:`バージョン指定子仕様 (VSS) ` の採用前からの \"レガ" -"シー\" データをサーバが保持しているかもしれないので、バージョン文字列について" -" VSS に則ったバージョンであることを要求することはできませんし、したがって、 " -"VSS のルールを使って並べることができると仮定することもできません。しかしなが" -"ら、サーバ側は、可能であれば正規化された VSS バージョンを **使うべきです** 。" +"シー\" データをサーバが保持しているかもしれないので、バージョン文字列につい" +"て VSS に則ったバージョンであることを要求することはできませんし、したがっ" +"て、 VSS のルールを使って並べることができると仮定することもできません。しかし" +"ながら、サーバ側は、可能であれば正規化された VSS バージョンを **使うべきです" +"** 。" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "``version`` キーは、 API バージョン 1.1 で追加されました。" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "個別のファイルを表す辞書は、それぞれ、次のキーを持ちます:" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "``filename``: 表現しようとしているファイルのファイル名。" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "``url``: そこからそのファイルを取得できる URL。" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -30280,7 +30189,7 @@ msgstr "" "になっています。これらのハッシュの名称は、常に小文字に **正規化 されているべ" "きです** 。" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " @@ -30291,7 +30200,7 @@ msgstr "" "用可能であることが保証されているハッシュが常に含まれていることが **とても強く" "** 推奨されています。" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -30307,7 +30216,7 @@ msgstr "" "セキュアなアルゴリズムが、常に、 **含まれているべきです** 。この仕様の時点で" "は、特に ``sha256`` が推奨されます。" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -30319,7 +30228,7 @@ msgstr "" "ル群は、要求事項を満足しない Python のバージョンへインストールしようとする場" "合、ダウンロードを **無視するべきです** 。" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " @@ -30329,7 +30238,7 @@ msgstr "" "requires-python`` とは異なって、 ``requires-python`` キーは、JSON が自然に要" "求することを除けば、特別なエスケープを要求しません。" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -30346,7 +30255,7 @@ msgstr "" "数にエンコードしたダイジェストへの対応をマッピングする辞書であるか、のいずれ" "かで **なければなりません** 。" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " @@ -30355,7 +30264,7 @@ msgstr "" "これがブーリアンの代わりにハッシュ辞書である時には、 ``hashes`` キーが true " "を値に取る場合と同じ要求事項と推奨事項の全てが、このキーにも課されます。" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " @@ -30365,7 +30274,7 @@ msgstr "" "ないかもしれません。このキーの値が真である場合はメタデータファイルが存在し、" "値が偽の場合には存在しません。" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." @@ -30373,14 +30282,15 @@ msgstr "" "サーバ群は、可能であれば、メタデータファイルのハッシュを利用可能とすることが" "推奨されています。" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." -msgstr "``dist-info-metadata``: **オプション** で、 ``core-metadata`` の非推奨になっ" +msgstr "" +"``dist-info-metadata``: **オプション** で、 ``core-metadata`` の非推奨になっ" "た別名。" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." @@ -30388,7 +30298,7 @@ msgstr "" "インデックスのクライアントは、もしこのキーが存在すれば、 ``core-metadata`` の" "レガシーなフォールバック先として、このキーを **消費しても構いません** 。" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." @@ -30396,7 +30306,7 @@ msgstr "" "``dist-info-metadata`` は、 :pep:`658` で標準化され、 :pep:`714` で ``core-" "metadata`` に名称変更されました。" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -30410,7 +30320,7 @@ msgstr "" "います。このキーが存在しない場合は、署名はあるかもしれませんし、ないかもしれ" "ません。" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -30422,21 +30332,22 @@ msgstr "" "``yanked``: **オプション** のキーで、当該ファイルがヤンクされたものか否かを示" "すブーリアンか、または、ファイルがヤンクされるに至った特定の理由を示す任意の" "空ではない文字列か、のいずれかの値を持ちます。 ``yanked`` キーが存在して値が" -"真のようであれば、``url`` フィールドによって指し示されるファイルが \"ヤンク\"" -" されたことを示すものと **理解されるべきです** 。" +"真のようであれば、``url`` フィールドによって指し示されるファイルが \"ヤンク" +"\" されたことを示すものと **理解されるべきです** 。" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." -msgstr "``size``: **必須の** キー。ファイルサイズをバイト単位で表した整数が **含まれ" +msgstr "" +"``size``: **必須の** キー。ファイルサイズをバイト単位で表した整数が **含まれ" "ていなければなりません** 。" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "``size`` キーは、 API バージョン 1.1 で追加されました。" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -30448,17 +30359,7 @@ msgstr "" "文字列が ``yyyy-mm-ddThh:mm:ss.ffffffZ`` の書式で **含まれていなければなりま" "せん** 。" -#: ../source/specifications/simple-repository-api.rst:614 -#, fuzzy -#| msgid "" -#| "``upload-time``: This field is optional. If present, it MUST contain a " -#| "valid ISO 8601 date/time string, in the format ``yyyy-mm-" -#| "ddThh:mm:ss.ffffffZ``, which represents the time the file was uploaded to " -#| "the index. As indicated by the ``Z`` suffix, the upload time MUST use the " -#| "UTC timezone. The fractional seconds part of the timestamp (the " -#| "``.ffffff`` part) is optional, and if present may contain up to 6 digits " -#| "of precision. If a server does not record upload time information for a " -#| "file, it MAY omit the ``upload-time`` key." +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -30466,32 +30367,34 @@ msgid "" "If a server does not record upload time information for a file, it **MAY** " "omit the ``upload-time`` key." msgstr "" -"``upload-time`` このフィールドはオプションです。もし存在するなら、正当な ISO " -"8601 形式の年月日・時刻が含まれていなければならず、そのフォーマットは ``yyyy-" -"mm-ddThh:mm:ss.ffffffZ`` で、当該ファイルがインデックスにアップロードされた時" -"点を表します。後置された ``Z`` が示すように、アップロード日時は必ず UTC タイ" -"ムゾーンを使わなければなりません。タイムスタンプの秒に満たない部分 " -"(``.ffffff`` の部分) はオプションで、もし存在するなら6桁までの精度を含めて構" -"いません。サーバ側がファイルのアップロード日時を記録していない場合は、 " -"``upload-time`` キーを省略しても構いません。" +"後置された ``Z`` が示すように、アップロード日時は必ず UTC タイムゾーンを **使" +"わなければなりません** 。タイムスタンプの秒に満たない部分 (``.ffffff`` の部" +"分) はオプションで、もし存在するなら6桁までの精度を含めて構いません。サーバ" +"側がファイルのアップロード日時を記録していない場合は、 ``upload-time`` キー" +"を **省略しても構いません** 。" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." -msgstr "" +msgstr "``upload-time`` キーは、 API バージョン 1.1 で追加されました。" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " "associated provenance, with the same rules as ``data-provenance`` in " "the :ref:`base HTML API specification `." msgstr "" +"``prevenance``: **オプションの** キーで、もし存在するなら JSON 文字列か、また" +"は、 ``null`` のいずれかで **なければなりません** 。もし ``null`` でないなら" +"ば、 :ref:`基本となる HTML API の仕様 ` 内の " +"``data-provenance`` と同様のルールで、ファイルに関連する起源への URL で **な" +"ければなりません** 。" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." -msgstr "" +msgstr "``provenance`` フィールドは、 API バージョン 1.3 で追加されました。" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -30578,11 +30481,11 @@ msgstr "" "をサポートするために、この仕様では、さらに、 ``text/html`` を ``application/" "vnd.pypi.simple.v1+html`` コンテント型へのエイリアスであると定義しています。" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "バージョン + フォーマットの選択" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -30596,7 +30499,7 @@ msgstr "" "ることなしに、どんな API の可能な新しいメジャーバージョンでも追加することがで" "きれば利益があることでしょう。" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_ の使用を標準化します。" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" @@ -30614,7 +30517,7 @@ msgstr "" "この仕様では、サーバ主導のコンテントネゴシエーションについて完全にすべてを記" "述することはありませんが、流れは大まかに次のようになります:" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." @@ -30622,7 +30525,7 @@ msgstr "" "理解できるコンテント型を全て``Accept`` ヘッダに列挙した HTTP リクエストをクラ" "イアントが作成します。" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " @@ -30632,7 +30535,7 @@ msgstr "" "のコンテント型を使って応答を返します (``Accept`` ヘッダが欠落している場合は " "``Accept: */*`` であるものとして扱います) 。" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " @@ -30642,7 +30545,7 @@ msgstr "" "は、どのように応答するかについてサーバは3個の異なるオプションから選択するこ" "とができます:" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." @@ -30650,7 +30553,7 @@ msgstr "" "クライアントが要求したものではないデフォルトのコンテント型を選択して、それを" "使って応答を返すこと。" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " @@ -30660,7 +30563,7 @@ msgstr "" "利用可能なものがないことを示し、サーバとしてはデフォルトのコンテント型を選択" "して応答することができないかしたくないことを示すこと。" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." @@ -30668,7 +30571,7 @@ msgstr "" "HTTP の ``300 Multiple Choices`` 応答を返して、選択できるかもしれないすべての" "可能な応答のリストを含めておくこと。" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." @@ -30676,7 +30579,7 @@ msgstr "" "サーバが返すかもしれない異なる応答のタイプを取り扱ってクライアントは応答を解" "釈します。" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -30688,7 +30591,7 @@ msgstr "" "アント側がそのクライアントにとって最も意味を為す方法であればどんなものでも可" "能な応答の全てを取り扱う準備を **しておくべきだ** とは指定しません。" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -30705,15 +30608,7 @@ msgstr "" "型を **理解できるであろう** とは思われず、したがって、この応答は ``406 Not " "Acceptable`` エラーと同じ扱いを受けるのが精々であろうと思われます。" -#: ../source/specifications/simple-repository-api.rst:755 -#, fuzzy -#| msgid "" -#| "This spec **does** require that if the meta version ``latest`` is being " -#| "used, the server **MUST** respond with the content type for the actual " -#| "version that is contained in the response (i.e. A ``Accept: application/" -#| "vnd.pypi.simple.latest+json`` request that returns a ``v1.x`` response " -#| "should have a ``Content-Type`` of ``application/" -#| "vnd.pypi.simple.v1+json``)." +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -30722,13 +30617,13 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" "この仕様では、メタバージョン ``latest`` が使われているのであれば、そのサーバ" -"は、実際のバージョンのための Content-Type をレスポンスの中に伴わなければなら" -"ないということを **要求しています** (すなわち、 ``Accept: application/" +"は、実際のバージョンのための Content-Type をレスポンスの中に **伴わなければな" +"らない** ということを **要求しています** (すなわち、 ``Accept: application/" "vnd.pypi.simple.latest+json`` を含んだリクエストが ``v1.x`` を返す時、レスポ" "ンスには ``application/vnd.pypi.simple.v1+json`` を値とする ``Content-Type`` " "が入っていなければならないということです) 。" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " @@ -30738,19 +30633,19 @@ msgstr "" "ンマで区切られたリストに列挙したものです。まさに要求されているところのコンテ" "ント型のそれぞれについて3個の異なるフォーマットをサポートしています:" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "``$type/$subtype``" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "``$type/*``" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "``*/*``" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " @@ -30760,7 +30655,7 @@ msgstr "" "も役に立つのは ``$type/$subtype`` で、望みのバージョンとフォーマットを実際に" "指定する唯一の方法だからです。" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -30776,7 +30671,7 @@ msgstr "" "developer.mozilla.org/en-US/docs/Glossary/Quality_values>`_ の文法を使っても" "構いません。" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -30791,7 +30686,7 @@ msgstr "" "(quality 値) のエントリがより低い品質のものよりも優先され、q 値を持たないもの" "はデフォルトで ``1`` であると解釈されます。" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -30803,7 +30698,7 @@ msgstr "" "** コンテント型で返答しても構わないということを、クライアントは心に留めておく" "べきです。" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -30821,11 +30716,11 @@ msgstr "" "_internal/index/collector.py#L123-L150>`_ を強制していますので、実際に何かを" "壊すリスクは低いでしょう。" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "クライアントがどのように運用できるかの例は次のように見えるでしょう:" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " @@ -30835,11 +30730,11 @@ msgstr "" "``Accept`` ヘッダから望まないコンテント型を単に取り除くでしょうし、(望まない" "ものを) 受け取ったらエラーにすることでしょう。" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "代わりの交渉機構 " -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -30853,18 +30748,21 @@ msgstr "" "そのような場合向けに、この仕様には、 *オプションとして* 代わりに使っても構わ" "ない代わりの交渉機構 があります。" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "URL パラメータ" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" +"シンプル API を実装するサーバは、クライアントが URL の特定のバージョンを要求" +"することを許すために、 ``format`` という名称の URL パラメータをサポートするこ" +"とを選択しても構いません。" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " @@ -30874,7 +30772,7 @@ msgstr "" "です。複数のコンテント型を渡すことやワイルドカード、quality 値などはサポート" "されて **いません** 。" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -30887,7 +30785,7 @@ msgstr "" "図したもの、ないし、説明文書やノートから特定の version+format にリンクするこ" "とができるようにすることを意図したものです。" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." @@ -30895,7 +30793,7 @@ msgstr "" "このパラメータをサポートしないサーバの側では、これの存在時にはエラーを返すこ" "とを選択しても構いませんし、単にその存在を無視しても構いません。" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -30912,11 +30810,11 @@ msgstr "" "``303 Multiple Choices`` 、ないし、応答のデフォルトの型) のどれでもひとつを選" "択しても構いません。" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "エンドポイントの設定" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " @@ -30926,7 +30824,7 @@ msgstr "" "エーションを使用することに伴う自然な結果であり、利用可能なコンテント型のいず" "れかを自身のデフォルトとしてサーバが選択することを許すものです。" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -30938,7 +30836,7 @@ msgstr "" "ように明示的に要求するのであれば、それはサポートされているコンフィグレーショ" "ンのひとつです。" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -30955,7 +30853,7 @@ msgstr "" "エストした時に、サーバはそれを無視して当該エンドポイントに対応するコンテント" "型を返すことができます。" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -30967,7 +30865,7 @@ msgstr "" "すし、そのサーバへのリクエストを作成する時に正しいコンテント型 **だけ** を含" "んだ ``Accept`` ヘッダを発出することができます。" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -30978,7 +30876,7 @@ msgstr "" "と仕様の執筆者たちが信じるものを表現していますが、しかし、これらの決定に合致" "させるための要求事項としてはいかなるものも **表現していません** 。" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -30991,11 +30889,11 @@ msgstr "" "択されています。加えて、クライアント側が最善の選択を行うようにと試みるガード" "レールを API が提供するように試みてきました。" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "サーバには次のことが推奨されます:" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " @@ -31005,7 +30903,7 @@ msgstr "" "くは、少なくとも HTML 応答を用いる非自明のトラフィックを受け取る限り、この仕" "様の中で記述される3個のコンテント型の全てをサポートすること。" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -31016,7 +30914,7 @@ msgstr "" "いような ``Accept`` ヘッダに遭遇した時、 ``300 Multiple Choice`` 応答を返すべ" "きではなく、その代わりに ``406 Not Acceptable`` 応答を返すべきです。" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." @@ -31025,7 +30923,7 @@ msgstr "" "そのエンドポイントが期待しているコンテント型で ``200 Ok`` を返したいと考える" "べきです。" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -31039,11 +30937,11 @@ msgstr "" "リクエストの特質を考慮に入れて、最も高いバージョンを選択するべきであり、 " "``text/html`` コンテント型の使用は最後の逃避先とするべきです。" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "クライアント側には次のことが推奨されます:" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." @@ -31051,7 +30949,7 @@ msgstr "" "それが合理的に実行可能である限り、サーバ側が駆動するコンテンツネゴシエーショ" "ンを使ってこの仕様に記述された3個のコンテント型の全てをサポートすること。" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." @@ -31059,7 +30957,7 @@ msgstr "" "``Accept`` ヘッダを構築する時、サポートしているコンテント型の全てを含めるこ" "と。" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -31073,7 +30971,7 @@ msgstr "" "コンテント型にはクオリティ優先度 を含めるべきではありませ" "ん。" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " @@ -31083,7 +30981,7 @@ msgstr "" "型であるという場合を除けば、伝統的な ``text/html`` コンテント型には " "``;q=0.01`` を含めることが推奨されるということです。" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." @@ -31091,7 +30989,7 @@ msgstr "" "通常操作では ``latest`` メタバージョンを使うのではなくて、希求しているバー" "ジョンがどれであるかを明示的に選択すること。" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." @@ -31099,19 +30997,19 @@ msgstr "" "応答の ``Content-Type`` を調べて、こちらが期待しているものに合致していること" "を確認すること。" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "2015年9月: :pep:`503` で HTML フォーマットの初期フォーム" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "2016年7月: :pep:`503` で Requires-Python メタデータ" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "2019年5月: :pep:`592` で \"ヤンク \" サポート" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" @@ -31119,14 +31017,14 @@ msgstr "" "2020年7月: :pep:`629` で、 API バージョン付け慣行とメタデータ、 HTML フォー" "マットを API v1.として宣言" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" "2021年5月: :pep:`658` で、パッケージとは独立にパッケージのメタデータを提供" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" @@ -31134,7 +31032,7 @@ msgstr "" "2022年5月: :pep:`691` により、クライアント側が選択する機構とともに JSON " "フォーマットの初期の形、両フォーマットを API v1 として宣言" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" @@ -31142,7 +31040,7 @@ msgstr "" "2022年10月: :pep:`700` により、 JSON フォーマットにおけるプロジェクトバージョ" "ン・ファイルサイズ・アップロード日時" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" @@ -31150,56 +31048,44 @@ msgstr "" "2023年6月: :pep:`714` により、パッケージから独立したパッケージメタデータを提" "供するフィールドを名称変更" -#: ../source/specifications/simple-repository-api.rst:987 -#, fuzzy -#| msgid "" -#| "October 2022: project versions and file size and upload-time in the JSON " -#| "format, in :pep:`700`" +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -"2022年10月: :pep:`700` により、 JSON フォーマットにおけるプロジェクトバージョ" -"ン・ファイルサイズ・アップロード日時" +"2024年11月: :pep:`740` によって、 HTML フォーマットおよびJSON フォーマットに" +"おける起源 メタデータ" -#: ../source/specifications/simple-repository-api.rst:988 -#, fuzzy -#| msgid "" -#| "October 2022: project versions and file size and upload-time in the JSON " -#| "format, in :pep:`700`" +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -"2022年10月: :pep:`700` により、 JSON フォーマットにおけるプロジェクトバージョ" -"ン・ファイルサイズ・アップロード日時" +"2025年7月: :pep:`792` によって、HTML フォーマットおよび JSON フォーマットにお" +"けるプロジェクトの状態マーカ" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" msgstr "" +"2025年7月: レイアウトの変更 (ファイルのヤンクのための専用のページ、 API の詳" +"細の前に概念を紹介)" #: ../source/specifications/source-distribution-format.rst:6 msgid "Source distribution format" msgstr "ソースコード配布物のフォーマット" #: ../source/specifications/source-distribution-format.rst:8 -#, fuzzy -#| msgid "" -#| "The current standard format of source distribution format is identified " -#| "by the presence of a :file:`pyproject.toml` file in the distribution " -#| "archive. The layout of such a distribution was originally specified " -#| "in :pep:`517` and is formally documented here." msgid "" "The current standard source distribution format is identified by the " "presence of a :file:`pyproject.toml` file in the distribution archive. The " "layout of such a distribution was originally specified in :pep:`517` and is " "formally documented here." msgstr "" -"ソースコード配布物のフォーマットに関する現在の標準フォーマットは、配布物の" -"アーカイブに :file:`pyproject.toml` ファイルが存在することで識別されます。そ" -"のような配布物のレイアウトは元々は :pep:`517` で指定され、ここに公式にドキュ" -"メント化されています。" +"ソースコード配布物に関する現在の標準フォーマットは、配布物アーカイブ" +"に :file:`pyproject.toml` ファイルが存在することで識別されます。そのような配" +"布物のレイアウトは元々は :pep:`517` で指定され、ここに公式にドキュメント化さ" +"れています。" #: ../source/specifications/source-distribution-format.rst:13 msgid "" @@ -31228,15 +31114,6 @@ msgid "Source trees" msgstr "ソースコードツリー" #: ../source/specifications/source-distribution-format.rst:28 -#, fuzzy -#| msgid "" -#| "A *source tree* is a collection of files and directories -- like a " -#| "version control system checkout -- which contains " -#| "a :file:`pyproject.toml` file that can be use to build a source " -#| "distribution from the contained files and directories. :pep:`517` " -#| "and :pep:`518` specify what is required to meet the definition of " -#| "what :file:`pyproject.toml` must contain for something to be deemed a " -#| "source tree." msgid "" "A *source tree* is a collection of files and directories -- like a version " "control system checkout -- which contains a :file:`pyproject.toml` file that " @@ -31245,13 +31122,12 @@ msgid "" "definition of what :file:`pyproject.toml` must contain for something to be " "deemed a source tree." msgstr "" -"*ソースツリー* は、 -- バージョン管理システムからのチェックアウトのような -- " -"ファイルとディレクトリの集合で、その中に書かれたファイルやディレクトリから" -"ソースコード配布物をビルドすることができるような :file:`pyproject.toml` ファ" -"イルを含んでいるものです。何かをソースコードツリーであると見做すため" -"に :file:`pyproject.toml` ファイルが含んでいなければならないものが何であるか" -"の定義に合致するために要求されることは何であるかについては :pep:`517` " -"と :pep:`518` が指定しています。" +"*ソースコードツリー* は、 -- バージョン管理システムのチェックアウトのような " +"-- ファイルとディレクトリの集合体で、含まれるファイルやディレクトリからソース" +"コード配布物を作るために使われた :file:`pyproject.toml` ファイルを含んでいる" +"ものです。 :pep:`517` と :pep:`518` は、何者かをソースコードツリーであると見" +"做すために :file:`pyproject.toml` が何を含んでいなければならないかの定義に合" +"致するために要求されるものを指定しています。" #: ../source/specifications/source-distribution-format.rst:38 msgid "Source distribution file name" @@ -31309,16 +31185,6 @@ msgid "Source distribution file format" msgstr "ソースコード配布物のファイルフォーマット" #: ../source/specifications/source-distribution-format.rst:61 -#, fuzzy -#| msgid "" -#| "A ``.tar.gz`` source distribution (sdist) contains a single top-level " -#| "directory called ``{name}-{version}`` (e.g. ``foo-1.0``), containing the " -#| "source files of the package. The name and version MUST match the metadata " -#| "stored in the file. This directory must also contain " -#| "a :file:`pyproject.toml` in the format defined in :ref:`pyproject-toml-" -#| "spec`, and a ``PKG-INFO`` file containing metadata in the format " -#| "described in the :ref:`core-metadata` specification. The metadata MUST " -#| "conform to at least version 2.2 of the metadata specification." msgid "" "A ``.tar.gz`` source distribution (sdist) contains a single top-level " "directory called ``{name}-{version}`` (e.g. ``foo-1.0``), containing the " @@ -31335,9 +31201,9 @@ msgstr "" "のメタデータと合致していなければなりません。このディレクトリ" "は、 :ref:`pyproject-toml-spec` で定義されたフォーマットで書かれ" "た :file:`pyproject.toml` ファイルや、 :ref:`core-metadata` 仕様内に記述され" -"たフォーマットで書かれたメタデータを含んだ ``PKG-INFO`` ファイルも含んでいな" -"ければなりません。このようなメタデータは、少なくともバージョン 2.2 のメタデー" -"タ仕様を満足するものでなければなりません。" +"たフォーマットで書かれたメタデータを含んだ :file:`PKG-INFO` ファイルも含んで" +"いなければなりません。このようなメタデータは、少なくともバージョン 2.2 のメタ" +"データ仕様を満足するものでなければなりません。" #: ../source/specifications/source-distribution-format.rst:69 msgid "" @@ -31347,6 +31213,11 @@ msgid "" "directory of the sdist (containing the :file:`pyproject.toml` and " "the :file:`PKG-INFO` metadata)." msgstr "" +"メタデータのバージョンが 2.4 またはそれ以降であれば、ソースコード配布物は、 " +"(:file:`pyproject.toml` と :file:`PKG-INFO` のメタデータを内包する) sdist の" +"ルートディレクトリに対する相対パスでそれぞれのパスを示す形で :file:`PKG-" +"INFO` の中の ``License-File`` フィールドによって指定されたライセンスファイル" +"を一つ以上含んでいなければなりません。" #: ../source/specifications/source-distribution-format.rst:74 msgid "" @@ -31569,18 +31440,15 @@ msgstr "" "標準化された。" #: ../source/specifications/source-distribution-format.rst:162 -#, fuzzy -#| msgid "" -#| "September 2022: The filename of a source distribution was standardized " -#| "through :pep:`625`." msgid "" "December 2024: License files inclusion into source distribution was " "standardized through :pep:`639`." msgstr "" -"2022年9月: :pep:`625` を通じて、ソースコード配布物のファイル名を標準化した。" +"2024年12月: :pep:`639` を通じて、ライセンスファイルのソースコード配布物への包" +"含が標準化されました。" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "バージョン指定子" @@ -32028,10 +31896,6 @@ msgstr "" "``X.Y.0`` は、相異なるリリース番号とは見做されません。" #: ../source/specifications/version-specifiers.rst:229 -#, fuzzy -#| msgid "" -#| "Date based release segments are also permitted. An example of a date " -#| "based release scheme using the year and month of the release::" msgid "" "Date-based release segments are also permitted. An example of a date-based " "release scheme using the year and month of the release::" @@ -32128,7 +31992,7 @@ msgid "" msgstr "" "プロジェクトの開発サイクルの一部として用いられる場合、これらのポストリリース" "は、バージョン識別子の中にポストリリース構成部分を含めることによって表示され" -"ます::" +"ます ::" #: ../source/specifications/version-specifiers.rst:286 msgid "" @@ -32164,7 +32028,7 @@ msgstr "" #: ../source/specifications/version-specifiers.rst:301 msgid "Post-releases are also permitted for pre-releases::" -msgstr "ポストリリースは、また、プレリリースにも使うことができます::" +msgstr "ポストリリースは、また、プレリリースにも使うことができます ::" #: ../source/specifications/version-specifiers.rst:309 msgid "" @@ -32233,15 +32097,10 @@ msgstr "" "開発リリースは、また、プレリリースやポストリリースにおいても許されます::" #: ../source/specifications/version-specifiers.rst:346 -#, fuzzy -#| msgid "" -#| "Developmental releases are also permitted for pre-releases and post-" -#| "releases::" msgid "" "Do note that development releases are considered a type of pre-release when " "handling them." -msgstr "" -"開発リリースは、また、プレリリースやポストリリースにおいても許されます::" +msgstr "開発リリースは、それを取り扱う時にはプレリリースの一種と見做されます。" #: ../source/specifications/version-specifiers.rst:351 msgid "" @@ -32314,11 +32173,44 @@ msgstr "" "のバージョン番号が、より古いエポックに属するものよりも後に続くものとして順序" "付けされるので、ソートの順序を適切に変更することができます::" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" +"非ゼロのエポックの使用は非推奨です。それらはしばしば、 Python パッケージが消" +"費される必要があるかもしれないダウンストリームのパッケージングによってサポー" +"トされていなかったり非推奨になっていたりしますし、また、その仕様が稀なせいで " +"Python パッケージングツール群がうまくサポートしていなかったりするかもしれませ" +"ん。" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" +"バージョン番号枠組みを変更する必要がある時は、エポックゼロ内で単調に数を大き" +"くする方向で継続することが望ましいです。例えば、バージョン 2026.x は、誤解の" +"余地なく 3000.x が後に続くことでしょう。" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" +"関連する議論については、 `バージョン番号内でエポックセグメントの使用を推奨し" +"ない `__ を見てください。" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "正規化" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -32331,11 +32223,11 @@ msgstr "" "なければなりませんが、しかし、そのようなバージョン番号は上述の標準的なシン" "タックスに \"正規化\" されるべきです。" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "ケースセンシティビティ" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " @@ -32345,11 +32237,11 @@ msgstr "" "されるべきであり、標準系は小文字です。これによって、 ``1.1rc1`` に標準化され" "るであろう `1.1RC1`` のようなバージョン番号を許容します。" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "整数の標準化" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -32363,11 +32255,11 @@ msgstr "" "うなローカルバージョンで標準化済みのもののアルファベットと数字から成る構成部" "分の中では、これは適用されません。" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "プレリリースのセパレータ" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -32383,11 +32275,11 @@ msgstr "" "リース記号と数字部分の間に使われるセパレータをも許容するべきです。これによっ" "て、 ``1.0a1`` に標準化される ``1.0a.1`` のようなバージョン番号を許容します。" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "プレリリースの綴り方" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -32403,11 +32295,11 @@ msgstr "" "ジョン番号を許容します。それぞれのケースで、追加的な綴り方の部分は標準的な形" "式のものと同等であると見做されます。" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "明示しないプレリリース番号" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -32419,11 +32311,11 @@ msgstr "" "く形です。これによって、標準化すれば ``1.2a0`` になる ``1.2a`` のようなバー" "ジョン番号を許容します。" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "ポストリリースのセパレータ" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -32441,11 +32333,11 @@ msgstr "" "レータを置くことを許容します。これによって、標準化すれば ``1.2.post2`` となる" "であろう ``1.2.port-2`` のようなバージョン番号を許容します。" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "ポストリリースの綴り方" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -32457,11 +32349,11 @@ msgstr "" "ン番号を許容します。プレリリースでの追加の綴り方と同様に、その標準形式と同等" "のものと見做されるべきです。" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "明示されないポストリリース番号" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -32473,11 +32365,11 @@ msgstr "" "を含めることです。これによって、標準化すれば ``1.2.post0`` となる " "``1.2.post`` のようなバージョン番号を許容します。" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "暗黙裡のポストリリース" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -32493,11 +32385,11 @@ msgstr "" "われてはなりません。換言すれば、 ``1.0-`` は正当なバージョン番号では *なく" "* 、 ``1.0.post0`` へ標準化されることも *ありません* 。" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "開発リリース番号のセパレータ" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -32509,11 +32401,11 @@ msgstr "" "を使う形です。これによって、標準化すれば ``1.2.dev2`` になるであろう ``1.2-" "dev2`` や ``1.2dev2`` のようなバージョン番号を許容します。" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "暗黙裡の開発バージョン番号" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -32525,11 +32417,11 @@ msgstr "" "れによって、標準化すれば ``1.2.dev0`` となる ``1.2.dev`` のようなバージョン番" "号を許容します。" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "ローカルのバージョン番号構成部分" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -32541,11 +32433,11 @@ msgstr "" "ことです。これによって、標準化すれば ``1.0+ubuntu.1`` となる " "``1.0+ubuntu-1`` のようなバージョン番号も許容されます。" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "先駆する v の文字" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -32559,11 +32451,11 @@ msgstr "" "は省略されるべきです。 ``v`` の有無だけが異なるバージョン番号は、同一のものと" "見做されます。" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "先行する空白文字や後続する空白文字" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -32577,11 +32469,11 @@ msgstr "" "す。これによって、標準化すれば ``1.0`` となる ``1.0\\n`` のようなバージョン番" "号に見られる、偶然に入り込んだ空白文字を実用的に取り扱うことができます。" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "枠組みに合致したバージョン番号の例" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -32597,7 +32489,7 @@ msgstr "" "ユーザにとってはバージョン番号間の相対的な順序を解き明かすことに困難を感じる" "ことになるでしょう。" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -32608,22 +32500,22 @@ msgstr "" "るアプローチで、 \"最新リリース\" と \"最新のステーブルリリース\" を人間も自" "動化ツールも簡単に決定できることが保証されたもののいくつかの例を示します。" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "単純な \"メジャー.マイナー\" バージョン付け::" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "単純な \"メジャー.マイナー.マイクロ\" バージョン付け::" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" "アルファ・ベータや公開候補 のようなプレリリースを伴う \"メジャー." "マイナー\" バージョン付け::" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" @@ -32631,18 +32523,18 @@ msgstr "" "開発リリース 、リリース候補 や" "ポストリリースのある \"メジャー.マイナー\" バージョン付け::" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" "ゼロを飛ばして各年の中で増加するシリアル値を使った日付ベースのリリース番号::" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "許容される接尾辞と相対的な順序付けのまとめ" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " @@ -32652,7 +32544,7 @@ msgstr "" "というよりは、むしろ、一義的には配布物のメタデータを自動的に処理するツールの" "作者に向けて書かれています。" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " @@ -32662,7 +32554,7 @@ msgstr "" "序されなければなりません。エポック構成部分が存在しない場合には、暗黙のうちに " "``0`` の値と解釈します。" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " @@ -32670,9 +32562,9 @@ msgid "" msgstr "" "バージョン識別子のリリース構成部分は、標準化されたリリース構成部分を解釈する" "時には以下のように Python のタプルソーティングと同じ順序で格納されていなけれ" -"ばなりません::" +"ばなりません ::" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." @@ -32680,7 +32572,7 @@ msgstr "" "比較に関わるすべてのリリース構成部分は、必要に応じて不足する構成部分にゼロを" "補填することで長さを一致させなければなりません。" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" @@ -32688,7 +32580,7 @@ msgstr "" "リリース番号の数字部分 (``1.0`` や ``2.7.3``) の中では、後述の接尾辞が許され" "ており、下に示す通りに順序付けをしなければなりません::" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -32701,7 +32593,7 @@ msgstr "" "合には曖昧であるとしてこれを拒否しても構いませんが、これでも仕様には合致して" "います。" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " @@ -32711,7 +32603,7 @@ msgstr "" "(``1.0rc1``, ``1.0c1``) の中では、後述の接尾辞が許されていて、示される通りに" "並べ替えられなければなりません::" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" @@ -32719,7 +32611,7 @@ msgstr "" "ポストリリース (``1.0.post1``) の中では、後述の接尾辞が許されていて、示す通り" "に並べ替えられなければなりません::" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " @@ -32729,7 +32621,7 @@ msgstr "" "``1.0.post1``) であっても、 ``devN`` と ``postN`` は、常にドットに後続しなけ" "ればならないことを銘記してください。" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." @@ -32738,25 +32630,26 @@ msgstr "" "発リリース構成部分の中で、数値部分の値に従って順序付けをしなければなりませ" "ん。" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "可能なバージョン番号の例を以下に示します::" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "相異なるメタデータバージョンを通してバージョン番号を順序付けする" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -"メタデータ v1.0 (pep:`241`) および メタデータ (:pep:`314`) は、標準となるバー" -"ジョン番号の識別や順序付けの枠組みを指定していません。しかしながら、メタデー" -"タ v1.2 (:pep:`345`) では、 :pep:`386` で定義された枠組みを指定しています。" +"メタデータ v1.0 (:pep:`241`) および メタデータ (:pep:`314`) は、標準となる" +"バージョン番号の識別や順序付けの枠組みを指定していません。しかしながら、メタ" +"データ v1.2 (:pep:`345`) では、 :pep:`386` で定義された枠組みを指定していま" +"す。" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -32774,7 +32667,7 @@ msgstr "" "よって、あるプロジェクトのすべてのバージョンにおいてひとつの解析メカニズムが" "使われるような標準化が必要とされます。" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -32790,7 +32683,7 @@ msgstr "" "つも利用可能でない時には、それぞれの実装で定義されたバージョン番号の解釈や順" "序付けにフォールバックしても構いません。" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." @@ -32798,11 +32691,11 @@ msgstr "" "配布物のユーザは、自分が管理するプライベートなパッケージインデックスにおい" "て、合致しないバージョン番号を明示的に除去しても構いません。" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "他のバージョン番号の枠組みとの互換性" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -32816,7 +32709,7 @@ msgstr "" "タに格納しておく一方で、公開のバージョン番号を version フィールドに置くことが" "できます。" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " @@ -32827,7 +32720,7 @@ msgstr "" "のプロジェクト向けに好みの内部的なバージョン番号枠組みを使うことが許されま" "す。" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -32844,7 +32737,7 @@ msgstr "" "る配布物を公開する時に発生する多くの課題を網羅するためにも、この枠組みは理解" "しておくに値します。" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -32856,7 +32749,7 @@ msgstr "" "この仕様で定義されるバージョン番号枠組みと完全に互換であり、この形を受容する" "ことが推奨されています。" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " @@ -32866,7 +32759,7 @@ msgstr "" "号を含むセマンティックバージョン (builds - clause 11) は、この仕様と *互換性" "がなく* 、公開のバージョン番号フィールドでは許されていません。" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " @@ -32876,17 +32769,17 @@ msgstr "" "番号と互換性のあるものに翻訳する可能なメカニズムの一つは、 ``.devN`` 接尾辞を" "使って適切なバージョン番号の順序を指定することです。" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" "特定のビルド情報も、ローカルのバージョン番号のラベルに含めても構いません。" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "DVCS に基づいたバージョン番号のラベル" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -32898,7 +32791,7 @@ msgstr "" "ハッシュ値は信頼できる形で順序付けすることができないので、そのようなバージョ" "ン番号は公開のバージョンフィールドでは許されません。" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " @@ -32908,18 +32801,18 @@ msgstr "" "ジェクトのメタデータに格納することができない一方で、そのようなリリースを公開" "する際に一意に識別するために、公開の ``.devN`` 接尾辞をつけても構いません。" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" "ハッシュ値の情報を識別することは、ローカルのバージョン番号ラベルに含めても構" "いません。" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "Olson データベースによるバージョニング" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " @@ -32929,7 +32822,7 @@ msgstr "" "タベースのバージョニング方法から継承しています: 年と、それに後続する小文字の" "文字でその年の中でのデータベースのバージョンを示すもの。" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -32941,7 +32834,7 @@ msgstr "" "0か1から始まって、その年の内にデータベースが更新される度に1づつ増加されま" "す。" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." @@ -32949,7 +32842,7 @@ msgstr "" "他の翻訳されたバージョン識別子と同様に、対応する Olson データベースのバージョ" "ン番号は、そのプロジェクトのメタデータに記録しておくことが可能です。" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" @@ -32957,37 +32850,35 @@ msgstr "" "バージョン指定子は、一連のバージョン番号節をコンマで区切ったものから構成され" "ます。例えば::" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "比較演算子がバージョン番号節の種類を決定します:" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" -msgstr "``~=``: `互換性のあるリリース `_ 節" +msgstr "``~=``: `Compatible release`_ 節" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" -msgstr "``==``: `バージョン番号のマッチング `_ 節" +msgstr "``==``: `Version matching`_ 節" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" -msgstr "``!=``: `バージョンの除外 `_ 節" +msgstr "``!=``: `Version exclusion`_ 節" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" -msgstr "" -"``<=``, ``>=``: `境界を含む順序比較 `_ 節" +msgstr "``<=``, ``>=``: `Inclusive ordered comparison`_ 節" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" -msgstr "" -"``<``, ``>``: `境界を含まない順序比較 `_ 節" +msgstr "``<``, ``>``: `Exclusive ordered comparison`_ 節" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." -msgstr "``===``: `あらゆる意味での同一性 `_ clause." +msgstr "``===``: `Arbitrary equality`_ clause." -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " @@ -32997,7 +32888,7 @@ msgstr "" "全体として指定子に合致するために、すべての与えられた節が合致しなければなりま" "せん。" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." @@ -33005,7 +32896,7 @@ msgstr "" "条件演算子とその後のバージョン識別子の間の空白文字は、コンマの周囲の空白文字" "と同様にオプションです。" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -33019,7 +32910,7 @@ msgstr "" "だと見做されるか否かは、 `プレリリースの取り扱い `_ に記述されているとおりに扱われるべきです。" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " @@ -33029,11 +32920,11 @@ msgstr "" "定子は許されてはならず、あるバージョン指定子に合致する候補バージョンかどうか" "を調べる際にはローカルバージョンラベルは完全に無視されなければなりません。" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "互換性のあるリリース " -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " @@ -33043,7 +32934,7 @@ msgstr "" "成されます。指定されたバージョンと互換性があるものと期待されるすべての候補" "バージョンに合致します。" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " @@ -33053,7 +32944,7 @@ msgstr "" "された標準フォーマットの範疇に収まっていなければなりません。ローカルバージョ" "ン識別子は、このバージョン識別子の中では許容されません。" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" @@ -33061,7 +32952,7 @@ msgstr "" "あるリリース識別子 ``V.N`` にとって、互換リリース節は、一組の比較節とほぼ同一" "のものです::" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." @@ -33069,11 +32960,11 @@ msgstr "" "この演算子は、 ``~=1`` のように単独の構成部分バージョン番号と一緒に用いてはな" "りません。" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "例えば、次に挙げるバージョン番号群はすべて同等ということになります::" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " @@ -33083,7 +32974,7 @@ msgstr "" "換性のあるリリース節の形の名前を付けられているなら、要求される接頭辞と合致す" "るかどうかを決める時には接尾辞が無視されます::" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " @@ -33093,11 +32984,11 @@ msgstr "" "節での前方互換性に想定された度合いを、バージョン識別子の後ろにゼロを追加して" "制御することが可能です::" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "バージョン番号の照合" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." @@ -33105,7 +32996,7 @@ msgstr "" "バージョン番号マッチング節には、バージョン番号マッチング演算子 ``==`` とバー" "ジョン識別子を含みます。" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " @@ -33115,7 +33006,7 @@ msgstr "" "マットでなければなりませんが、公開のバージョン識別子における後続する ``.*`` " "は以下に述べるように許されています。" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -33128,7 +33019,7 @@ msgstr "" "*唯一の* 置換が行われるのは、リリース番号構成部分を同じ長さで行うことを保証す" "るために、リリース番号構成部分にゼロをパディングする時だけです。" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -33139,7 +33030,7 @@ msgstr "" "スによって変わります。自動化されたツール群は、厳密なバージョンマッチングが使" "用された時には、少なくとも警告を発するべきで、全てを拒絶しても構いません。" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -33155,8 +33046,8 @@ msgstr "" "分だけを含んでいるなら、リリース番号構成部分の中の後続の構成部分 (あるいは、" "その欠落) もまた、無視されます。" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" @@ -33164,7 +33055,7 @@ msgstr "" "例えば、あるバージョン番号 ``1.1.post1`` が与えられたとして、以下に示すように" "合致したり合致しなかったりします::" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " @@ -33174,7 +33065,7 @@ msgstr "" "``.`` を持つものと見なされ、従って、バージョン番号 ``1.1a1`` が与えられたとす" "れば、以下に示すように合致したり合致しなかったりします::" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -33186,7 +33077,7 @@ msgstr "" "れます。バージョン番号 ``1.1`` が与えられたなら、以下に示すように合致したり合" "致しなかったりします::" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -33200,7 +33091,7 @@ msgstr "" "番号は比較の目的においては無視されるので、そのようなものが接頭辞マッチにあっ" "たとしても意味を成しません。" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -33215,7 +33106,7 @@ msgstr "" "義的に、共有の配布物インデックスを使う上で繰り返し可能な *アプリケーションの" "展開* のための依存関係を定義するために使われることを想定しています。" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " @@ -33225,7 +33116,7 @@ msgstr "" "ジョン識別子であり、候補バージョンに付けられたローカルバージョン番号ラベル" "は、バージョンマッチングの際には無視されなければなりません。" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -33238,11 +33129,11 @@ msgstr "" "バージョン識別子と合致するか確かめられ、ローカルバージョンラベルは厳密な文字" "列の同一性比較を使って同一であるかどうか確認されます。" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "バージョンの除外 " -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." @@ -33250,21 +33141,20 @@ msgstr "" "バージョンの除外節は、バージョン除外演算子 ``!=`` とバージョン識別子を含みま" "す。" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" "許されるバージョン識別子と比較のセマンティックスは、マッチの意味が反転してい" -"る点を除けば `バージョン番号のマッチング `_ 演算子のそれと" -"同一です。" +"る点を除けば `Version matching`_ 演算子のそれと同一です。" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "境界を含む順序比較 " -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -33273,16 +33163,16 @@ msgid "" "`Version scheme`_." msgstr "" "境界を含む順序比較節は比較演算子とバージョン識別子を含み、候補バージョンの相" -"対的な位置と指定されたバージョンに対して与えられる標準の `バージョン番号枠組" -"み `_ によって定義される首尾一貫した順序付けに基づいてその比" -"較が正しいかどうかを任意のバージョン番号に対して行います。" +"対的な位置と指定されたバージョンに対して与えられる標準の `Version scheme`_ に" +"よって定義される首尾一貫した順序付けに基づいてその比較が正しいかどうかを任意" +"のバージョン番号に対して行います。" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "境界を含む順序比較の演算子は ``<=`` と ``>=`` です。" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." @@ -33291,16 +33181,16 @@ msgstr "" "ることを担保するために、リリース番号構成部分は必要に応じてゼロでパディングさ" "れます。" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "ローカルバージョン識別子は、このバージョン識別子の中では許されません。" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "境界を含まない順序比較 " -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -33309,13 +33199,13 @@ msgid "" "specifically exclude pre-releases, post-releases, and local versions of the " "specified version." msgstr "" -"境界を含まない順序比較である ``>`` と ``<`` は、標準の `バージョン番号枠組み " -"`_ によって定義される首尾一貫した順序付けが与える候補バージョ" -"ンと指定されたバージョン番号の相対的な位置に依存する点で、境界を含む順序比較" -"と似ています。しかしながら、指定されたバージョン番号のプレリリース・ポストリ" -"リース・ローカルバージョンの部分を除外します。" +"境界を含まない順序比較である ``>`` と ``<`` は、標準の `Version scheme`_ に" +"よって定義される首尾一貫した順序付けが与える候補バージョンと指定されたバー" +"ジョン番号の相対的な位置に依存する点で、境界を含む順序比較と似ています。しか" +"しながら、指定されたバージョン番号のプレリリース・ポストリリース・ローカル" +"バージョンの部分を除外します。" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -33331,7 +33221,7 @@ msgstr "" "ますが ``1.7.0.post1`` を許容せず、 ``>1.7.post2`` は ``1.7.1`` や " "``1.7.0.post3`` を許容しますが ``1.7.0`` を許容しません。" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." @@ -33339,7 +33229,7 @@ msgstr "" "境界を含まない順序比較 ``>V`` は、指定されたバージョン番号のローカルバージョ" "ン部分と **比較してはなりません**。" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``" -#: ../source/specifications/version-specifiers.rst:1017 +#: ../source/specifications/version-specifiers.rst:1032 msgid "" "Arbitrary equality comparisons are simple string equality operations which " "do not take into account any of the semantic information such as zero " -"padding or local versions. This operator also does not support prefix " -"matching as the ``==`` operator does." +"padding or local versions. The comparison MUST treat ASCII letters case-" +"insensitively, e.g. by lowercasing, and is unspecified for non-ASCII text. " +"This operator also does not support prefix matching as the ``==`` operator " +"does." msgstr "" "あらゆる意味での同一性比較は、ゼロパディングやローカルバージョンのような意味" -"論的な情報を全く考慮しない単純な文字列の同一性演算です。この演算子は、また、 " -"``==`` 演算子なら実行するようなプレフィクスのマッチングもサポートしていませ" -"ん。" +"論的な情報を全く考慮しない単純な文字列の同一性演算です。この比較は、 例えば小" +"文字に揃えるなどして大文字小文字を区別しないASCII 文字として取り扱われなけれ" +"ばなりませんが、非 ASCII 文字については仕様化されていません。この演算子は、ま" +"た、 ``==`` 演算子なら実行するようなプレフィクスのマッチングもサポートしてい" +"ません。" -#: ../source/specifications/version-specifiers.rst:1022 +#: ../source/specifications/version-specifiers.rst:1038 msgid "" "The primary use case for arbitrary equality is to allow for specifying a " "version which cannot otherwise be represented by this specification. This " @@ -33381,14 +33275,14 @@ msgstr "" "ればこの仕様とは非互換になってしまうようなレガシーなバージョンを、それでもイ" "ンストールすることができる脱出ハッチとして振舞います。" -#: ../source/specifications/version-specifiers.rst:1028 +#: ../source/specifications/version-specifiers.rst:1044 msgid "" "An example would be ``===foobar`` which would match a version of ``foobar``." msgstr "" "一つの例としては、``foobar`` というバージョン番号に合致するであろう " "``==foobar`` ということになるでしょう。" -#: ../source/specifications/version-specifiers.rst:1030 +#: ../source/specifications/version-specifiers.rst:1046 msgid "" "This operator may also be used to explicitly require an unpatched version of " "a project such as ``===1.0`` which would not match for a version " @@ -33398,7 +33292,7 @@ msgstr "" "うと思われる、 ``===1.0`` のようなプロジェクトのパッチ適用のないバージョンを" "明示的に要求するためにも使われます。" -#: ../source/specifications/version-specifiers.rst:1034 +#: ../source/specifications/version-specifiers.rst:1050 msgid "" "Use of this operator is heavily discouraged and tooling MAY display a " "warning when it is used." @@ -33406,11 +33300,11 @@ msgstr "" "この演算子の使用は強い非推奨の状態にあり、使用に際してはツール類は警告を表示" "しても構いません。" -#: ../source/specifications/version-specifiers.rst:1039 +#: ../source/specifications/version-specifiers.rst:1055 msgid "Handling of pre-releases" msgstr "プレリリースの取り扱い " -#: ../source/specifications/version-specifiers.rst:1041 +#: ../source/specifications/version-specifiers.rst:1057 msgid "" "Pre-releases of any kind, including developmental releases, are implicitly " "excluded from all version specifiers, *unless* they are already present on " @@ -33422,18 +33316,18 @@ msgstr "" "か、の *いずれかでない限り* 、開発リリースを含むプレリリースは、どんな種類で" "も、あらゆるバージョン指定子から暗黙裡に除外されます。" -#: ../source/specifications/version-specifiers.rst:1046 +#: ../source/specifications/version-specifiers.rst:1062 msgid "By default, dependency resolution tools SHOULD:" msgstr "" "デフォルトでは、依存関係を解決しようとするツール類は以下のことを行うべきです:" -#: ../source/specifications/version-specifiers.rst:1048 +#: ../source/specifications/version-specifiers.rst:1064 msgid "accept already installed pre-releases for all version specifiers" msgstr "" "全てのバージョン指定子向けにすでにインストールされているプレリリースを受け入" "れる" -#: ../source/specifications/version-specifiers.rst:1049 +#: ../source/specifications/version-specifiers.rst:1065 msgid "" "accept remotely available pre-releases for version specifiers where there is " "no final or post release that satisfies the version specifier" @@ -33442,11 +33336,11 @@ msgstr "" "モートサイトにあって利用可能なプレリリースを、バージョン指定子として受け入れ" "る" -#: ../source/specifications/version-specifiers.rst:1051 +#: ../source/specifications/version-specifiers.rst:1067 msgid "exclude all other pre-releases from consideration" msgstr "他のすべてのプレリリースを考慮の対象から除外する" -#: ../source/specifications/version-specifiers.rst:1053 +#: ../source/specifications/version-specifiers.rst:1069 msgid "" "Dependency resolution tools MAY issue a warning if a pre-release is needed " "to satisfy a version specifier." @@ -33454,7 +33348,7 @@ msgstr "" "依存関係解決ツール群は、バージョン指定子を満足させるためにあるプレリリースが" "必要である場合には、警告を発しても構いません。" -#: ../source/specifications/version-specifiers.rst:1056 +#: ../source/specifications/version-specifiers.rst:1072 msgid "" "Dependency resolution tools SHOULD also allow users to request the following " "alternative behaviours:" @@ -33462,11 +33356,11 @@ msgstr "" "依存関係解決ツール群は、また、以下のような代替的な振る舞いをユーザが要求する" "ことを許容するべきです:" -#: ../source/specifications/version-specifiers.rst:1059 +#: ../source/specifications/version-specifiers.rst:1075 msgid "accepting pre-releases for all version specifiers" msgstr "全てのバージョン指定子にプレリリースを受け入れること" -#: ../source/specifications/version-specifiers.rst:1060 +#: ../source/specifications/version-specifiers.rst:1076 msgid "" "excluding pre-releases for all version specifiers (reporting an error or " "warning if a pre-release is already installed locally, or if a pre-release " @@ -33476,7 +33370,7 @@ msgstr "" "ローカルにインストールされている場合や特定の指定子を満たすためにはプレリリー" "スが唯一の選択肢である場合には、エラーないし警告を報告すること)" -#: ../source/specifications/version-specifiers.rst:1064 +#: ../source/specifications/version-specifiers.rst:1080 msgid "" "Dependency resolution tools MAY also allow the above behaviour to be " "controlled on a per-distribution basis." @@ -33484,7 +33378,7 @@ msgstr "" "依存関係解決ツール群は、配布物の単位ごとに上記の振る舞いを許容しても構いませ" "ん。" -#: ../source/specifications/version-specifiers.rst:1067 +#: ../source/specifications/version-specifiers.rst:1083 msgid "" "Post-releases and final releases receive no special treatment in version " "specifiers - they are always included unless explicitly excluded." @@ -33492,25 +33386,25 @@ msgstr "" "ポストリリースと最終リリースは、バージョン識別子の中で何ら特別な取り扱いを受" "けません - 明示的に除外されていない限り、これらは常に受け入れられます。" -#: ../source/specifications/version-specifiers.rst:1074 +#: ../source/specifications/version-specifiers.rst:1090 msgid "``~=3.1``: version 3.1 or later, but not version 4.0 or later." msgstr "" "``~=3.1``: バージョン 3.1 またはそれ以降、しかし、バージョン 4.0 またはそれ以" "降ではない。" -#: ../source/specifications/version-specifiers.rst:1075 +#: ../source/specifications/version-specifiers.rst:1091 msgid "``~=3.1.2``: version 3.1.2 or later, but not version 3.2.0 or later." msgstr "" "``~=3.1.2``: バージョン 3.1.2 またはそれ以降、しかし、バージョン 3.2.0 または" "それ以降ではない。" -#: ../source/specifications/version-specifiers.rst:1076 +#: ../source/specifications/version-specifiers.rst:1092 msgid "``~=3.1a1``: version 3.1a1 or later, but not version 4.0 or later." msgstr "" "``~=3.1a1``: バージョン 3.1a1 またはそれ以降、しかし、バージョン 4.0 またはそ" "れ以降ではない。" -#: ../source/specifications/version-specifiers.rst:1077 +#: ../source/specifications/version-specifiers.rst:1093 msgid "" "``== 3.1``: specifically version 3.1 (or 3.1.0), excludes all pre-releases, " "post releases, developmental releases and any 3.1.x maintenance releases." @@ -33518,7 +33412,7 @@ msgstr "" "``== 3.1``: 正確にバージョン 3.1 (または 3.1.0)、プレリリース・ポストリリー" "ス・開発リリースや 3.1.x のメンテナンスリリースは全て除外する。" -#: ../source/specifications/version-specifiers.rst:1079 +#: ../source/specifications/version-specifiers.rst:1095 msgid "" "``== 3.1.*``: any version that starts with 3.1. Equivalent to the " "``~=3.1.0`` compatible release clause." @@ -33526,7 +33420,7 @@ msgstr "" "``== 3.1.*``: 3.1 で始まるすべてのバージョン。 ``~=3.1.0`` 互換リリース節に同" "じ。" -#: ../source/specifications/version-specifiers.rst:1081 +#: ../source/specifications/version-specifiers.rst:1097 msgid "" "``~=3.1.0, != 3.1.3``: version 3.1.0 or later, but not version 3.1.3 and not " "version 3.2.0 or later." @@ -33534,11 +33428,11 @@ msgstr "" "``~=3.1.0, != 3.1.3``: バージョン 3.1.0 またはそれ以降、しかし、バージョン " "3.1.3 ではなく、バージョン 3.2.0 またはそれ以降でもない。" -#: ../source/specifications/version-specifiers.rst:1086 +#: ../source/specifications/version-specifiers.rst:1102 msgid "Direct references" msgstr "直接参照" -#: ../source/specifications/version-specifiers.rst:1088 +#: ../source/specifications/version-specifiers.rst:1104 msgid "" "Some automated tools may permit the use of a direct reference as an " "alternative to a normal version specifier. A direct reference consists of " @@ -33548,7 +33442,7 @@ msgstr "" "ものがあります。直接参照は、それを指定する ``@`` と明示された URL から構成さ" "れます。" -#: ../source/specifications/version-specifiers.rst:1092 +#: ../source/specifications/version-specifiers.rst:1108 msgid "" "Whether or not direct references are appropriate depends on the specific use " "case for the version specifier. Automated tools SHOULD at least issue " @@ -33559,7 +33453,7 @@ msgstr "" "存します。自動化ツール群は、少なくとも警告を発行するべきで、直接参照が不適切" "に使われた場合には全体を拒否しても構いません。" -#: ../source/specifications/version-specifiers.rst:1097 +#: ../source/specifications/version-specifiers.rst:1113 msgid "" "Public index servers SHOULD NOT allow the use of direct references in " "uploaded distributions. Direct references are intended as a tool for " @@ -33569,7 +33463,7 @@ msgstr "" "すべきではありません。直接参照は、公開者 向けではなくてソフト" "ウェアインテグレータ向けのツールとして意図されたものです。" -#: ../source/specifications/version-specifiers.rst:1101 +#: ../source/specifications/version-specifiers.rst:1117 msgid "" "Depending on the use case, some appropriate targets for a direct URL " "reference may be an sdist or a wheel binary archive. The exact URLs and " @@ -33579,16 +33473,16 @@ msgstr "" "バイナリアーカイブでしょう。正確な URL やターゲットのサポートがあるかどうかは" "ツール次第です。" -#: ../source/specifications/version-specifiers.rst:1105 +#: ../source/specifications/version-specifiers.rst:1121 msgid "For example, a local source archive may be referenced directly::" msgstr "" "例えば、ローカルのソースコードアーカイブが直接に参照されるかもしれません::" -#: ../source/specifications/version-specifiers.rst:1109 +#: ../source/specifications/version-specifiers.rst:1125 msgid "Alternatively, a prebuilt archive may also be referenced::" msgstr "あるいは、ビルド済みのアーカイブが参照されるかもしれません::" -#: ../source/specifications/version-specifiers.rst:1113 +#: ../source/specifications/version-specifiers.rst:1129 msgid "" "All direct references that do not refer to a local file URL SHOULD specify a " "secure transport mechanism (such as ``https``) AND include an expected hash " @@ -33608,7 +33502,7 @@ msgstr "" "することを拒否しても構いません。もしそのような直接参照が安全でない転送手段を" "使っているなら、自動化ツールはその URL に依存するべきではありません。" -#: ../source/specifications/version-specifiers.rst:1122 +#: ../source/specifications/version-specifiers.rst:1138 msgid "" "It is RECOMMENDED that only hashes which are unconditionally provided by the " "latest version of the standard library's :py:mod:`hashlib` module be used " @@ -33618,10 +33512,10 @@ msgid "" msgstr "" "ソースコードアーカイブのハッシュ値計算には、標準ライブラリ" "の :py:mod:`hashlib` モジュールの最新版が無条件に提供するハッシュだけを用いる" -"ことを推奨します。本文書の執筆時点では、 'md5' ・ 'sha1' ・ 'sha224' ・ " -"'sha256' ・ 'sha384' ・ 'sha512' が該当します。" +"ことを推奨します。本文書の執筆時点では、 ``'md5'`` ・ ``'sha1'`` ・ " +"``'sha224'`` ・ ``'sha256'`` ・ ``'sha384'`` ・ ``'sha512'`` が該当します。" -#: ../source/specifications/version-specifiers.rst:1128 +#: ../source/specifications/version-specifiers.rst:1144 msgid "" "For source archive and wheel references, an expected hash value may be " "specified by including a ``=`` entry as part " @@ -33631,7 +33525,7 @@ msgstr "" "URL の一部として ``=`` エントリに含まれる形で" "指定されるでしょう。" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -33645,7 +33539,7 @@ msgstr "" "す。自動化ツール群は、ハッシュ値で表したコミット識別子を持たないバージョン管" "理システムではハッシュ値がなくても警告を省略しても構いません。" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -33657,7 +33551,7 @@ msgstr "" "タグ>#<コミットのハッシュ値>`` という表記方法を用いて URL の末尾に追加しても" "構いません。" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -33675,15 +33569,15 @@ msgstr "" "シュ値が含まれているべきであるという要求に従うために、コミットのハッシュ値が" "含まれています。" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "リモート URL の例::" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "ファイルを指す URL 群" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -33695,7 +33589,7 @@ msgstr "" "であってさえも3個目のスラッシュが存在していなければなりません。 ```` " "は、これからアクセスされるであろうファイルシステム上のファイルパスです。" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -33707,7 +33601,7 @@ msgstr "" "の FQDN です。換言すれば、 \\*nix 上では、ローカルマシン上のパスにアクセスす" "るための ``file://`` スキームだけが使用可能であるということです。" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -33728,18 +33622,22 @@ msgstr "" "web.archive.org/web/20130321051043/http://blogs.msdn.com/b/ie/archive/" "2006/12/06/file-uris-in-windows.aspx>`_ を見てください。" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "pkg_resources.parse_version からの相違点のまとめ" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" +"ノート: この比較は、 :pep:`440` が書かれた時点で存在していたように、 " +"``pkg_resources.parse_version`` に向けたものです。 PEP が受け入れられた後、 " +"setuptools 6.0 およびそれ以降のバージョンは、ここで記述された動作を採用してい" +"ます。" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " @@ -33750,7 +33648,7 @@ msgstr "" "いますが、他方で、 ``pkg_resources.parse_version`` はそれ (訳註、ローカルバー" "ジョン) をプレリリースのマーカーの一つであると見做しています。" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " @@ -33760,7 +33658,7 @@ msgstr "" "他方で ``pkg_resources.parse_version`` では *あらゆる* 任意の文字列から何らか" "の意味を汲み取るように試みます。" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " @@ -33771,11 +33669,11 @@ msgstr "" "は、それぞれのタイプが高々一度だけ使われることと、ある順番に従って存在してい" "ることを許容しているだけです。" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "補遺: 正規表現を伴うバージョン文字列を解析する" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -33789,7 +33687,7 @@ msgstr "" "し否であればその後の標準化のためにさまざまな構成要素を引き出すために使うこと" "ができる、そのような正規表現を提供します。" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" @@ -33797,7 +33695,7 @@ msgstr "" "バージョン識別子が正統な書式であるか否かを確かめるためには、次の関数を使うこ" "とができます:" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ プロジェクトによって定" "義されたもの):" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "2014年8月: :pep:`440` を通じてこの仕様が承認された。" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +"2025年5月: 開発リリースは、それが取り扱われるときにはプレリリースのひとつの形" +"態であることを明確にしました。" + +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" +"2025年11月: あらゆる意味での同一性 では大文字小文字を区" +"別しないことを明示しました。" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "2026年1月: エポックの仕様が推奨されなくなりました。" #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" @@ -33853,10 +33763,10 @@ msgid "" "interpreter) having a different value from :py:data:`sys.base_prefix` (the " "default filesystem location of the standard library directories)." msgstr "" -"ランタイムには、仮想環境は :py:data:``sys.prefix`` (動作中のインタープリタの" -"ファイルシステム上の場所) が :py:data:``sys.base_prefix`` (標準ライブラリの" -"ディレクトリのデフォルトでのファイルシステム上の場所) とは異なる値を持つおか" -"げで識別可能です。" +"ランタイムには、仮想環境は :py:data:`sys.prefix` (動作中のインタープリタの" +"ファイルシステム上の場所) が :py:data:`sys.base_prefix` (標準ライブラリのディ" +"レクトリのデフォルトでのファイルシステム上の場所) とは異なる値を持つおかげで" +"識別可能です。" #: ../source/specifications/virtual-environments.rst:25 msgid "" @@ -33927,10 +33837,8 @@ msgid "May 2012: This specification was approved through :pep:`405`." msgstr "2012年5月: :pep:`405` を通じてこの仕様が承認されました。" #: ../source/specifications/well-known-project-urls.rst:5 -#, fuzzy -#| msgid "Pyproject Metadata" msgid "Well-known Project URLs in Metadata" -msgstr "Pyproject のメタデータ" +msgstr "メタデータ内のよく知られたプロジェクト URL" #: ../source/specifications/well-known-project-urls.rst:9 msgid "" @@ -33938,6 +33846,10 @@ msgid "" "use the normalization rules and well-known list below to make their " "presentation of project URLs consistent across the Python ecosystem." msgstr "" +"この説明文書は、一義的にはメタデータの *コンシューマ* 、コンシューマはPython " +"エコシステムを通じて一貫性のある形でプロジェクト URL を提示させるために標準化" +"ルールや後述のよく知られたリストを使用するべきですが、そのコンシューマに着目" +"しています。" #: ../source/specifications/well-known-project-urls.rst:14 msgid "" @@ -33946,6 +33858,11 @@ msgid "" "``Project-URL`` length restrictions. However, when possible, users are " "*encouraged* to pick meaningful labels that normalize to well-known labels." msgstr "" +"(ビルドツール類や個々のパッケージ保守者のような) メタデータの *プロデューサ* " +"は、全体的な ``Project-URL`` の長さ制限の範囲内であれば、好きなラベルを使用し" +"続けても構いません。しかしながら、可能であるときには、ユーザは理解しやすいラ" +"ベルでよく知られたラベルに標準化されたものを選択することを *推奨されています" +"* 。" #: ../source/specifications/well-known-project-urls.rst:22 msgid "" @@ -33953,13 +33870,13 @@ msgid "" "for user-oriented guidance on choosing project URL labels in your package's " "metadata." msgstr "" +"パッケージのメタデータの中のプロジェクト URL ラベルを選択することについての" +"ユーザ指向のガイダンスについては、 :ref:`pyproject.toml を書く- urls " +"` を見てください。" #: ../source/specifications/well-known-project-urls.rst:26 -#, fuzzy -#| msgid "" -#| "This specification was originally defined in :pep:`518` and :pep:`621`." msgid "This specification was originally defined in :pep:`753`." -msgstr "この仕様は、元々は :pep:`518` 及び :pep:`621` で定義されました。" +msgstr "この仕様は、元々は :pep:`753` で定義されました。" #: ../source/specifications/well-known-project-urls.rst:28 msgid "" @@ -33970,24 +33887,33 @@ msgid "" "semantics assigned to ``Home-page``, ``Download-URL``, or other common " "project URLs." msgstr "" +":pep:`753` は、 :ref:`core-metadata-project-url` に従って :ref:`core-" +"metadata-home-page` と :ref:`core-metadata-download-url` のメタデータフィール" +"ドを非推奨とし、 ``Project-URL`` が \"よく知られた\" ものであるかどうか、つま" +"り、 ``Home-page`` ・ ``Download-URL`` やその他の一般的なプロジェクト URL に" +"指定されるセマンティクスを持っているかどうかを決定するための、正規化とルック" +"アップの手続きを定義しました。" #: ../source/specifications/well-known-project-urls.rst:35 msgid "" "This allows indices (such as the Python Package Index) and other downstream " "metadata consumers to present project URLs in a consistent manner." msgstr "" +"これによって、 (Python Package Index のような) インデックスや他のダウンスト" +"リーム側メタデータコンシューマが首尾一貫したやり方でプロジェクト URL を提示す" +"ることができます。" #: ../source/specifications/well-known-project-urls.rst:42 -#, fuzzy -#| msgid "Name normalization" msgid "Label normalization" -msgstr "名前の正規化" +msgstr "ラベルの正規化" #: ../source/specifications/well-known-project-urls.rst:46 msgid "" "Label normalization is performed by metadata *consumers*, not metadata " "producers." msgstr "" +"ラベル正規化は、メタデータの *コンシューマ* によって行われるのであって、メタ" +"データプロデューサによってではありません。" #: ../source/specifications/well-known-project-urls.rst:49 msgid "" @@ -33995,236 +33921,230 @@ msgid "" "consumers should normalize the label before comparing it to the :ref:`list " "of well-known labels `." msgstr "" +"``Project-URL`` ラベルが \"よく知られた\" ものであるかどうかを決定するために" +"は、メタデータのコンシューマは、そのラベルを :ref:`よく知られたラベルのリス" +"ト ` と比較する前に、そのラベルを正規化するべきです。" #: ../source/specifications/well-known-project-urls.rst:53 msgid "" "The normalization procedure for ``Project-URL`` labels is defined by the " "following Python function:" msgstr "" +"``Project-URL`` ラベルの正規化の手続きは、次に示す Python 関数で定義されてい" +"ます:" #: ../source/specifications/well-known-project-urls.rst:65 msgid "" "In plain language: a label is *normalized* by deleting all ASCII punctuation " "and whitespace, and then converting the result to lowercase." msgstr "" +"プレーンな言語では: ラベルは、 ASCII の句読点と空白文字をすべて取り除き、その" +"結果を小文字に変換することで *正規化* されます。" #: ../source/specifications/well-known-project-urls.rst:68 msgid "" "The following table shows examples of labels before (raw) and after " "normalization:" -msgstr "" +msgstr "次に示すテーブルでは、ラベルの正規化の前 (生) と後の例をお見せします:" #: ../source/specifications/well-known-project-urls.rst:74 msgid "Raw" -msgstr "" +msgstr "生" #: ../source/specifications/well-known-project-urls.rst:75 -#, fuzzy -#| msgid "Normalized Names" msgid "Normalized" -msgstr "正規化された名称" +msgstr "正規化後" #: ../source/specifications/well-known-project-urls.rst:76 -#, fuzzy -#| msgid "Home-page" msgid "``Homepage``" -msgstr "Home-page" +msgstr "``Homepage``" #: ../source/specifications/well-known-project-urls.rst:77 #: ../source/specifications/well-known-project-urls.rst:79 #: ../source/specifications/well-known-project-urls.rst:81 -#, fuzzy -#| msgid "Home-page" msgid "``homepage``" -msgstr "Home-page" +msgstr "``homepage``" #: ../source/specifications/well-known-project-urls.rst:78 -#, fuzzy -#| msgid "Home-page" msgid "``Home-page``" -msgstr "Home-page" +msgstr "``Home-page``" #: ../source/specifications/well-known-project-urls.rst:80 -#, fuzzy -#| msgid "Home page" msgid "``Home page``" -msgstr "ホームページ" +msgstr "``Home page``" #: ../source/specifications/well-known-project-urls.rst:82 msgid "``Change_Log``" -msgstr "" +msgstr "``Change_Log``" #: ../source/specifications/well-known-project-urls.rst:83 msgid "``changelog``" -msgstr "" +msgstr "``changelog``" #: ../source/specifications/well-known-project-urls.rst:84 msgid "``What's New?``" -msgstr "" +msgstr "``What's New?``" #: ../source/specifications/well-known-project-urls.rst:85 msgid "``whatsnew``" -msgstr "" +msgstr "``whatsnew``" #: ../source/specifications/well-known-project-urls.rst:86 #: ../source/specifications/well-known-project-urls.rst:87 msgid "``github``" -msgstr "" +msgstr "``github``" #: ../source/specifications/well-known-project-urls.rst:92 msgid "Well-known labels" -msgstr "" +msgstr "よく知られたラベル" #: ../source/specifications/well-known-project-urls.rst:96 msgid "" "The list of well-known labels is a living standard, maintained as part of " "this document." msgstr "" +"よく知られたラベルのリストは、成長し続ける標準で、この説明文書の一部として維" +"持管理されます。" #: ../source/specifications/well-known-project-urls.rst:99 msgid "" "The following table lists labels that are well-known for the purpose of " "specializing the presentation of ``Project-URL`` metadata:" msgstr "" +"以下のテーブルでは、 ``Project-URL`` メタデータの表示を特別なものにする目的の" +"ためによく知られたラベルを列挙します:" #: ../source/specifications/well-known-project-urls.rst:105 msgid "Label (Human-readable equivalent)" -msgstr "" +msgstr "ラベル (人間が読む時用の同等物)" #: ../source/specifications/well-known-project-urls.rst:107 msgid "Aliases" -msgstr "" +msgstr "別名" #: ../source/specifications/well-known-project-urls.rst:108 msgid "``homepage`` (Homepage)" -msgstr "" +msgstr "``homepage`` (Homepage)" #: ../source/specifications/well-known-project-urls.rst:109 msgid "The project's home page" -msgstr "" +msgstr "プロジェクトのホームページ" #: ../source/specifications/well-known-project-urls.rst:110 #: ../source/specifications/well-known-project-urls.rst:116 #: ../source/specifications/well-known-project-urls.rst:122 msgid "*(none)*" -msgstr "" +msgstr "*(none)*" #: ../source/specifications/well-known-project-urls.rst:111 msgid "``source`` (Source Code)" -msgstr "" +msgstr "``source`` (Source Code)" #: ../source/specifications/well-known-project-urls.rst:112 msgid "The project's hosted source code or repository" -msgstr "" +msgstr "プロジェクトのホストされたソースコードまたはリポジトリ" #: ../source/specifications/well-known-project-urls.rst:113 msgid "``repository``, ``sourcecode``, ``github``" -msgstr "" +msgstr "``repository``, ``sourcecode``, ``github``" #: ../source/specifications/well-known-project-urls.rst:114 msgid "``download`` (Download)" -msgstr "" +msgstr "``download`` (Download)" #: ../source/specifications/well-known-project-urls.rst:115 msgid "" "A download URL for the current distribution, equivalent to ``Download-URL``" -msgstr "" +msgstr "最新の配布物のダウンロード URL で、 ``Download-URL`` と同等" #: ../source/specifications/well-known-project-urls.rst:117 msgid "``changelog`` (Changelog)" -msgstr "" +msgstr "``changelog`` (Changelog)" #: ../source/specifications/well-known-project-urls.rst:118 msgid "The project's comprehensive changelog" -msgstr "" +msgstr "プロジェクトの網羅的な変更履歴" #: ../source/specifications/well-known-project-urls.rst:119 msgid "``changes``, ``whatsnew``, ``history``" -msgstr "" +msgstr "``changes``, ``whatsnew``, ``history``" #: ../source/specifications/well-known-project-urls.rst:120 msgid "``releasenotes`` (Release Notes)" -msgstr "" +msgstr "``releasenotes`` (Release Notes)" #: ../source/specifications/well-known-project-urls.rst:121 msgid "The project's curated release notes" -msgstr "" +msgstr "プロジェクトの精査されたリリースノート" #: ../source/specifications/well-known-project-urls.rst:123 -#, fuzzy -#| msgid "Creating documentation" msgid "``documentation`` (Documentation)" -msgstr "説明文書を作成する" +msgstr "``documentation`` (Documentation)" #: ../source/specifications/well-known-project-urls.rst:124 -#, fuzzy -#| msgid "Creating documentation" msgid "The project's online documentation" -msgstr "説明文書を作成する" +msgstr "プロジェクトのオンライン説明文書" #: ../source/specifications/well-known-project-urls.rst:125 -#, fuzzy -#| msgid "``upload_docs``" msgid "``docs``" -msgstr "``upload_docs``" +msgstr "``docs``" #: ../source/specifications/well-known-project-urls.rst:126 msgid "``issues`` (Issue Tracker)" -msgstr "" +msgstr "``issues`` (Issue Tracker)" #: ../source/specifications/well-known-project-urls.rst:127 msgid "The project's bug tracker" -msgstr "" +msgstr "プロジェクトのバグ追跡システム" #: ../source/specifications/well-known-project-urls.rst:128 msgid "``bugs``, ``issue``, ``tracker``, ``issuetracker``, ``bugtracker``" -msgstr "" +msgstr "``bugs``, ``issue``, ``tracker``, ``issuetracker``, ``bugtracker``" #: ../source/specifications/well-known-project-urls.rst:129 msgid "``funding`` (Funding)" -msgstr "" +msgstr "``funding`` (資金調達)" #: ../source/specifications/well-known-project-urls.rst:130 -#, fuzzy -#| msgid "Basic information" msgid "Funding Information" -msgstr "基本的な情報" +msgstr "財政支援のための情報" #: ../source/specifications/well-known-project-urls.rst:131 msgid "``sponsor``, ``donate``, ``donation``" -msgstr "" +msgstr "``sponsor``, ``donate``, ``donation``" #: ../source/specifications/well-known-project-urls.rst:133 msgid "" "Package metadata consumers may choose to render aliased labels the same as " "their \"parent\" well known label, or further specialize them." msgstr "" +"パッケージメタデータのコンシューマは、別名で表現されたラベルをその \"親\" の" +"よく知られたラベルと同様に展開することや、または、それらをさらに詳しく指定す" +"ることを選択しても構いません。" #: ../source/specifications/well-known-project-urls.rst:137 -#, fuzzy -#| msgid "Example" msgid "Example behavior" -msgstr "例" +msgstr "振る舞いの例" #: ../source/specifications/well-known-project-urls.rst:139 msgid "" "The following shows the flow of project URL metadata from ``pyproject.toml`` " "to core metadata to a potential index presentation:" msgstr "" +"以下では、 ``pyproject.toml`` からのプロジェクト URL メタデータを コアとなる" +"メタデータへ、さらに潜在的なインデックスへと表現する流れを示します:" #: ../source/specifications/well-known-project-urls.rst:142 msgid "Example project URLs in standard configuration" -msgstr "" +msgstr "標準設定でのプロジェクト URL の例" #: ../source/specifications/well-known-project-urls.rst:151 -#, fuzzy -#| msgid "Core metadata specifications" msgid "Core metadata representation" -msgstr "コアとなるメタデータの仕様" +msgstr "コアとなるメタデータの表現" #: ../source/specifications/well-known-project-urls.rst:159 msgid "Potential rendering" -msgstr "" +msgstr "潜在的な展開" #: ../source/specifications/well-known-project-urls.rst:167 msgid "" @@ -34233,27 +34153,36 @@ msgid "" "*consumer* normalizes and identifies appropriate human-readable equivalents " "based on the normalized form:" msgstr "" +"(メタデータの *プロデューサ* は正規化を実行しないので) コアとなるメタデータが" +"ユーザによって提供されたフォームの中に出現したことを観測し、しかし、メタデー" +"タの *コンシューマ* が正規化し、正規化すみフォームに基づいて適切な人間の読め" +"る形の同等物を特定する:" #: ../source/specifications/well-known-project-urls.rst:172 msgid "``Home page`` becomes ``homepage``, which is rendered as ``Homepage``" -msgstr "" +msgstr "``Home page`` は ``homepage`` となり、それは ``Homepage`` に展開される" #: ../source/specifications/well-known-project-urls.rst:173 msgid "" "``DOCUMENTATION`` becomes ``documentation``, which is rendered as " "``Documentation``" msgstr "" +"``DOCUMENTATION`` は ``documentation`` となり、それは ``Documentation`` に展" +"開される" #: ../source/specifications/well-known-project-urls.rst:174 msgid "" "``Repository`` becomes ``repository``, which is rendered as ``Source Code``" msgstr "" +"``Repository`` は ``repository`` となり、 ``Source Code`` として展開されます" #: ../source/specifications/well-known-project-urls.rst:175 msgid "" "``GitHub`` becomes ``github``, which is rendered as ``Source Code (GitHub)`` " "(as a specialization of ``Source Code``)" msgstr "" +"``GitHub`` は ``github`` となり、 (``Source Code`` の特定の形として) " +"``Source Code (GitHub)`` に展開される" #: ../source/support.rst:3 msgid "How to Get Support" @@ -34550,10 +34479,10 @@ msgid "" "alone-command-line-tools`." msgstr "" "Python の \"仮想環境\" を使えば、 Python の :term:`パッケージ ` をグローバルな環境にインストールする代わりに、特定のアプリケーショ" -"ンのための隔離された場所にインストールすることができます。グローバルなコマン" -"ドラインツールを安全にインストールしたいのであれば、 :doc:`/guides/" -"installing-stand-aline-command-line-tools` を見てください。" +"Package>` をグローバルな環境にインストールする代わりに、特定の" +"アプリケーションのための隔離された場所にインストールすることができます。" +"グローバルなコマンドラインツールを安全にインストールしたいのであれば、 " +":doc:`/guides/installing-stand-alone-command-line-tools` を見てください。" #: ../source/tutorials/installing-packages.rst:207 msgid "" @@ -34616,18 +34545,11 @@ msgid "" "installed :ref:`setuptools`)." msgstr "" ":doc:`venv ` は、 Python 3.3 およびそれ以降のバージョン" -"で本体に同梱されていて利用可能であり、 Python 3.4 およびそれ以降で" -"は :ref:`pip` と :ref:`setuptools` を作成された仮想環境内にインストールしま" -"す (3.12 以前の Python のバージョンは :ref:`setuptools` もインストールしてい" -"ました) 。" +"でデフォルトで利用可能であり、 Python 3.4 およびそれ以降では :ref:`pip` を作" +"成された仮想環境内にインストールします (3.12 より前の Python のバージョンで" +"は :ref:`setuptools` もインストールしていました) 。" #: ../source/tutorials/installing-packages.rst:229 -#, fuzzy -#| msgid "" -#| ":ref:`virtualenv` needs to be installed separately, but supports Python " -#| "2.7+ and Python 3.3+, and :ref:`pip`, :ref:`setuptools` and :ref:`wheel` " -#| "are always installed into created virtual environments by default " -#| "(regardless of Python version)." msgid "" ":ref:`virtualenv` needs to be installed separately, but supports Python 2.7+ " "and Python 3.3+, and :ref:`pip`, :ref:`setuptools` and :ref:`wheel` are " @@ -34636,9 +34558,10 @@ msgid "" "(and ``virtualenv`` follows this behavior)." msgstr "" ":ref:`virtualenv` は別途インストールする必要がありますが、 Python 2.7+ と " -"Python 3.3+ をサポートしており、 :ref:`pip` ・ :ref:`setuptools` " -"・ :ref:`wheel` を作成された仮想環境に常にデフォルト (Python のバージョンに関" -"係なく) でインストールします。" +"Python 3.3+ をサポートしており、デフォルトで :ref:`pip` ・ :ref:`setuptools` " +"・ :ref:`wheel` を作成した仮想環境にインストールします。 Python 3.12 以降は、" +"デフォルトでは ``setuptools`` が最早含まれていないこと (そして " +"``virtualenv`` はこの動作に追随しています) に注意してください。" #: ../source/tutorials/installing-packages.rst:234 msgid "The basic usage is like so:" @@ -34666,7 +34589,7 @@ msgid "" "environment's variables are set within the current shell, and not in a " "subprocess (which then disappears, having no useful effect)." msgstr "" -"UNIX のシェル上で :command:`source` を使うとそのシェル内では仮想環境用の変数" +"Unix のシェル上で :command:`source` を使うとそのシェル内では仮想環境用の変数" "が設定されますが、サブシェルでは設定され (ず、役に立つ効果が残り) ません。" #: ../source/tutorials/installing-packages.rst:276 @@ -35021,8 +34944,8 @@ msgid "" "installed, thereby making it an equal alternative to :ref:`virtualenv`." msgstr "" "Python 3.4 以降は (:ref:`virtualenv` の代替物で標準ライブラリに取り込まれた) " -"``venv``があるので、インストール済みの ``pip`` で virtualenv 環境を作成でき、" -"それによって :ref:`virtualenv` の同等な代替物となっています。" +"``venv`` があるので、インストール済みの ``pip`` で virtualenv 環境を作成で" +"き、それによって :ref:`virtualenv` の同等な代替物となっています。" #: ../source/tutorials/installing-packages.rst:680 msgid "" @@ -35030,7 +34953,7 @@ msgid "" "released in :ref:`setuptools` v8.0 and :ref:`pip` v6.0" msgstr "" "互換性のあるリリース指定子は :pep:`440` で受容され、そのサポート" -"が :ref:`setuptools` v8.0 と :ref:``pip` v6.0 でリリースされました" +"が :ref:`setuptools` v8.0 と :ref:`pip` v6.0 でリリースされました" #: ../source/tutorials/managing-dependencies.rst:4 msgid "Managing Application Dependencies" @@ -35087,8 +35010,8 @@ msgstr "" msgid "" "For alternatives, see `Other Tools for Application Dependency Management`_." msgstr "" -"他の手段については、 `アプリケーションの依存関係管理のための他のツール群 " -"`_ を見てください。" +"他の手段については、 `Other Tools for Application Dependency Management`_ を" +"見てください。" #: ../source/tutorials/managing-dependencies.rst:27 msgid "Installing Pipenv" @@ -35302,6 +35225,8 @@ msgid "" "project management workflow, including dependency management, packaging, and " "publishing." msgstr "" +"依存関係管理・パッケージング・公開を含む、プロジェクト管理全体のワークフロー" +"をカバーする単一のツールとしての `uv `__ 。" #: ../source/tutorials/packaging-projects.rst:2 msgid "Packaging Python Projects" @@ -35502,14 +35427,6 @@ msgstr "" "てください。" #: ../source/tutorials/packaging-projects.rst:141 -#, fuzzy -#| msgid "" -#| "The ``requires`` key is a list of packages that are needed to build your " -#| "package. The :term:`frontend ` should install them " -#| "automatically when building your package. Frontends usually run builds in " -#| "isolated environments, so omitting dependencies here may cause build-time " -#| "errors. This should always include your backend's package, and might have " -#| "other build-time dependencies." msgid "" "The ``requires`` key is a list of packages that are needed to build your " "package. The :term:`frontend ` should install them " @@ -35520,12 +35437,15 @@ msgid "" "code block is the one that introduced support for :ref:`the new license " "metadata `." msgstr "" -"``requires`` は、そのパッケージをビルドするために必要とされるパッケージ群のリ" -"ストです。 :term:`ビルドフロントエンド ` は、そのパッケージを" -"ビルドする際にそれらをインストールするべきです。フロントエンドは、通常、隔離" -"された環境でビルドを実行しますので、ここに依存関係を書き忘れるとビルド時のエ" -"ラーにつながります。バックエンドパッケージには常にこれを含めておくべきであ" -"り、他のビルド時の依存関係を持っているかもしれません。" +"``requires`` キーは、そのパッケージをビルドするために必要とされるパッケージ群" +"のリストです。 :term:`ビルドフロントエンド ` は、そのパッケー" +"ジをビルドする際にそれらを自動的にインストールするべきです。フロントエンド" +"は、通常、隔離された環境でビルドを実行しますので、ここに依存関係を書き忘れる" +"とビルド時のエラーにつながかもしれません。バックエンドパッケージには常にこれ" +"を含めておくべきであり、他のビルド時の依存関係を持っているかもしれません。上" +"記のコードブロックの中で指定された最低限のバージョン番号は、 :ref:`新しいライ" +"センスメタデータ ` へのサポートを導入したバージョ" +"ンです。" #: ../source/tutorials/packaging-projects.rst:150 msgid "" @@ -35640,15 +35560,6 @@ msgstr "" "るものを見つけるまでパッケージのバージョンを遡って探索します。" #: ../source/tutorials/packaging-projects.rst:215 -#, fuzzy -#| msgid "" -#| "``classifiers`` gives the index and :ref:`pip` some additional metadata " -#| "about your package. In this case, the package is only compatible with " -#| "Python 3, is licensed under the MIT license, and is OS-independent. You " -#| "should always include at least which version(s) of Python your package " -#| "works on, which license your package is available under, and which " -#| "operating systems your package will work on. For a complete list of " -#| "classifiers, see https://pypi.org/classifiers/." msgid "" "``classifiers`` gives the index and :ref:`pip` some additional metadata " "about your package. In this case, the package is only compatible with Python " @@ -35658,30 +35569,27 @@ msgid "" "classifiers/." msgstr "" "``classifiers`` は、インデックスと :ref:`pip` に、そのパッケージに関する追加" -"的なメタデータをいくつか与えます。この場合には、当該パッケージは Python 3 で" -"のみ動作し、 MIT ライセンスの下に従うものであり、 OS には依らず独立のもので" -"す。どのバージョンの Python 上でそのパッケージが動作するのか、どのライセンス" -"に従うのか、どのオペレーティングシステムで動作するのかを示しておくことは、常" -"に最低限それだけはやるべきことです。 classifiers の完全なリストについては、 " -"https://pypi.org/classifiers/ を見てください。" +"的なメタデータをいくつか与えます。この場合には、当該パッケージは Python 3 だ" +"けと互換性があり OS には依存しないものです。少なくとも、どのバージョンの " +"Python 上でそのパッケージが動作するのか、どのオペレーティングシステムで動作す" +"るのか、については、常に含めておくべきです。分類子 の完全なリス" +"トについては、 https://pypi.org/classifiers/ を見てください。" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" +"``license`` は、 :term:`配布物アーカイブ ` " +"の :term:`SPDX ライセンス表現 ` です。" #: ../source/tutorials/packaging-projects.rst:224 -#, fuzzy -#| msgid "" -#| "Now run this command from the same directory where :file:`pyproject.toml` " -#| "is located:" msgid "" "``license-files`` is the list of glob paths to the license files, relative " "to the directory where :file:`pyproject.toml` is located." msgstr "" -"さて、 :file:`pyproject.toml` ファイルがあるのと同じディレクトリでこのコマン" -"ドを実行しましょう:" +"``license-files`` は、ライセンスファイル群への glob パスのリスト" +"で、 :file:`pyproject.toml` が位置する場所からの相対パスです。" #: ../source/tutorials/packaging-projects.rst:226 msgid "" @@ -35723,17 +35631,19 @@ msgstr "LICENSE ファイルを作成する" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" -msgstr "" -"Python パッケージインデックスにアップロードされた各々のパッケージにとって、ラ" -"イセンス条項を明示することは重要です。こうすることで、そのパッケージをインス" -"トールするユーザに対して、どのような条件のもとでそのパッケージを使うことがで" -"きるのかを伝えることができるからです。ライセンス選択の助けが必要ならば、 " -"https://choosealicense.com/ を見てください。どのライセンスにするか選択できた" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" +msgstr "" +"Python パッケージインデックスにアップロードされた各々の :term:`配布物アーカイ" +"ブ ` にライセンス条項を含めておくことは重要です。こうす" +"ることで、その :term:`配布物アーカイブ ` をインストール" +"するユーザに対して、どのような条件のもとでそれを使うことができるのかを伝える" +"ことができるからです。ライセンス選択の助けが必要ならば、 https://" +"choosealicense.com/ を見てください。どのライセンスにするかを選択できた" "ら、 :file:`LICENSE` ファイルを開いてそのライセンス条項を書き込んでください。" "例えば、 MIT ライセンスを選択したなら次のようにします:" @@ -35745,6 +35655,8 @@ msgid "" "build backend supports :pep:`639`, the file will be automatically included " "in the package." msgstr "" +"ほとんどのビルドバックエンドは、パッケージの中にライセンスファイルを自動的に" +"含めます。" #: ../source/tutorials/packaging-projects.rst:290 msgid "Including other files" @@ -35887,6 +35799,9 @@ msgid "" "``pypi-`` prefix. Note that the input will be hidden, so be sure to paste " "correctly." msgstr "" +"API トークンの入力を求められるでしょう。 ``pypi-`` プレフィックスを含めてトー" +"クンの値を使ってください。入力内容は隠されているので、正確にペーストすること" +"を確実にしてください。" #: ../source/tutorials/packaging-projects.rst:406 msgid "After the command completes, you should see output similar to this:" @@ -36087,6 +36002,188 @@ msgstr "" "りなのであれば、 *通常のパッケージ* と (空のファイルだとしても) " "``__init__.py`` から離れないことをお薦めします。" +#~ msgid "" +#~ "This specification was originally defined in :pep:`518` and :pep:`621`." +#~ msgstr "この仕様は、元々は :pep:`518` 及び :pep:`621` で定義されました。" + +#~ msgid "" +#~ "Refer to the `pkg_resources documentation `__ for more details." +#~ msgstr "" +#~ "さらに詳しい情報については、 `pkg_resources 説明文書 `__ を参照してください。" + +#~ msgid "" +#~ "A complete working example of two pkg_resources-style namespace packages " +#~ "can be found in the `pkg_resources namespace example project`_." +#~ msgstr "" +#~ "pkg_resources 型の名前空間パッケージの動作可能な二つの例が `pkg_resources " +#~ "型名前空間例示プロジェクト`_ で見つかるはずです。" + +#~ msgid "" +#~ "In addition to the general response metadata, the project detail ``meta`` " +#~ "dictionary **MAY** also include the following:" +#~ msgstr "" +#~ "一般的な応答メタデータに加えて、プロジェクト詳細の ``meta`` 辞書には、以下" +#~ "のものを含めても **構いません** :" + +#~ msgid "The ``project-status-reason`` key was added with API version 1.4." +#~ msgstr "" +#~ "``project-status-reason`` キーは、 API バージョン 1.4 で追加されました。" + +#~ msgid "" +#~ "RECORD.jws is used for digital signatures. It is not mentioned in RECORD." +#~ msgstr "" +#~ "RECORD.jws は、デジタル署名のために使われます。これについては RECORD では" +#~ "触れられません。" + +#~ msgid "" +#~ "RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/" +#~ "MIME signatures to secure their wheel files. It is not mentioned in " +#~ "RECORD." +#~ msgstr "" +#~ "自分の wheel ファイルを S/MIME 署名でセキュアにすることを好む人は、 " +#~ "RECORD.p7s を使うことができます。これについては RECORD では触れられませ" +#~ "ん。" + +#~ msgid "Signed wheel files" +#~ msgstr "署名済み wheel ファイル" + +#~ msgid "" +#~ "Wheel files include an extended RECORD that enables digital signatures. " +#~ "PEP 376's RECORD is altered to include a secure hash " +#~ "``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding " +#~ "with no trailing = characters) as the second column instead of an " +#~ "md5sum. All possible entries are hashed, including any generated files " +#~ "such as .pyc files, but not RECORD which cannot contain its own hash. For " +#~ "example::" +#~ msgstr "" +#~ "Wheel ファイルは、デジタル署名を可能にした拡張 RECORD ファイルを含みま" +#~ "す。 PEP 376 の RECORD は、 md5sum の代わりにセキュアなハッシュ値 " +#~ "``digestname=urlsafe_b64encode_nopad(digest)`` (末尾に = 文字を追加しない " +#~ "url セーフな base64 エンコード) を二つ目のカラムとするように修正されまし" +#~ "た。生成された .pyc ファイルなども含むすべての可能なエントリにハッシュ値が" +#~ "付加されていますが、 RECORD は自身のハッシュ値を含むことができないので例外" +#~ "です。例えば::" + +#~ msgid "" +#~ "The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in " +#~ "RECORD at all since they can only be added after RECORD is generated. " +#~ "Every other file in the archive must have a correct hash in RECORD or the " +#~ "installation will fail." +#~ msgstr "" +#~ "署名用のファイルである RECORD.jws と RECORD.p7s は、 RECORD ファイルが作成" +#~ "された後にしか追加できないので、RECORD ファイル内で言及されることは全くあ" +#~ "りません。アーカイブの中の他のファイルはすべて、RECORD ファイル内に正しい" +#~ "ハッシュ値を持たなければならず、そうでなければインストールに失敗します。" + +#~ msgid "" +#~ "If JSON web signatures are used, one or more JSON Web Signature JSON " +#~ "Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent " +#~ "to RECORD. JWS is used to sign RECORD by including the SHA-256 hash of " +#~ "RECORD as the signature's JSON payload:" +#~ msgstr "" +#~ "JSON ウェブ署名が使われる場合には、ひとつかそれ以上の JSON Web Signature " +#~ "JSON Serialization (JWS-JS) 署名が RECORD ファイルの隣にある RECORD.jws " +#~ "ファイルの中に保存されます。 RECORD ファイルの SHA-256 ハッシュ値を署名の " +#~ "JSON ペイロードに含むことで RECORD ファイルに署名するために JWS が使われま" +#~ "す:" + +#~ msgid "(The hash value is the same format used in RECORD.)" +#~ msgstr "" +#~ "(ハッシュ値の書き方のフォーマットは RECORD で使われるものと同じです。)" + +#~ msgid "" +#~ "If RECORD.p7s is used, it must contain a detached S/MIME format signature " +#~ "of RECORD." +#~ msgstr "" +#~ "RECORD.p7s を使う場合は、このファイルに RECORD ファイルに関する分離型の S/" +#~ "MIME 署名を入れておかなければなりません。" + +#~ msgid "" +#~ "A wheel installer is not required to understand digital signatures but " +#~ "MUST verify the hashes in RECORD against the extracted file contents. " +#~ "When the installer checks file hashes against RECORD, a separate " +#~ "signature checker only needs to establish that RECORD matches the " +#~ "signature." +#~ msgstr "" +#~ "wheel インストーラはデジタル署名を理解することを要求されてはいませんが、 " +#~ "RECORD ファイル内のハッシュ値が展開されたファイル内容に対して妥当であるこ" +#~ "とを検証しなければなりません。インストーラが RECORD ファイルに対するハッ" +#~ "シュ値を確認する際には、別途用意された署名検証プログラムは RECORD ファイル" +#~ "が署名に対して妥当であることだけを確認すれば十分です。" + +#~ msgid "See" +#~ msgstr "以下を参照のこと" + +#~ msgid "https://datatracker.ietf.org/doc/html/rfc7515" +#~ msgstr "https://datatracker.ietf.org/doc/html/rfc7515" + +#~ msgid "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" +#~ "serialization-01" +#~ msgstr "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" +#~ "serialization-01" + +#~ msgid "https://datatracker.ietf.org/doc/html/rfc7517" +#~ msgstr "https://datatracker.ietf.org/doc/html/rfc7517" + +#~ msgid "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" +#~ msgstr "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" + +#~ msgid "Why does wheel include attached signatures?" +#~ msgstr "なぜ wheel は添付された署名を持つのか?" + +#~ msgid "" +#~ "Attached signatures are more convenient than detached signatures because " +#~ "they travel with the archive. Since only the individual files are " +#~ "signed, the archive can be recompressed without invalidating the " +#~ "signature or individual files can be verified without having to download " +#~ "the whole archive." +#~ msgstr "" +#~ "添付された署名は、アーカイブと一体のものとして転送されるので、分離署名より" +#~ "も便利です。個々のファイルが署名されているだけなので、アーカイブを圧縮し直" +#~ "しても署名が無効にならず、また、アーカイブ全体をダウンロードしなくても個々" +#~ "のファイルの検証を行うことができます。" + +#~ msgid "Why does wheel allow JWS signatures?" +#~ msgstr "なぜ wheel は JWS 署名を許容するのか?" + +#~ msgid "" +#~ "The JOSE specifications of which JWS is a part are designed to be easy to " +#~ "implement, a feature that is also one of wheel's primary design goals. " +#~ "JWS yields a useful, concise pure-Python implementation." +#~ msgstr "" +#~ "JWS がその一部を構成する JOSE の仕様は実装を容易にするように設計されてお" +#~ "り、その性質は wheel の基本的な設計目標のひとつでもあります。 JWS は使いや" +#~ "すくて簡潔な純 Python の実装をもたらします。" + +#~ msgid "Why does wheel also allow S/MIME signatures?" +#~ msgstr "なぜ wheel は S/MIME 署名をも許容するのか?" + +#~ msgid "" +#~ "S/MIME signatures are allowed for users who need or want to use existing " +#~ "public key infrastructure with wheel." +#~ msgstr "" +#~ "S/MIME 署名は、既存の公開鍵基盤を wheel でも採用する必要があるか、または、" +#~ "採用したいユーザのために許容されています。" + +#~ msgid "" +#~ "Signed packages are only a basic building block in a secure package " +#~ "update system. Wheel only provides the building block." +#~ msgstr "" +#~ "署名されたパッケージは、セキュアなパッケージ更新システムを構成するひとつの" +#~ "ビルディングブロックであるというだけのものです。 Wheel としては、単にビル" +#~ "ディングブロックを提供するだけです。" + +#~ msgid "The license expressions for these projects are:" +#~ msgstr "これらのプロジェクトに対するライセンス条項は:" + #~ msgid "TUF Support - PEP 458" #~ msgstr "TUF サポート - PEP 458" diff --git a/locales/kab/LC_MESSAGES/messages.po b/locales/kab/LC_MESSAGES/messages.po index 0fe2fb249..1e82f5a12 100644 --- a/locales/kab/LC_MESSAGES/messages.po +++ b/locales/kab/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2025-10-14 20:08+0000\n" "Last-Translator: ButterflyOfFire \n" "Language-Team: Kabyle `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2784,41 +2786,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2827,7 +2829,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2836,12 +2838,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2851,7 +2853,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2863,11 +2865,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2875,20 +2877,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2896,7 +2898,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2907,7 +2909,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2916,13 +2918,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3205,11 +3207,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3408,9 +3410,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3583,54 +3585,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "pypi.org" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "pyproject.toml" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3638,11 +3640,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3651,11 +3653,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3663,26 +3665,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3694,38 +3696,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "setup.py" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "setup.cfg" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3734,21 +3736,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "Akemmus n unagraw" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3757,11 +3759,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3769,15 +3771,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "Wheel" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3785,21 +3787,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3952,7 +3954,7 @@ msgstr "Aglam" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "Imedyaten" @@ -4323,17 +4325,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4645,7 +4658,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5016,7 +5029,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6704,11 +6717,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6744,7 +6758,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6757,29 +6772,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6791,65 +6806,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6858,18 +6873,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6878,11 +6893,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6892,7 +6907,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6901,11 +6916,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6917,24 +6932,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6942,17 +6957,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6963,11 +6978,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6975,14 +6990,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7609,12 +7624,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8320,17 +8329,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8338,34 +8347,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8373,42 +8382,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8417,18 +8438,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8758,7 +8773,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9374,40 +9389,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9415,25 +9434,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9441,45 +9460,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9490,31 +9509,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9715,9 +9734,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9744,9 +9763,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9777,7 +9796,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9807,8 +9826,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9860,7 +9879,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9871,8 +9890,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9884,8 +9903,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9918,7 +9937,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -9992,8 +10011,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10023,90 +10042,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10115,26 +10134,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10142,28 +10161,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10171,33 +10190,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13248,86 +13267,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13336,116 +13351,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13455,51 +13399,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13507,7 +13411,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13515,18 +13419,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13535,7 +13439,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13546,7 +13450,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13564,7 +13468,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13573,7 +13477,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13585,26 +13489,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13612,24 +13516,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14383,11 +14291,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16219,17 +16127,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18237,7 +18151,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20582,95 +20496,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20693,10 +20617,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20747,7 +20667,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20755,24 +20675,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20782,139 +20702,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20928,7 +20848,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20937,7 +20857,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20949,30 +20869,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20981,21 +20901,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -21005,26 +20925,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21033,40 +20953,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21075,11 +20995,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21109,56 +21029,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21166,38 +21086,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21205,14 +21125,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21220,7 +21140,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21228,24 +21148,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21253,7 +21173,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21264,13 +21184,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21279,7 +21199,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21294,40 +21214,40 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 #, fuzzy #| msgid "Examples" msgid "Examples:" msgstr "Imedyaten" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21337,7 +21257,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21345,7 +21265,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21353,23 +21273,23 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 #, fuzzy #| msgid "Examples" msgid "Example:" msgstr "Imedyaten" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21377,19 +21297,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21398,20 +21318,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21419,18 +21339,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21438,7 +21358,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21446,32 +21366,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22297,7 +22217,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22336,7 +22256,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22556,14 +22476,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22597,7 +22517,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22605,45 +22525,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22651,7 +22571,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22660,23 +22580,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22685,14 +22605,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22702,7 +22622,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22710,14 +22630,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22727,45 +22647,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22774,7 +22694,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22784,17 +22704,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22802,7 +22722,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22811,11 +22731,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22823,11 +22743,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22890,11 +22810,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22903,65 +22823,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22969,7 +22889,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22980,7 +22900,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22989,33 +22909,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23025,7 +22945,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23035,7 +22955,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23043,7 +22963,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23054,22 +22974,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23078,25 +22998,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23104,13 +23024,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23120,18 +23040,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23139,7 +23059,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23149,7 +23069,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23157,7 +23077,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23165,7 +23085,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23174,18 +23094,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23193,13 +23113,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23208,23 +23128,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23233,79 +23153,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23583,7 +23503,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24110,11 +24030,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24122,22 +24064,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24146,11 +24088,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24160,11 +24102,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24174,11 +24116,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24186,11 +24128,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24201,11 +24143,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24213,11 +24155,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24225,11 +24167,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24239,11 +24181,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24251,11 +24193,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24263,11 +24205,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24275,11 +24217,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24288,11 +24230,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24301,11 +24243,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24315,7 +24257,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24323,69 +24265,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24393,48 +24335,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24445,7 +24387,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24455,17 +24397,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24474,14 +24416,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24492,7 +24434,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24500,30 +24442,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24531,30 +24473,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24562,60 +24504,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24624,79 +24566,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24705,7 +24647,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24713,7 +24655,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24723,21 +24665,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24745,7 +24687,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24754,7 +24696,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24764,14 +24706,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24780,28 +24722,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24810,27 +24752,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24840,7 +24782,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24850,13 +24792,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25076,7 +25020,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25084,7 +25028,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25095,15 +25039,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25111,7 +25055,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25119,7 +25063,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25131,43 +25075,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25176,29 +25120,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26564,7 +26516,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26603,11 +26555,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/ko/LC_MESSAGES/messages.po b/locales/ko/LC_MESSAGES/messages.po index a1afd4404..4f9175b72 100644 --- a/locales/ko/LC_MESSAGES/messages.po +++ b/locales/ko/LC_MESSAGES/messages.po @@ -9,21 +9,22 @@ # emscb , 2024. # 황인아 , 2024. # Changseop Yeom , 2025. +# 스이미 , 2026. msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" -"PO-Revision-Date: 2025-11-25 00:51+0000\n" -"Last-Translator: Changseop Yeom \n" -"Language-Team: Korean \n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" +"PO-Revision-Date: 2026-02-05 03:01+0000\n" +"Last-Translator: 스이미 \n" +"Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.15-dev\n" +"X-Generator: Weblate 5.16-dev\n" #: ../source/contribute.rst:5 msgid "Contribute to this guide" @@ -39,25 +40,23 @@ msgstr "" #: ../source/contribute.rst:10 msgid "Reading the guide and giving feedback" -msgstr "가이드 읽기 및 피드백 제공" +msgstr "가이드를 읽고 피드백을 제공하기" #: ../source/contribute.rst:11 msgid "Reviewing new contributions" -msgstr "새로운 기여를 검토" +msgstr "새로운 기여를 검토하기" #: ../source/contribute.rst:12 msgid "Revising existing content" -msgstr "기존 콘텐츠 수정" +msgstr "기존 콘텐츠를 수정하기" #: ../source/contribute.rst:13 msgid "Writing new content" -msgstr "새로운 콘텐츠 작성" +msgstr "새로운 콘텐츠를 작성하기" #: ../source/contribute.rst:14 -#, fuzzy -#| msgid "Translate the guide" msgid "Translating the guide" -msgstr "가이드 번역" +msgstr "가이드를 번역하기" #: ../source/contribute.rst:16 msgid "" @@ -66,10 +65,10 @@ msgid "" "`pull requests`__. If you're planning to write or edit the guide, please " "read the :ref:`style guide `." msgstr "" -"|PyPUG|에 대한 대부분의 작업은 `프로젝트의 GitHub 저장소`__에서 이루어집니" -"다. 시작하려면 `open issues`__ 및 `pull requests`__ 목록을 확인하세요. 가이드" -"를 작성하거나 편집할 계획이라면 :ref:`style guide `" -"를 읽어보세요." +"|PyPUG|의 작업은 대부분 `프로젝트의 GitHub 저장소`__에서 진행됩니다. 시작하려" +"면 `open issues`__ 및 `pull requests`__ 목록을 확인하세요. 가이드를 작성하거" +"나 편집할 계획이라면 :ref:`스타일 가이드 `를 읽어주" +"시기 바랍니다." #: ../source/contribute.rst:25 msgid "" @@ -357,6 +356,11 @@ msgid "" "detail, while this guide describes only the parts of pip that are needed to " "complete the specific tasks described in this guide." msgstr "" +"이 가이드는 모든 내용을 담고 있는 종합서가 아니며, 개별 프로젝트의 공식 문서" +"를 대체하기 위해서 작성 된 것도 아닙니다. 예를 들어, pip에는 수십 개의 명령어" +"와 옵션, 설정이 존재합니다. pip 공식 문서에서는 그 모든 요소들을 상세히 설명" +"하고 있지만, 이 가이드는 본문에 서술된 특정 작업들을 완료하는데 필요한 pip의 " +"핵심적인 부분들만을 다룹니다." #: ../source/contribute.rst:199 msgid "Audience" @@ -364,7 +368,7 @@ msgstr "청중" #: ../source/contribute.rst:201 msgid "The audience of this guide is anyone who uses Python with packages." -msgstr "" +msgstr "이 가이드는 패키지를 사용하는 Python 사용자라면 누구든 해당됩니다." #: ../source/contribute.rst:203 msgid "" @@ -395,6 +399,8 @@ msgid "" "When writing this guide, strive to write with a voice that's approachable " "and humble, even if you have all the answers." msgstr "" +"이 가이드를 작성할 때는 모든 내용을 알고 있더라도, 최대한 친근하고 겸손한 말" +"투를 유지하도록 노력해 주세요." #: ../source/contribute.rst:218 msgid "" @@ -403,6 +409,10 @@ msgid "" "person has asked you a question and you know the answer. How do you respond? " "*That* is how you should write this guide." msgstr "" +"여러분이 아주 똑똑하고 실력 있는 사람과 함께 Python 프로젝트를 하고 있다고 상" +"상해 보세요. 서로 손발도 잘 맞고 사이도 좋습니다. 그 사람이 여러분에게 질문" +"을 던졌고 , 여러분은 그 답을 이미 알고 있습니다. 그때 여러분이 그 사람에게 대" +"답해 주는 *그 방식*, 그게 바로 이 가이드를 작성하는 말투여야 합니다." #: ../source/contribute.rst:223 msgid "" @@ -413,6 +423,11 @@ msgid "" "hereby granted permission to end a sentence in a preposition, if that's what " "you want to end it with." msgstr "" +"간단하게 확인해 볼까요? 여러분이 쓴 글을 소리 내어 읽어보며 말투와 느낌을 살" +"펴보세요. 평소에 여러분이 하는 말처럼 들리나요, 아니면 마치 연극 대사나 연설" +"문처럼 들리나요? 격식을 차린 딱딱한 문법에 너무 얽매이지 말고, 평소 여러분이 " +"쓰는 자연스러운 표현들을 마음껏 사용해 보세요. 문장 끝을 딱딱한 말투 대신 조" +"금 더 친근한 말투로 끝내고 싶다면, 그렇게 하셔도 좋습니다." #: ../source/contribute.rst:230 msgid "" @@ -421,24 +436,29 @@ msgid "" "joke, but if you're covering a sensitive security recommendation, you might " "want to avoid jokes altogether." msgstr "" +"가이드를 쓸 때는 주제의 무게나 난이도에 맞춰 말투를 조절해 주세요. 입문자를 " +"위한 튜토리얼이라면 가벼운 농담을 던져도 괜찮지만, 보안과 관련된 민감한 내용" +"을 다룰 때라면, 농담을 아예 피하는 것이 좋습니다." #: ../source/contribute.rst:237 msgid "Conventions and mechanics" -msgstr "" +msgstr "약속과 원칙" #: ../source/contribute.rst:245 msgid "**Write to the reader**" -msgstr "" +msgstr "**독자에게 직접 말을 걸어보세요**" #: ../source/contribute.rst:240 msgid "" "When giving recommendations or steps to take, address the reader as *you* or " "use the imperative mood." msgstr "" +"권고 사항이나 작업 순서를 설명할 때는 독자에게 직접 말을 건내듯 *여러분* 이라" +"고 지칭하거나, 요청형 문장을 사용해 보세요." #: ../source/contribute.rst:0 msgid "Wrong: To install it, the user runs…" -msgstr "" +msgstr "잘못된: 설치하려면, 직접 실행하세요…" #: ../source/contribute.rst:0 msgid "Right: You can install it by running…" @@ -459,10 +479,13 @@ msgid "" "you're going to make assumptions, then say what assumptions that you're " "going to make." msgstr "" +"독자가 내용을 미리 알고 있다고 가정하지 마세요. 독자가 가이드의 어떤 페이지" +"를 가장 먼저 보게 될지 알 수 없기 때문입니다. 가정이 꼭 필요할 때는 그 내용" +"을 미리 언급해 주세요." #: ../source/contribute.rst:256 msgid "**Cross-reference generously**" -msgstr "" +msgstr "**관련 내용을 충분히 참조하세요**" #: ../source/contribute.rst:254 msgid "" @@ -470,36 +493,40 @@ msgid "" "that covers it, or link to a relevant document elsewhere. Save the reader a " "search." msgstr "" +"특정 도구를 처음 언급할 때는 관련 가이드나 외부 문서로 링크를 걸어주세요. 독" +"자가 직접 검색하는 수고를 덜어줄 수 있습니다." #: ../source/contribute.rst:266 msgid "**Respect naming practices**" -msgstr "" +msgstr "**고유 명칭의 표기법을 존중해 주세요**" #: ../source/contribute.rst:259 msgid "" "When naming tools, sites, people, and other proper nouns, use their " "preferred capitalization." msgstr "" +"도구, 사이트, 인물 및 기타 고유 명칭을 언급할 때는 해당 대상이 선호하는 대소" +"문자 표기 방식을 따라주세요." #: ../source/contribute.rst:0 msgid "Wrong: Pip uses…" -msgstr "" +msgstr "잘못된: Pip를 사용하세요…" #: ../source/contribute.rst:0 msgid "Right: pip uses…" -msgstr "" +msgstr "올바른: pip를 사용하세요…" #: ../source/contribute.rst:0 msgid "Wrong: …hosted on github." -msgstr "" +msgstr "잘못된: ...github에서 호스팅됩니다." #: ../source/contribute.rst:0 msgid "Right: …hosted on GitHub." -msgstr "" +msgstr "올바른: ...GitHub애서 호스팅됩니다." #: ../source/contribute.rst:275 msgid "**Use a gender-neutral style**" -msgstr "" +msgstr "**특정 성별에 치우치지 않는 표현을 사용해 주세요**" #: ../source/contribute.rst:269 msgid "" @@ -507,22 +534,26 @@ msgid "" "Otherwise, use gender-neutral pronouns *they*, *their*, and *theirs* or " "avoid pronouns entirely." msgstr "" +"때때로, 여러분은 독자를 *you(여러분)*, *your(여러분의)*, 그리고 *yours(여러분" +"의 것)* 로 지칭하게 됩니다. 그렇지 않은 경우에는, 성중립적 대명사인 *they(그" +"들)*, *their(그들의)*, 그리고 *theirs(그들의 것)* 를 사용하거나 대명사를 완전" +"히 사용하지 마십시오." #: ../source/contribute.rst:0 msgid "Wrong: A maintainer uploads the file. Then he…" -msgstr "" +msgstr "잘못된: 메인테이너가 파일을 업로드합니다. 그 후 그는…" #: ../source/contribute.rst:0 msgid "Right: A maintainer uploads the file. Then they…" -msgstr "" +msgstr "올바른: 메인테이너가 파일을 업로드합니다. 그 후 그들은…" #: ../source/contribute.rst:0 msgid "Right: A maintainer uploads the file. Then the maintainer…" -msgstr "" +msgstr "올바른: 메인테이너가 파일을 업로드합니다. 그 후 메인테이너는…" #: ../source/contribute.rst:287 msgid "**Headings**" -msgstr "" +msgstr "**헤드라인**" #: ../source/contribute.rst:278 msgid "" @@ -531,34 +562,42 @@ msgid "" "reader might want to know *How do I install MyLibrary?* so a good heading " "might be *Install MyLibrary*." msgstr "" +"독자가 검색하는 단어를 사용하여 제목을 작성하십시오. 좋은 방법은 당신의 제목" +"이 예상되는 질문을 완성하게 하는 것입니다. 예를 들어, 독자는 *어떻게 " +"MyLibrary를 설치하나요?* 를 알고 싶어 할 수 있으므로, 좋은 제목은 *MyLibrary " +"설치* 가 될 수 있습니다." #: ../source/contribute.rst:283 msgid "" "In section headings, use sentence case. In other words, write headings as " "you would write a typical sentence." msgstr "" +"섹션 제목에는 문장처럼 자연스러운 형식을 사용하십시오. 다시 말해, 일반적인 문" +"장을 쓰는 것처럼 제목을 작성하십시오." #: ../source/contribute.rst:0 msgid "Wrong: Things You Should Know About Python" -msgstr "" +msgstr "잘못된: Python에 대해 알아야 할 것" #: ../source/contribute.rst:0 msgid "Right: Things you should know about Python" -msgstr "" +msgstr "올바른: Python에 대해 여러분이 알아야 할 것들" #: ../source/contribute.rst:290 msgid "**Numbers**" -msgstr "" +msgstr "**숫자**" #: ../source/contribute.rst:290 msgid "" "In body text, write numbers one through nine as words. For other numbers or " "numbers in tables, use numerals." msgstr "" +"본문에서는 1부터 9까지의 숫자는 단어(하나, 둘 등)로 쓰고, 다른 숫자나 표에 있" +"는 숫자에는 숫자(15, 700 등)를 사용하십시오." #: ../source/discussions/deploying-python-applications.rst:4 msgid "Deploying Python applications" -msgstr "" +msgstr "Python 애플리케이션 배포하기" #: ../source/discussions/deploying-python-applications.rst:0 #: ../source/discussions/downstream-packaging.rst:0 @@ -572,14 +611,14 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:0 #: ../source/guides/supporting-windows-using-appveyor.rst:0 msgid "Page Status" -msgstr "" +msgstr "페이지 상태" #: ../source/discussions/deploying-python-applications.rst:6 #: ../source/guides/index-mirrors-and-caches.rst:7 #: ../source/guides/installing-using-linux-tools.rst:7 #: ../source/guides/packaging-binary-extensions.rst:7 msgid "Incomplete" -msgstr "미완료" +msgstr "미완성" #: ../source/discussions/deploying-python-applications.rst:0 #: ../source/discussions/downstream-packaging.rst:0 @@ -591,25 +630,25 @@ msgstr "미완료" #: ../source/guides/supporting-multiple-python-versions.rst:0 #: ../source/guides/supporting-windows-using-appveyor.rst:0 msgid "Last Reviewed" -msgstr "" +msgstr "최종 검토일" #: ../source/discussions/deploying-python-applications.rst:7 msgid "2021-8-24" -msgstr "" +msgstr "2021-8-24 (한글 번역: 2026-02-04)" #: ../source/discussions/deploying-python-applications.rst:11 #: ../source/specifications/externally-managed-environments.rst:130 #: ../source/specifications/platform-compatibility-tags.rst:14 msgid "Overview" -msgstr "" +msgstr "개요" #: ../source/discussions/deploying-python-applications.rst:15 msgid "Supporting multiple hardware platforms" -msgstr "" +msgstr "다양한 하드웨어 플랫폼 지원" #: ../source/discussions/deploying-python-applications.rst:37 msgid "OS packaging & installers" -msgstr "" +msgstr "OS 패키징 및 인스톨러" #: ../source/discussions/deploying-python-applications.rst:49 #: ../source/discussions/deploying-python-applications.rst:86 @@ -629,6 +668,12 @@ msgid "" "tool downloads the specified Python-interpreter for Windows and packages it " "with all the dependencies in a single Windows-executable installer." msgstr "" +"`Pynsist `__ 는 NSIS를 기반으로 Python 프로" +"그램과 Python 인터프리터를 하나의 설치 프로그램으로 묶어주는 도구입니다. 대부" +"분, 사용자는 파이썬 인터프리터 버전만 선택하고 프로그램 의존성을 선언하기만 " +"하면 패키징을 할 수 있습니다. 이 도구는 지정된 Windows용 파이썬 인터프리터를 " +"다운로드하고 모든 의존성과 함께 하나의 Windows 실행 파일 형태의 설치 프로그램" +"으로 패키징합니다." #: ../source/discussions/deploying-python-applications.rst:67 msgid "" @@ -637,6 +682,9 @@ msgid "" "application directory, independent of any other Python installation on the " "computer." msgstr "" +"설치된 프로그램은 설치 프로그램이 시작 메뉴에 추가한 바로가기를 통해 실행할 " +"수 있으며, 이 프로그램은 컴퓨터에 설치된 다른 Python 인터프리터와 무관하게, " +"디텍터리 내에 설치된 자체 Python 인터프리터를 사용합니다." #: ../source/discussions/deploying-python-applications.rst:71 msgid "" @@ -645,10 +693,13 @@ msgid "" "GUI) in the :any:`documentation `. The tool is released under " "the MIT-licence." msgstr "" +"Pynsist의 큰 장점은 Linux에서도 Windows 패키지를 빌드할 수 있다는 것입니" +"다. :any:`documentation ` 에는 다양한 종류의 프로그램(콘솔, " +"GUI)에 대한 여러 예제가 제공됩니다. 이 도구는 MIT 라이선스로 배포됩니다." #: ../source/discussions/deploying-python-applications.rst:77 msgid "Application bundles" -msgstr "" +msgstr "애플리케이션 번들" #: ../source/discussions/deploying-python-applications.rst:89 msgid "py2exe" @@ -665,6 +716,13 @@ msgid "" "supported. The distutils extension is released under the MIT-licence and " "Mozilla Public License 2.0." msgstr "" +"`py2exe `__ 는 Python 스크립트에서 단독 실" +"행 가능한 Windows 프로그램(32비트 및 64비트)을 빌드할 수 있게 해주는 " +"distutils 확장 모입니다. 공식 지원 범위에 포함된 Python 버전이 지원됩니다 " +"(refers to `Status of Python branches`__). py2exe는 콘솔 실행 파일과 윈도우" +"(GUI) 실행 파일을 빌드할 수 있습니다. Windows service 및 DLL/EXE COM 서버 빌" +"드 기능도 가능할 수 있지만, 활발하게 지원되지는 않습니다. 이 distutils 확장 " +"모듈은 MIT 라이선스와 Mozilla Public License 2.0에 따라 배포됩니다." #: ../source/discussions/deploying-python-applications.rst:103 #: ../source/specifications/platform-compatibility-tags.rst:200 @@ -683,15 +741,20 @@ msgid "" "applications, it cannot create Mac applications on other platforms. py2app " "is released under the MIT-license." msgstr "" +"`py2app `__ 는 Python setuptools 명령어로, " +"Python 스크립트로부터 단독 실행 가능한 macOS 애플리케이션 번들과 플러그인을 " +"만들 수 있게 해줍니다. py2app는 반드시 macOS에서 사용해야 하며, 다른 플랫폼에" +"서는 Mac용 애플리케이션을 생성할 수 없습니다. py2app는 MIT 라이선스로 배포됩" +"니다." #: ../source/discussions/deploying-python-applications.rst:115 msgid "Unix (including Linux and macOS)" -msgstr "" +msgstr "Unix (Linux 및 macOS 포함)" #: ../source/discussions/deploying-python-applications.rst:118 #: ../source/key_projects.rst:576 msgid "pex" -msgstr "" +msgstr "pex" #: ../source/discussions/deploying-python-applications.rst:120 msgid "" @@ -703,14 +766,20 @@ msgid "" "distributions, meaning that a single pex file can be portable across Linux " "and macOS. pex is released under the Apache License 2.0." msgstr "" +"`pex `__ 는 가상 환경(virtualenv)한 유사한 방" +"식으로 실행 가능한 Python 환경인 .pex(Python EXecutable) 파일을 생성하는 라이" +"브러리입니다. pex는 :pep:441에 기술된 아이디어를 확장한 것으로, Python 애플리" +"케이션 배포를 cp 명령만큼이나 간하게 만들어 줍니다. pex 파일에는 여러 플랫폼" +"별 Python 배포판을 포함할 수도 있으므로, 하나의 pex 파일로 Linux와 macOS에서 " +"모두 사용 가능합니다. pex는 Apache License 2.0에 따라 배포됩니다." #: ../source/discussions/deploying-python-applications.rst:129 msgid "Configuration management" -msgstr "" +msgstr "구성 관리" #: ../source/discussions/distribution-package-vs-import-package.rst:5 msgid "Distribution package vs. import package" -msgstr "" +msgstr "배포 패키지 vs import 패키지" #: ../source/discussions/distribution-package-vs-import-package.rst:7 msgid "" @@ -719,10 +788,14 @@ msgid "" "related meanings in Python packaging, \"distribution package\" and \"import " "package\"." msgstr "" +"일반적으로 \"패키지\" 라는 단어는 여러 가지 서로 다른 개념을 지칭하는 데 사용" +"됩니다. 이 페이지에서는 Python 패키징에서 쓰이는, 서로 다르지만 밀접한 관련" +"이 있는 두 가지 의미인 '배포 패키지(distribution package)'와 'import 패키지" +"(import package)'의 차이점을 명확히 설명합니다." #: ../source/discussions/distribution-package-vs-import-package.rst:13 msgid "What's a distribution package?" -msgstr "" +msgstr "배포 패키지란 무엇인가요?" #: ../source/discussions/distribution-package-vs-import-package.rst:15 msgid "" @@ -736,6 +809,14 @@ msgid "" "be used to refer to a specific file that contains a certain version of a " "project." msgstr "" +"배포 패키지는 여러분이 설치할 수 있는 소프트웨어의 한 종류입니다. 대부분의 경" +"우 '프로젝트'와 같은 의미로 쓰입니다. 여러분이 ``pip install pkg``를 입력하거" +"나, ``pyproject.toml``파일에 ``dependencies = [\"pkg\"]``라고 작성할 때, 여기" +"서 ``pkg``가 바로 배포 패키지의 이름입니다. Python 라이브러리와 도구를 설치" +"할 때 가장 널리 알려진 중앙 저장소인 PyPI_ 에서 검색하거나 둘러볼 때 보게 되" +"는 것들도 모두 배포 패키지 목록입니다. 또한, \"배포 패키지\"라는 용어는 프로" +"젝트의 특정 버전을 포함하고 있는 구체적인 파일을 가리키는 데 사용되기도 합니" +"다." #: ../source/discussions/distribution-package-vs-import-package.rst:24 msgid "" @@ -744,11 +825,14 @@ msgid "" "by the system package manager of the `Linux distribution `_, which " "is a different meaning." msgstr "" +"Linux 환경에서 \"배포 패키지(distribution package)\"는 일반적으로 \"디스트로 " +"패키지(distro package)\" 또는 \"패키지(package)\"로 줄여서 사용되며, `Linux " +"배포판 `_ 의 시스템 패키지 관리자가 제공하는 것을 의미합니다. 이는 " +"앞서 언급한 \"배포 패키지(distribution package)\"와는 다른 의미입니다." #: ../source/discussions/distribution-package-vs-import-package.rst:31 -#, fuzzy msgid "What's an import package?" -msgstr "패키지 가져오기" +msgstr "import 패키지란 무엇인가요?" #: ../source/discussions/distribution-package-vs-import-package.rst:33 msgid "" @@ -760,16 +844,25 @@ msgid "" "is a directory on the file system, containing modules as ``.py`` files and " "subpackages as subdirectories." msgstr "" +"import 패키지는 하나의 Python 모듈입니다. 따라서 여러분의 Python 코드에 " +"``import pkg``나 ``from pkg import func``라고 작성할 때, 여기서 ``pkg``는 " +"import 패키지의 이름입니다. 더 정확히 말하자면, import 패키지는 하위 모듈" +"(submodule)을 포함할 수 있는 특수한 Python 모듈입니다. 예를 들어, ``numpy`` " +"패키지는 ``numpy.linalg``나 ``numpy.fft``와 같은 모듈들을 포함하고 있습니다. " +"보통 import 패키지는 파일 시스템상의 디렉터리 형태이며, 그 안에 ``.py`` 파일 " +"형태의 모듈과 하위 디렉터리 형태의 하위 패키지(subpackage)를 포함합니다." #: ../source/discussions/distribution-package-vs-import-package.rst:42 msgid "" "You can use an import package as soon as you have installed a distribution " "package that provides it." msgstr "" +"여러분이 import 패키지를 제공하는 배포 패키지를 설치하면, 즉시 그 패키지를 사" +"용할 수 있습니다." #: ../source/discussions/distribution-package-vs-import-package.rst:47 msgid "What are the links between distribution packages and import packages?" -msgstr "" +msgstr "배포 패키지와 import 패키지 사이에는 어떤 연결 관계가 있나요?" #: ../source/discussions/distribution-package-vs-import-package.rst:49 msgid "" @@ -2736,7 +2829,7 @@ msgid "A simple version with just one component: ``42``" msgstr "" #: ../source/discussions/versioning.rst:30 -msgid "A version with an epoch: ``1!1.0``" +msgid "A version with an epoch (discouraged): ``1!1.0``" msgstr "" #: ../source/discussions/versioning.rst:32 @@ -2767,20 +2860,22 @@ msgstr "" #: ../source/discussions/versioning.rst:49 msgid "" -"Finally, epochs, a rarely used feature, serve to fix the sorting order when " -"changing the versioning scheme. For example, if a project is using calendar " -"versioning, with versions like 23.12, and switches to semantic versioning, " -"with versions like 1.0, the comparison between 1.0 and 23.12 will go the " -"wrong way. To correct this, the new version numbers should have an explicit " -"epoch, as in \"1!1.0\", in order to be treated as more recent than the old " -"version numbers." +"Finally, epochs were intended to fix the sorting order when changing the " +"versioning scheme. For example, if a project was using calendar versioning, " +"with versions like ``23.12``, and switched to semantic versioning, with " +"versions like ``1.0``, the comparison between ``1.0`` and ``23.12`` would go " +"the wrong way. To correct this, the new version numbers would have an " +"explicit epoch, as in ``1!1.0``, in order to be treated as more recent than " +"the old version numbers. However, this is discouraged, and it is preferable " +"to use a higher version number that is unlikely to cause user confusion, " +"such as ``100.0``." msgstr "" -#: ../source/discussions/versioning.rst:59 +#: ../source/discussions/versioning.rst:60 msgid "Semantic versioning vs. calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:61 +#: ../source/discussions/versioning.rst:62 msgid "" "A versioning scheme is a formalized way to interpret the segments of a " "version number, and to decide which should be the next version number for a " @@ -2788,7 +2883,7 @@ msgid "" "Python packages, semantic versioning and calendar versioning." msgstr "" -#: ../source/discussions/versioning.rst:68 +#: ../source/discussions/versioning.rst:69 msgid "" "The decision which version number to choose is up to a project's maintainer. " "This effectively means that version bumps reflect the maintainer's view. " @@ -2796,7 +2891,7 @@ msgid "" "versioning scheme promises them." msgstr "" -#: ../source/discussions/versioning.rst:74 +#: ../source/discussions/versioning.rst:75 msgid "" "There are known exceptions for selecting the next version number. The " "maintainers may consciously choose to break the assumption that the last " @@ -2805,31 +2900,31 @@ msgid "" "come in patch versions but contain breaking changes inevitably." msgstr "" -#: ../source/discussions/versioning.rst:84 -#: ../source/specifications/version-specifiers.rst:726 +#: ../source/discussions/versioning.rst:85 +#: ../source/specifications/version-specifiers.rst:741 msgid "Semantic versioning" msgstr "" -#: ../source/discussions/versioning.rst:86 +#: ../source/discussions/versioning.rst:87 msgid "" "The idea of *semantic versioning* (or SemVer) is to use 3-part version " "numbers, *major.minor.patch*, where the project author increments:" msgstr "" -#: ../source/discussions/versioning.rst:89 +#: ../source/discussions/versioning.rst:90 msgid "*major* when they make incompatible API changes," msgstr "" -#: ../source/discussions/versioning.rst:90 +#: ../source/discussions/versioning.rst:91 msgid "" "*minor* when they add functionality in a backwards-compatible manner, and" msgstr "" -#: ../source/discussions/versioning.rst:91 +#: ../source/discussions/versioning.rst:92 msgid "*patch*, when they make backwards-compatible bug fixes." msgstr "" -#: ../source/discussions/versioning.rst:93 +#: ../source/discussions/versioning.rst:94 msgid "" "A majority of Python projects use a scheme that resembles semantic " "versioning. However, most projects, especially larger ones, do not strictly " @@ -2841,7 +2936,7 @@ msgid "" "used to signal significant but backwards-compatible new features." msgstr "" -#: ../source/discussions/versioning.rst:103 +#: ../source/discussions/versioning.rst:104 msgid "" "For those projects that do use strict semantic versioning, this approach " "allows users to make use of :ref:`compatible release version specifiers " @@ -2853,13 +2948,13 @@ msgid "" "and allows a later release with same X and Y but higher Z." msgstr "" -#: ../source/discussions/versioning.rst:112 +#: ../source/discussions/versioning.rst:113 msgid "" "Python projects adopting semantic versioning should abide by clauses 1-8 of " "the `Semantic Versioning 2.0.0 specification `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2870,43 +2965,43 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 #, fuzzy msgid "Calendar versioning" msgstr "번역" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 #, fuzzy msgid "Other schemes" msgstr "번역" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2915,7 +3010,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2924,12 +3019,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2939,7 +3034,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2951,11 +3046,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2963,20 +3058,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2984,7 +3079,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2995,7 +3090,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -3004,13 +3099,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3293,11 +3388,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3499,9 +3594,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3682,54 +3777,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3737,11 +3832,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3750,12 +3845,12 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 #, fuzzy msgid "Requirement Specifier" msgstr "요구 사항 지정자" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3763,28 +3858,28 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 #, fuzzy #| msgid "Project name" msgid "Root License Directory" msgstr "프로젝트 이름" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3796,38 +3891,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" -msgstr "" +msgstr "소스 아카이브" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3836,21 +3931,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "버전 명시자" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3859,11 +3954,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3871,15 +3966,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3887,23 +3982,23 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 #, fuzzy #| msgid "Project" msgid "Wheel Project" msgstr "프로젝트" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -4056,7 +4151,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4412,17 +4507,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4738,7 +4844,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5110,7 +5216,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6808,11 +6914,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6848,7 +6955,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6861,29 +6969,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6895,65 +7003,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6962,18 +7070,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6982,11 +7090,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6996,7 +7104,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -7005,11 +7113,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -7021,24 +7129,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -7046,17 +7154,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -7067,11 +7175,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -7079,14 +7187,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7713,12 +7821,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8424,17 +8526,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8442,34 +8544,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8477,42 +8579,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8521,18 +8635,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8864,7 +8972,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9482,42 +9590,46 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 #, fuzzy #| msgid "Reviewing new contributions" msgid "Building distributions" msgstr "새로운 기여를 검토" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9525,25 +9637,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9551,45 +9663,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9600,31 +9712,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9825,9 +9937,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9854,9 +9966,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9887,7 +9999,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9917,8 +10029,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9970,7 +10082,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9981,8 +10093,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9994,8 +10106,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -10028,7 +10140,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -10102,8 +10214,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10133,90 +10245,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10225,26 +10337,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10252,28 +10364,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10281,33 +10393,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13358,88 +13470,84 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 #, fuzzy #| msgid "Project name" msgid "Subdirectory name" msgstr "프로젝트 이름" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13448,116 +13556,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13567,51 +13604,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13619,7 +13616,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13627,18 +13624,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13647,7 +13644,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13658,7 +13655,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13676,7 +13673,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13685,7 +13682,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13697,26 +13694,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13724,24 +13721,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14504,11 +14505,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16344,17 +16345,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18369,7 +18376,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20725,95 +20732,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20836,10 +20853,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20890,7 +20903,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20898,24 +20911,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20925,139 +20938,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -21071,7 +21084,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -21080,7 +21093,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -21092,30 +21105,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -21124,22 +21137,22 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 #, fuzzy msgid "Legacy specification" msgstr "명세서" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -21149,26 +21162,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21177,40 +21190,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21219,11 +21232,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21253,56 +21266,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21310,38 +21323,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21349,14 +21362,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21364,7 +21377,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21372,24 +21385,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21397,7 +21410,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21408,13 +21421,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21423,7 +21436,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21438,38 +21451,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21479,7 +21492,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21487,7 +21500,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21495,21 +21508,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21517,19 +21530,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21538,20 +21551,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21559,18 +21572,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21578,7 +21591,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21586,32 +21599,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22443,7 +22456,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22482,7 +22495,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22703,14 +22716,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22744,7 +22757,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22752,45 +22765,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22798,7 +22811,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22807,23 +22820,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22832,14 +22845,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22849,7 +22862,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22857,14 +22870,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22874,45 +22887,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22921,7 +22934,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22931,17 +22944,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22949,7 +22962,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22958,11 +22971,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22970,11 +22983,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -23037,12 +23050,12 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 #, fuzzy msgid "Version + Format Selection" msgstr "번역" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -23051,65 +23064,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -23117,7 +23130,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -23128,7 +23141,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -23137,33 +23150,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23173,7 +23186,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23183,7 +23196,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23191,7 +23204,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23202,22 +23215,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23226,25 +23239,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23252,13 +23265,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23268,18 +23281,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23287,7 +23300,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23297,7 +23310,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23305,7 +23318,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23313,7 +23326,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23322,18 +23335,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23341,13 +23354,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23356,23 +23369,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23381,79 +23394,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23731,7 +23744,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24261,12 +24274,34 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 #, fuzzy msgid "Normalization" msgstr "번역" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24274,23 +24309,23 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 #, fuzzy msgid "Integer Normalization" msgstr "번역" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24299,11 +24334,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24313,11 +24348,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24327,11 +24362,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24339,11 +24374,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24354,11 +24389,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24366,11 +24401,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24378,11 +24413,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24392,11 +24427,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24404,11 +24439,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24416,11 +24451,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24428,11 +24463,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24441,11 +24476,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24454,11 +24489,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24468,7 +24503,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24476,69 +24511,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24546,48 +24581,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24598,7 +24633,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24608,17 +24643,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24627,14 +24662,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24645,7 +24680,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24653,30 +24688,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24684,30 +24719,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24715,60 +24750,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24777,79 +24812,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24858,7 +24893,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24866,7 +24901,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24876,21 +24911,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24898,7 +24933,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24907,7 +24942,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24917,14 +24952,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24933,29 +24968,29 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 #, fuzzy msgid "Version exclusion" msgstr "번역" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24964,27 +24999,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24994,7 +25029,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -25004,13 +25039,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25230,7 +25267,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25238,7 +25275,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25249,15 +25286,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25265,7 +25302,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25273,7 +25310,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25285,43 +25322,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25330,29 +25367,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26722,7 +26767,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26761,11 +26806,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/lzh/LC_MESSAGES/messages.po b/locales/lzh/LC_MESSAGES/messages.po index c85e84a76..b2619577f 100644 --- a/locales/lzh/LC_MESSAGES/messages.po +++ b/locales/lzh/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2024-01-31 06:01+0000\n" "Last-Translator: maker \n" "Language-Team: Chinese (Literary) `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2787,41 +2789,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2830,7 +2832,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2839,12 +2841,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2854,7 +2856,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2866,11 +2868,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2878,20 +2880,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2899,7 +2901,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2910,7 +2912,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2919,13 +2921,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3208,11 +3210,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3411,9 +3413,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3586,54 +3588,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3641,11 +3643,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3654,11 +3656,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3666,26 +3668,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3697,38 +3699,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "源码" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3737,21 +3739,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "版本指定器" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3760,11 +3762,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3772,15 +3774,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3788,21 +3790,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3955,7 +3957,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4311,17 +4313,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4633,7 +4646,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5004,7 +5017,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6692,11 +6705,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6732,7 +6746,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6745,29 +6760,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6779,65 +6794,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6846,18 +6861,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6866,11 +6881,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6880,7 +6895,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6889,11 +6904,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6905,24 +6920,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6930,17 +6945,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6951,11 +6966,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6963,14 +6978,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7597,12 +7612,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8308,17 +8317,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8326,34 +8335,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8361,42 +8370,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8405,18 +8426,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8746,7 +8761,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9362,40 +9377,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9403,25 +9422,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9429,45 +9448,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9478,31 +9497,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9703,9 +9722,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9732,9 +9751,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9765,7 +9784,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9795,8 +9814,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9848,7 +9867,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9859,8 +9878,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9872,8 +9891,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9906,7 +9925,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -9980,8 +9999,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10011,90 +10030,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10103,26 +10122,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10130,28 +10149,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10159,33 +10178,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13236,86 +13255,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13324,116 +13339,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13443,51 +13387,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13495,7 +13399,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13503,18 +13407,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13523,7 +13427,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13534,7 +13438,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13552,7 +13456,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13561,7 +13465,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13573,26 +13477,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13600,24 +13504,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14371,11 +14279,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16209,17 +16117,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18227,7 +18141,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20570,95 +20484,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20681,10 +20605,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20735,7 +20655,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20743,24 +20663,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20770,139 +20690,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20916,7 +20836,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20925,7 +20845,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20937,30 +20857,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20969,21 +20889,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -20993,26 +20913,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21021,40 +20941,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21063,11 +20983,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21097,56 +21017,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21154,38 +21074,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21193,14 +21113,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21208,7 +21128,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21216,24 +21136,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21241,7 +21161,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21252,13 +21172,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21267,7 +21187,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21282,38 +21202,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21323,7 +21243,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21331,7 +21251,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21339,21 +21259,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21361,19 +21281,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21382,20 +21302,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21403,18 +21323,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21422,7 +21342,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21430,32 +21350,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22279,7 +22199,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22318,7 +22238,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22538,14 +22458,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22579,7 +22499,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22587,45 +22507,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22633,7 +22553,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22642,23 +22562,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22667,14 +22587,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22684,7 +22604,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22692,14 +22612,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22709,45 +22629,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22756,7 +22676,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22766,17 +22686,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22784,7 +22704,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22793,11 +22713,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22805,11 +22725,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22872,11 +22792,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22885,65 +22805,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22951,7 +22871,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22962,7 +22882,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22971,33 +22891,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23007,7 +22927,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23017,7 +22937,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23025,7 +22945,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23036,22 +22956,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23060,25 +22980,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23086,13 +23006,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23102,18 +23022,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23121,7 +23041,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23131,7 +23051,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23139,7 +23059,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23147,7 +23067,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23156,18 +23076,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23175,13 +23095,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23190,23 +23110,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23215,79 +23135,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23565,7 +23485,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24092,11 +24012,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24104,22 +24046,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24128,11 +24070,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24142,11 +24084,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24156,11 +24098,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24168,11 +24110,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24183,11 +24125,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24195,11 +24137,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24207,11 +24149,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24221,11 +24163,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24233,11 +24175,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24245,11 +24187,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24257,11 +24199,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24270,11 +24212,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24283,11 +24225,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24297,7 +24239,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24305,69 +24247,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24375,48 +24317,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24427,7 +24369,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24437,17 +24379,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24456,14 +24398,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24474,7 +24416,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24482,30 +24424,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24513,30 +24455,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24544,60 +24486,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24606,79 +24548,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24687,7 +24629,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24695,7 +24637,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24705,21 +24647,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24727,7 +24669,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24736,7 +24678,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24746,14 +24688,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24762,28 +24704,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24792,27 +24734,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24822,7 +24764,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24832,13 +24774,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25058,7 +25002,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25066,7 +25010,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25077,15 +25021,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25093,7 +25037,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25101,7 +25045,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25113,43 +25057,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25158,29 +25102,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26546,7 +26498,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26585,11 +26537,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/mk/LC_MESSAGES/messages.po b/locales/mk/LC_MESSAGES/messages.po index 7e8548424..811cbb95a 100644 --- a/locales/mk/LC_MESSAGES/messages.po +++ b/locales/mk/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2023-10-21 04:04+0000\n" "Last-Translator: \"Kristijan \\\"Fremen\\\" Velkovski\" \n" "Language-Team: Macedonian `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2791,41 +2793,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2834,7 +2836,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2843,12 +2845,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2858,7 +2860,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2870,11 +2872,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2882,20 +2884,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2903,7 +2905,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2914,7 +2916,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2923,13 +2925,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3212,11 +3214,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3417,9 +3419,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3592,54 +3594,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3647,11 +3649,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3660,11 +3662,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3672,26 +3674,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3703,38 +3705,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3743,21 +3745,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3766,11 +3768,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3778,15 +3780,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3794,21 +3796,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3961,7 +3963,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4317,17 +4319,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4639,7 +4652,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5010,7 +5023,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6698,11 +6711,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6738,7 +6752,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6751,29 +6766,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6785,65 +6800,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6852,18 +6867,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6872,11 +6887,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6886,7 +6901,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6895,11 +6910,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6911,24 +6926,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6936,17 +6951,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6957,11 +6972,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6969,14 +6984,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7603,12 +7618,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8314,17 +8323,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8332,34 +8341,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8367,42 +8376,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8411,18 +8432,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8752,7 +8767,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9368,42 +9383,46 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 #, fuzzy #| msgid "Binary Distribution" msgid "Building distributions" msgstr "Бинарна Дистрибуција" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9411,25 +9430,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9437,45 +9456,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9486,31 +9505,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9711,9 +9730,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9740,9 +9759,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9773,7 +9792,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9803,8 +9822,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9856,7 +9875,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9867,8 +9886,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9880,8 +9899,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9914,7 +9933,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -9988,8 +10007,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10019,90 +10038,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10111,26 +10130,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10138,28 +10157,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10167,33 +10186,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13244,86 +13263,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13332,116 +13347,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13451,51 +13395,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13503,7 +13407,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13511,18 +13415,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13531,7 +13435,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13542,7 +13446,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13560,7 +13464,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13569,7 +13473,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13581,26 +13485,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13608,24 +13512,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14379,11 +14287,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16215,17 +16123,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18233,7 +18147,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20576,95 +20490,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20687,10 +20611,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20741,7 +20661,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20749,24 +20669,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20776,139 +20696,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20922,7 +20842,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20931,7 +20851,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20943,30 +20863,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20975,21 +20895,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -20999,26 +20919,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21027,40 +20947,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21069,11 +20989,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21103,56 +21023,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21160,38 +21080,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21199,14 +21119,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21214,7 +21134,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21222,24 +21142,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21247,7 +21167,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21258,13 +21178,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21273,7 +21193,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21288,38 +21208,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21329,7 +21249,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21337,7 +21257,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21345,21 +21265,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21367,19 +21287,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21388,20 +21308,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21409,18 +21329,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21428,7 +21348,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21436,32 +21356,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22285,7 +22205,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22324,7 +22244,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22544,14 +22464,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22585,7 +22505,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22593,45 +22513,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22639,7 +22559,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22648,23 +22568,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22673,14 +22593,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22690,7 +22610,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22698,14 +22618,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22715,45 +22635,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22762,7 +22682,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22772,17 +22692,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22790,7 +22710,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22799,11 +22719,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22811,11 +22731,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22878,11 +22798,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22891,65 +22811,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22957,7 +22877,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22968,7 +22888,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22977,33 +22897,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23013,7 +22933,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23023,7 +22943,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23031,7 +22951,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23042,22 +22962,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23066,25 +22986,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23092,13 +23012,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23108,18 +23028,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23127,7 +23047,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23137,7 +23057,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23145,7 +23065,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23153,7 +23073,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23162,18 +23082,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23181,13 +23101,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23196,23 +23116,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23221,79 +23141,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23571,7 +23491,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24098,11 +24018,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24110,22 +24052,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24134,11 +24076,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24148,11 +24090,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24162,11 +24104,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24174,11 +24116,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24189,11 +24131,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24201,11 +24143,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24213,11 +24155,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24227,11 +24169,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24239,11 +24181,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24251,11 +24193,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24263,11 +24205,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24276,11 +24218,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24289,11 +24231,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24303,7 +24245,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24311,69 +24253,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24381,48 +24323,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24433,7 +24375,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24443,17 +24385,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24462,14 +24404,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24480,7 +24422,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24488,30 +24430,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24519,30 +24461,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24550,60 +24492,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24612,79 +24554,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24693,7 +24635,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24701,7 +24643,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24711,21 +24653,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24733,7 +24675,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24742,7 +24684,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24752,14 +24694,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24768,28 +24710,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24798,27 +24740,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24828,7 +24770,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24838,13 +24780,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25064,7 +25008,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25072,7 +25016,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25083,15 +25027,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25099,7 +25043,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25107,7 +25051,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25119,43 +25063,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25164,29 +25108,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26552,7 +26504,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26591,11 +26543,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/mr/LC_MESSAGES/messages.po b/locales/mr/LC_MESSAGES/messages.po index 250a1409b..629b6e69e 100644 --- a/locales/mr/LC_MESSAGES/messages.po +++ b/locales/mr/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2025-01-25 14:18+0000\n" "Last-Translator: Prachi Joshi \n" "Language-Team: Marathi `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2784,41 +2786,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2827,7 +2829,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2836,12 +2838,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2851,7 +2853,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2863,11 +2865,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2875,20 +2877,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2896,7 +2898,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2907,7 +2909,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2916,13 +2918,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3205,11 +3207,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3408,9 +3410,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3583,54 +3585,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3638,11 +3640,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3651,11 +3653,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3663,26 +3665,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3694,38 +3696,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3734,21 +3736,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3757,11 +3759,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3769,15 +3771,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3785,21 +3787,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3952,7 +3954,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4308,17 +4310,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4630,7 +4643,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5001,7 +5014,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6689,11 +6702,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6729,7 +6743,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6742,29 +6757,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6776,65 +6791,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6843,18 +6858,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6863,11 +6878,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6877,7 +6892,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6886,11 +6901,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6902,24 +6917,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6927,17 +6942,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6948,11 +6963,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6960,14 +6975,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7594,12 +7609,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8305,17 +8314,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8323,34 +8332,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8358,42 +8367,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8402,18 +8423,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8743,7 +8758,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9359,40 +9374,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9400,25 +9419,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9426,45 +9445,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9475,31 +9494,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9700,9 +9719,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9729,9 +9748,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9762,7 +9781,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9792,8 +9811,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9845,7 +9864,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9856,8 +9875,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9869,8 +9888,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9903,7 +9922,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -9977,8 +9996,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10008,90 +10027,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10100,26 +10119,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10127,28 +10146,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10156,33 +10175,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13233,86 +13252,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13321,116 +13336,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13440,51 +13384,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13492,7 +13396,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13500,18 +13404,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13520,7 +13424,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13531,7 +13435,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13549,7 +13453,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13558,7 +13462,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13570,26 +13474,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13597,24 +13501,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14368,11 +14276,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16204,17 +16112,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18222,7 +18136,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20565,95 +20479,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20676,10 +20600,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20730,7 +20650,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20738,24 +20658,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20765,139 +20685,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20911,7 +20831,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20920,7 +20840,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20932,30 +20852,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20964,21 +20884,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -20988,26 +20908,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21016,40 +20936,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21058,11 +20978,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21092,56 +21012,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21149,38 +21069,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21188,14 +21108,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21203,7 +21123,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21211,24 +21131,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21236,7 +21156,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21247,13 +21167,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21262,7 +21182,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21277,38 +21197,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21318,7 +21238,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21326,7 +21246,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21334,21 +21254,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21356,19 +21276,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21377,20 +21297,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21398,18 +21318,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21417,7 +21337,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21425,32 +21345,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22274,7 +22194,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22313,7 +22233,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22533,14 +22453,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22574,7 +22494,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22582,45 +22502,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22628,7 +22548,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22637,23 +22557,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22662,14 +22582,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22679,7 +22599,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22687,14 +22607,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22704,45 +22624,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22751,7 +22671,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22761,17 +22681,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22779,7 +22699,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22788,11 +22708,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22800,11 +22720,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22867,11 +22787,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22880,65 +22800,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22946,7 +22866,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22957,7 +22877,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22966,33 +22886,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23002,7 +22922,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23012,7 +22932,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23020,7 +22940,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23031,22 +22951,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23055,25 +22975,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23081,13 +23001,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23097,18 +23017,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23116,7 +23036,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23126,7 +23046,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23134,7 +23054,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23142,7 +23062,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23151,18 +23071,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23170,13 +23090,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23185,23 +23105,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23210,79 +23130,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23560,7 +23480,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24087,11 +24007,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24099,22 +24041,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24123,11 +24065,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24137,11 +24079,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24151,11 +24093,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24163,11 +24105,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24178,11 +24120,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24190,11 +24132,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24202,11 +24144,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24216,11 +24158,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24228,11 +24170,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24240,11 +24182,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24252,11 +24194,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24265,11 +24207,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24278,11 +24220,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24292,7 +24234,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24300,69 +24242,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24370,48 +24312,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24422,7 +24364,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24432,17 +24374,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24451,14 +24393,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24469,7 +24411,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24477,30 +24419,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24508,30 +24450,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24539,60 +24481,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24601,79 +24543,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24682,7 +24624,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24690,7 +24632,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24700,21 +24642,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24722,7 +24664,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24731,7 +24673,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24741,14 +24683,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24757,28 +24699,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24787,27 +24729,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24817,7 +24759,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24827,13 +24769,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25053,7 +24997,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25061,7 +25005,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25072,15 +25016,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25088,7 +25032,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25096,7 +25040,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25108,43 +25052,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25153,29 +25097,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26541,7 +26493,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26580,11 +26532,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/pl/LC_MESSAGES/messages.po b/locales/pl/LC_MESSAGES/messages.po index ef2f7e116..9d6464797 100644 --- a/locales/pl/LC_MESSAGES/messages.po +++ b/locales/pl/LC_MESSAGES/messages.po @@ -1,14 +1,15 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) 2013–2020, PyPA # This file is distributed under the same license as the Python Packaging User Guide package. -# Maciej Olko , 2024, 2025. +# Maciej Olko , 2024, 2025, 2026. # Stan Ulbrych , 2025. +# Michał p Biegluk python router , 2025, 2026. msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" -"PO-Revision-Date: 2025-08-17 01:01+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" +"PO-Revision-Date: 2026-02-11 07:09+0000\n" "Last-Translator: Maciej Olko \n" "Language-Team: Polish \n" @@ -18,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: Weblate 5.13\n" +"X-Generator: Weblate 5.16-dev\n" #: ../source/contribute.rst:5 msgid "Contribute to this guide" @@ -57,12 +58,18 @@ msgid "" "`pull requests`__. If you're planning to write or edit the guide, please " "read the :ref:`style guide `." msgstr "" +"Większość pracy nad |pypug| odbywa się w `repozytorium projektu na " +"GitHubie`__. Aby zacząć, sprawdź listę `otwartych zgłoszeń`__ i `pull " +"requestów`__. Jeśli planujesz napisać lub edytować ten przewodnik, " +"przeczytaj :ref:`przewodnik po stylach `." #: ../source/contribute.rst:25 msgid "" "By contributing to the |PyPUG|, you're expected to follow the PSF's `Code of " "Conduct`__." msgstr "" +"Biorąc udział w projekcie |PyPUG|, zobowiązujesz się do przestrzegania " +"Kodeksu postępowania PSF__" #: ../source/contribute.rst:32 msgid "Documentation types" @@ -91,6 +98,9 @@ msgid "" "goal. They are opinionated step-by-step guides. They do not include " "extraneous warnings or information. `example tutorial-style document`_." msgstr "" +"Tutoriale koncentrują się na uczeniu czytelnika nowych koncepcji poprzez " +"realizację celów. Nie zawierają zbędnych informacji i ostrzeżeń. `example " +"tutorial-style document`_." #: ../source/contribute.rst:51 ../source/guides/index.rst:2 #: ../source/index.rst:69 @@ -106,6 +116,12 @@ msgid "" "accomplishing the task. :doc:`example guide-style document `." msgstr "" +"Przewodniki koncentrują się na wykonaniu konkretnego zadania i mogą zakładać " +"pewien poziom wiedzy wstępnej. Są podobne do samouczków, ale mają wąski i " +"jasny zakres tematyczny oraz mogą zawierać wiele ostrzeżeń i dodatkowych " +"informacji w razie potrzeby. Mogą również omawiać różne podejścia do " +"wykonania zadania. :doc:`example guide-style document `." #: ../source/contribute.rst:60 ../source/discussions/index.rst:2 msgid "Discussions" @@ -2656,7 +2672,7 @@ msgid "A simple version with just one component: ``42``" msgstr "" #: ../source/discussions/versioning.rst:30 -msgid "A version with an epoch: ``1!1.0``" +msgid "A version with an epoch (discouraged): ``1!1.0``" msgstr "" #: ../source/discussions/versioning.rst:32 @@ -2687,20 +2703,22 @@ msgstr "" #: ../source/discussions/versioning.rst:49 msgid "" -"Finally, epochs, a rarely used feature, serve to fix the sorting order when " -"changing the versioning scheme. For example, if a project is using calendar " -"versioning, with versions like 23.12, and switches to semantic versioning, " -"with versions like 1.0, the comparison between 1.0 and 23.12 will go the " -"wrong way. To correct this, the new version numbers should have an explicit " -"epoch, as in \"1!1.0\", in order to be treated as more recent than the old " -"version numbers." +"Finally, epochs were intended to fix the sorting order when changing the " +"versioning scheme. For example, if a project was using calendar versioning, " +"with versions like ``23.12``, and switched to semantic versioning, with " +"versions like ``1.0``, the comparison between ``1.0`` and ``23.12`` would go " +"the wrong way. To correct this, the new version numbers would have an " +"explicit epoch, as in ``1!1.0``, in order to be treated as more recent than " +"the old version numbers. However, this is discouraged, and it is preferable " +"to use a higher version number that is unlikely to cause user confusion, " +"such as ``100.0``." msgstr "" -#: ../source/discussions/versioning.rst:59 +#: ../source/discussions/versioning.rst:60 msgid "Semantic versioning vs. calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:61 +#: ../source/discussions/versioning.rst:62 msgid "" "A versioning scheme is a formalized way to interpret the segments of a " "version number, and to decide which should be the next version number for a " @@ -2708,7 +2726,7 @@ msgid "" "Python packages, semantic versioning and calendar versioning." msgstr "" -#: ../source/discussions/versioning.rst:68 +#: ../source/discussions/versioning.rst:69 msgid "" "The decision which version number to choose is up to a project's maintainer. " "This effectively means that version bumps reflect the maintainer's view. " @@ -2716,7 +2734,7 @@ msgid "" "versioning scheme promises them." msgstr "" -#: ../source/discussions/versioning.rst:74 +#: ../source/discussions/versioning.rst:75 msgid "" "There are known exceptions for selecting the next version number. The " "maintainers may consciously choose to break the assumption that the last " @@ -2725,31 +2743,31 @@ msgid "" "come in patch versions but contain breaking changes inevitably." msgstr "" -#: ../source/discussions/versioning.rst:84 -#: ../source/specifications/version-specifiers.rst:726 +#: ../source/discussions/versioning.rst:85 +#: ../source/specifications/version-specifiers.rst:741 msgid "Semantic versioning" msgstr "" -#: ../source/discussions/versioning.rst:86 +#: ../source/discussions/versioning.rst:87 msgid "" "The idea of *semantic versioning* (or SemVer) is to use 3-part version " "numbers, *major.minor.patch*, where the project author increments:" msgstr "" -#: ../source/discussions/versioning.rst:89 +#: ../source/discussions/versioning.rst:90 msgid "*major* when they make incompatible API changes," msgstr "" -#: ../source/discussions/versioning.rst:90 +#: ../source/discussions/versioning.rst:91 msgid "" "*minor* when they add functionality in a backwards-compatible manner, and" msgstr "" -#: ../source/discussions/versioning.rst:91 +#: ../source/discussions/versioning.rst:92 msgid "*patch*, when they make backwards-compatible bug fixes." msgstr "" -#: ../source/discussions/versioning.rst:93 +#: ../source/discussions/versioning.rst:94 msgid "" "A majority of Python projects use a scheme that resembles semantic " "versioning. However, most projects, especially larger ones, do not strictly " @@ -2761,7 +2779,7 @@ msgid "" "used to signal significant but backwards-compatible new features." msgstr "" -#: ../source/discussions/versioning.rst:103 +#: ../source/discussions/versioning.rst:104 msgid "" "For those projects that do use strict semantic versioning, this approach " "allows users to make use of :ref:`compatible release version specifiers " @@ -2773,13 +2791,13 @@ msgid "" "and allows a later release with same X and Y but higher Z." msgstr "" -#: ../source/discussions/versioning.rst:112 +#: ../source/discussions/versioning.rst:113 msgid "" "Python projects adopting semantic versioning should abide by clauses 1-8 of " "the `Semantic Versioning 2.0.0 specification `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2790,41 +2808,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2833,7 +2851,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2842,12 +2860,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2857,7 +2875,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2869,11 +2887,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2881,20 +2899,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2902,7 +2920,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2913,7 +2931,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2922,13 +2940,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3211,11 +3229,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3414,9 +3432,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3589,54 +3607,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3644,11 +3662,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3657,11 +3675,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3669,26 +3687,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3700,38 +3718,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3740,21 +3758,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3763,11 +3781,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3775,15 +3793,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3791,21 +3809,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3958,7 +3976,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4314,17 +4332,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4636,7 +4665,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5007,7 +5036,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6695,11 +6724,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6735,7 +6765,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6748,29 +6779,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6782,65 +6813,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6849,18 +6880,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6869,11 +6900,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6883,7 +6914,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6892,11 +6923,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6908,24 +6939,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6933,17 +6964,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6954,11 +6985,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6966,14 +6997,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7600,12 +7631,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8311,17 +8336,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8329,34 +8354,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8364,42 +8389,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8408,18 +8445,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8749,7 +8780,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -8893,6 +8924,10 @@ msgid "" "given in `the Appveyor documentation `__. " "The free tier of account is perfectly adequate for open source projects." msgstr "" +"Aby użyć Appveyor do zbudowania kół Windows dla swojego projektu, musisz " +"posiadać konto w tej usłudze. Instrukcje dotyczące zakładania konta znajdują " +"się w dokumentacji Appveyor `__. Bezpłatny " +"poziom konta jest w pełni wystarczający dla projektów open source." #: ../source/guides/supporting-windows-using-appveyor.rst:44 msgid "" @@ -8900,6 +8935,9 @@ msgid "" "your project is hosted on one of those two services, setting up Appveyor " "integration is straightforward." msgstr "" +"Appveyor umożliwia integrację z `GitHub`_ i `Bitbucket`_, więc jeśli Twój " +"projekt jest hostowany w jednej z tych dwóch usług, skonfigurowanie " +"integracji Appveyor jest proste." #: ../source/guides/supporting-windows-using-appveyor.rst:48 msgid "" @@ -8907,10 +8945,13 @@ msgid "" "will automatically build your project each time a commit occurs. This " "behaviour will be familiar to users of Travis." msgstr "" +"Po skonfigurowaniu konta Appveyor i dodaniu projektu, Appveyor automatycznie " +"zbuduje go po każdym zatwierdzeniu. To zachowanie będzie znane użytkownikom " +"Travisa." #: ../source/guides/supporting-windows-using-appveyor.rst:53 msgid "Adding Appveyor support to your project" -msgstr "" +msgstr "Dodawanie obsługi Appveyor do projektu" #: ../source/guides/supporting-windows-using-appveyor.rst:55 msgid "" @@ -8919,6 +8960,10 @@ msgid "" "be included in the file are covered in the Appveyor documentation. This " "guide will provide the details necessary to set up wheel builds." msgstr "" +"Aby zdefiniować sposób, w jaki Appveyor powinien zbudować Twój projekt, " +"musisz dodać do niego plik :file:`appveyor.yml`. Szczegółowe informacje na " +"temat zawartości pliku znajdują się w dokumentacji Appveyor. Ten przewodnik " +"zawiera informacje niezbędne do skonfigurowania kompilacji Wheel." #: ../source/guides/supporting-windows-using-appveyor.rst:60 msgid "" @@ -8930,10 +8975,17 @@ msgid "" "version of Visual Studio used includes 64-bit compilers with no additional " "setup)." msgstr "" +"Appveyor domyślnie zawiera wszystkie zestawy narzędzi kompilatora potrzebne " +"do budowania rozszerzeń dla Pythona. W Pythonie 2.7, 3.5+ oraz 32-bitowych " +"wersjach 3.3 i 3.4 narzędzia te działają od razu. Jednak w przypadku 64-" +"bitowych wersji Pythona 3.3 i 3.4 wymagana jest niewielka dodatkowa " +"konfiguracja, aby distutils wiedział, gdzie znaleźć kompilatory 64-bitowe. " +"(Od wersji 3.5 używana wersja programu Visual Studio zawiera kompilatory 64-" +"bitowe bez konieczności dodatkowej konfiguracji)." #: ../source/guides/supporting-windows-using-appveyor.rst:68 msgid "appveyor.yml" -msgstr "" +msgstr "appveyor.yml" #: ../source/guides/supporting-windows-using-appveyor.rst:74 msgid "" @@ -9365,40 +9417,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9406,25 +9462,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9432,45 +9488,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9481,31 +9537,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9706,9 +9762,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9735,9 +9791,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9768,7 +9824,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9798,8 +9854,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9851,7 +9907,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9862,8 +9918,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9875,8 +9931,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9909,7 +9965,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -9983,8 +10039,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10014,90 +10070,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10106,26 +10162,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10133,28 +10189,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10162,33 +10218,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13239,86 +13295,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13327,116 +13379,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13446,51 +13427,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13498,7 +13439,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13506,18 +13447,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13526,7 +13467,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13537,7 +13478,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13555,7 +13496,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13564,7 +13505,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13576,26 +13517,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13603,24 +13544,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14374,11 +14319,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16210,17 +16155,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18228,7 +18179,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20571,95 +20522,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20682,10 +20643,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20736,7 +20693,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20744,24 +20701,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20771,139 +20728,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20917,7 +20874,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20926,7 +20883,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20938,30 +20895,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20970,21 +20927,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -20994,26 +20951,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21022,40 +20979,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21064,11 +21021,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21098,56 +21055,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21155,38 +21112,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21194,14 +21151,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21209,7 +21166,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21217,24 +21174,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21242,7 +21199,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21253,13 +21210,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21268,7 +21225,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21283,38 +21240,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21324,7 +21281,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21332,7 +21289,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21340,21 +21297,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21362,19 +21319,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21383,20 +21340,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21404,18 +21361,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21423,7 +21380,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21431,32 +21388,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22280,7 +22237,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22319,7 +22276,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22539,14 +22496,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22580,7 +22537,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22588,45 +22545,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22634,7 +22591,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22643,23 +22600,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22668,14 +22625,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22685,7 +22642,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22693,14 +22650,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22710,45 +22667,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22757,7 +22714,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22767,17 +22724,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22785,7 +22742,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22794,11 +22751,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22806,11 +22763,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22873,11 +22830,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22886,65 +22843,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22952,7 +22909,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22963,7 +22920,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22972,33 +22929,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23008,7 +22965,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23018,7 +22975,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23026,7 +22983,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23037,22 +22994,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23061,25 +23018,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23087,13 +23044,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23103,18 +23060,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23122,7 +23079,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23132,7 +23089,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23140,7 +23097,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23148,7 +23105,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23157,18 +23114,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23176,13 +23133,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23191,23 +23148,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23216,79 +23173,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23566,7 +23523,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24093,11 +24050,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24105,22 +24084,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24129,11 +24108,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24143,11 +24122,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24157,11 +24136,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24169,11 +24148,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24184,11 +24163,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24196,11 +24175,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24208,11 +24187,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24222,11 +24201,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24234,11 +24213,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24246,11 +24225,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24258,11 +24237,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24271,11 +24250,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24284,11 +24263,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24298,7 +24277,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24306,69 +24285,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24376,48 +24355,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24428,7 +24407,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24438,17 +24417,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24457,14 +24436,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24475,7 +24454,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24483,30 +24462,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24514,30 +24493,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24545,60 +24524,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24607,79 +24586,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24688,7 +24667,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24696,7 +24675,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24706,21 +24685,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24728,7 +24707,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24737,7 +24716,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24747,14 +24726,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24763,28 +24742,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24793,27 +24772,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24823,7 +24802,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24833,13 +24812,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25059,7 +25040,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25067,7 +25048,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25078,15 +25059,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25094,7 +25075,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25102,7 +25083,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25114,43 +25095,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25159,29 +25140,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26547,7 +26536,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26586,11 +26575,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/pt_BR/LC_MESSAGES/messages.po b/locales/pt_BR/LC_MESSAGES/messages.po index 6005d8adf..45cf12757 100644 --- a/locales/pt_BR/LC_MESSAGES/messages.po +++ b/locales/pt_BR/LC_MESSAGES/messages.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2025-08-07 00:01+0000\n" "Last-Translator: Rafael Fontenelle \n" "Language-Team: Portuguese (Brazil) `_." @@ -3706,7 +3719,7 @@ msgstr "" "Projetos Python que adotam versões semânticas devem obedecer às cláusulas " "1-8 da `especificação de Versionamento Semântico 2.0.0 `_." -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -3725,11 +3738,11 @@ msgstr "" "incompatíveis com versões anteriores (:doc:`Política de versionamento do " "NumPy `)." -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "Versionamento de calendário" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 #, fuzzy #| msgid "" #| "Semantic versioning is not a suitable choice for all projects, such as " @@ -3746,7 +3759,7 @@ msgstr "" "processo de descontinuação que fornece avisos para vários lançamentos antes " "da remoção de um recurso." -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " @@ -3757,7 +3770,7 @@ msgstr "" "conjunto de recursos básicos de uma determinada versão recebe apenas o " "número da versão." -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." @@ -3765,7 +3778,7 @@ msgstr "" "Os números de versão do calendário normalmente assumem o formato *ano.mês* " "(por exemplo, 23.12 para dezembro de 2023)." -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." @@ -3773,11 +3786,11 @@ msgstr "" ":doc:`Pip `, o instalador padrão do pacote Python, usa " "versionamento de calendário." -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "Outros esquemas" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -3792,7 +3805,7 @@ msgstr "" "serial transmitem pouca ou nenhuma informação sobre compatibilidade com " "versões anteriores da API." -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 #, fuzzy #| msgid "" #| "Combinations of the above schemes are possible. For example, a project " @@ -3813,12 +3826,12 @@ msgstr "" "aproximada de um lançamento, mas não se compromete com uma cadência de " "lançamento particular dentro do ano." -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "Identificadores de versão local" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -3835,7 +3848,7 @@ msgstr "" "destinadas à publicação, ou variantes modificadas de uma versão mantida por " "um redistribuidor." -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -3855,11 +3868,11 @@ msgstr "" "scm gera uma versão como \"0.5.dev1+gd00980f\", ou se o repositório tiver " "alterações não rastreadas, como \"0.5.dev1+gd00980f.d20231217\"." -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -3867,20 +3880,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -3888,7 +3901,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -3899,7 +3912,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -3908,7 +3921,7 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." @@ -3916,7 +3929,7 @@ msgstr "" "Mais alguns exemplos de números de versão incomuns são fornecidos em uma " "`postagem no blog `_ de Seth Larson." -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_, `de Brett Cannon `_. Para uma visão " "humorística, leia sobre ZeroVer_." -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -4303,11 +4316,11 @@ msgstr "Backend de construção" #: ../source/glossary.rst:17 #, fuzzy msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" "Uma biblioteca que pega uma árvore de fontes ou :term:`distribuição fonte " "` e constrói uma distribuição de código-" @@ -4566,9 +4579,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -4775,13 +4788,22 @@ msgid "Python Packaging Authority (PyPA)" msgstr "Python Packaging Authority (PyPA)" #: ../source/glossary.rst:287 +#, fuzzy +#| msgid "" +#| "PyPA is a working group that maintains many of the relevant projects in " +#| "Python packaging. They maintain a site at :doc:`pypa.io `, " +#| "host projects on `GitHub `_ and `Bitbucket " +#| "`_, and discuss issues on the `distutils-sig " +#| "mailing list `_ and `the Python Discourse forum `__." msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" "PyPA é um grupo de trabalho que mantém muitos dos projetos relevantes em " "pacotes Python. Eles mantêm um site em :doc:`pypa.io `, hospedam " @@ -4790,11 +4812,11 @@ msgstr "" "sig `_ e " "`o fórum Discourse do Python `__." -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "Python Package Index (PyPI)" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " @@ -4804,11 +4826,11 @@ msgstr "" "comunidade Python. Está aberto a todos os desenvolvedores Python para " "consumir e distribuir suas distribuições." -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "pypi.org" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " @@ -4818,22 +4840,22 @@ msgstr "" "Index (PyPI)`. Ele substituiu o nome de domínio do índice legado, " "``pypi.python.org``, em 2017. Ele é tornado possível pelo :ref:`warehouse`." -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "pyproject.toml" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" "O arquivo de especificação agnóstica de ferramenta para :term:`Projetos " "`. Definido na :pep:`518`." -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "Lançamento" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." @@ -4841,7 +4863,7 @@ msgstr "" "Um snapshot de um :term:`Projeto` em um determinado ponto no tempo, denotado " "por um identificador de versão." -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -4854,11 +4876,11 @@ msgstr "" "formato de distribuição fonte e um formato de distribuição de instalador do " "Windows." -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "Requisito" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -4872,11 +4894,11 @@ msgstr "" "podem ser consideradas um \"requisito\". Para obter mais informações, " "consulte a referência de :ref:`pip:pip install`." -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "Especificador de Requisitos" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -4889,11 +4911,11 @@ msgstr "" "onde \"foo\" é o nome do projeto e a parte \">=1.3\" é " "o :term:`Especificador de Versão`" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "Arquivo de Requisitos" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " @@ -4903,18 +4925,18 @@ msgstr "" "ser instalados usando :ref:`pip`. Para mais informações, veja a " "documentação :ref:`pip` em :ref:`pip:Requirements Files`." -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 #, fuzzy msgid "Root License Directory" msgstr "Projetos em subdiretórios" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 #, fuzzy #| msgid "Local directory:" msgid "License Directory" msgstr "Diretório local:" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -4926,17 +4948,17 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "setup.py" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "setup.cfg" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." @@ -4944,11 +4966,11 @@ msgstr "" "Os arquivos de especificação do projeto para :ref:`distutils` " "e :ref:`setuptools`. Veja também :term:`pyproject.toml`." -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "Arquivo Fonte" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` ou :term:`Distribuição Construída `." -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "Distribuição Fonte (ou \"sdist\")" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 #, fuzzy msgid "" "A :term:`distribution ` format (usually generated " @@ -4978,11 +5000,11 @@ msgstr "" "ou para gerar uma :term:`Distribuição Construída `. " "Veja :ref:`package-formats` para mais informações." -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "Pacote de Sistemas" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." @@ -4990,11 +5012,11 @@ msgstr "" "Um pacote fornecido em um formato nativo para o sistema operacional, por " "exemplo, um arquivo rpm ou dpkg." -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "Especificador de Versão" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -5009,11 +5031,11 @@ msgstr "" "oferece suporte atualmente. O suporte para esta especificação foi " "implementado no :ref:`setuptools` v8.0 e no :ref:`pip` v6.0." -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "Ambiente Virtual" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -5025,16 +5047,16 @@ msgstr "" "sistema. Para obter mais informações, consulte a seção sobre :ref:`Creating " "and using Virtual Environments`." -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 #, fuzzy msgid "Wheel Format" msgstr "Formato de arquivos" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "Wheel" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -5042,22 +5064,22 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 #, fuzzy msgid "Wheel Project" msgstr "Projeto" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "Conjunto de Trabalho" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -5256,7 +5278,7 @@ msgstr "Descrição" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "Exemplos" @@ -5661,11 +5683,22 @@ msgstr "" "O projeto `pandas-gbq`_ permite acessar resultados de pesquisa com `Pandas`_." #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 +msgid "``ClickPy``" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:339 +msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 msgid "References" msgstr "Referências" -#: ../source/guides/analyzing-pypi-package-downloads.rst:339 +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 msgid "" "`PyPI Download Counts deprecation email `__" @@ -5673,7 +5706,7 @@ msgstr "" "`E-mail de descontinuação das contagens de download do PyPI `__" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -6062,7 +6095,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -6573,7 +6606,7 @@ msgstr "" "passar a opção ``--old-and-unmanageable``." #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 #, fuzzy msgid "``scripts``" msgstr "scripts" @@ -8836,11 +8869,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -8879,7 +8913,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -8892,32 +8927,32 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 #, fuzzy msgid "Advanced example" msgstr "Um exemplo completo" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 #, fuzzy -#| msgid "The minimum required versions of the respective tools are:" -msgid "The license expressions for these projects are:" -msgstr "As versões mínimas exigidas das respectivas ferramentas são:" +#| msgid "in favour of ``Requires-Dist``" +msgid "The appropriate license expressions are:" +msgstr "em favor de ``Requires-Dist``" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -8929,68 +8964,68 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 #, fuzzy msgid "Expression examples" msgstr "Um exemplo completo" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 #, fuzzy #| msgid "in favour of ``Requires-Dist``" msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "em favor de ``Requires-Dist``" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -8999,18 +9034,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -9019,11 +9054,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -9033,7 +9068,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -9042,11 +9077,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -9058,24 +9093,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -9083,17 +9118,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -9104,11 +9139,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -9116,14 +9151,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -9921,14 +9956,6 @@ msgstr "" "wrapper personalizado ou usar ``python3 -c ''`` para invocar o " "ponto de entrada principal da aplicação diretamente." -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" -"Confira a `documentação de pkg_resources `__ para mais detalhes." - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "Empacotando extensões binárias" @@ -10948,11 +10975,17 @@ msgid "Legacy namespace packages" msgstr "Pacotes de espaço de nomes legados" #: ../source/guides/packaging-namespace-packages.rst:160 +#, fuzzy +#| msgid "" +#| "These two methods, that were used to create namespace packages prior " +#| "to :pep:`420`, are now considered to be obsolete and should not be used " +#| "unless you need compatibility with packages already using this method. " +#| "Also, :doc:`pkg_resources ` has been deprecated." msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" "Esses dois métodos, que eram usados para criar pacotes de espaço de nomes " "antes de :pep:`420`, agora são considerados descontinuados e não devem ser " @@ -10960,7 +10993,7 @@ msgstr "" "esse método. Além disso, :doc:`pkg_resources ` foi " "descontinuado." -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." @@ -10968,7 +11001,7 @@ msgstr "" "Para migrar um pacote existente, todos os pacotes que compartilham o espaço " "de nomes devem ser migrados simultaneamente." -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -10981,16 +11014,23 @@ msgstr "" "aconselhável usar métodos diferentes em distribuições diferentes que " "fornecem pacotes para o mesmo espaço de nomes." -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "Pacotes de espaço de nomes no estilo pkgutil" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 +#, fuzzy +#| msgid "" +#| "Python 2.3 introduced the :doc:`pkgutil ` module " +#| "and the :py:func:`python:pkgutil.extend_path` function. This can be used " +#| "to declare namespace packages that need to be compatible with both Python " +#| "2.3+ and Python 3. This is the recommended approach for the highest level " +#| "of compatibility." msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" "Python 2.3 introduziu o módulo :doc:`pkgutil ` e a " @@ -10999,7 +11039,7 @@ msgstr "" "2.3+ e Python 3. Esta é a abordagem recomendada para o nível mais alto de " "compatibilidade." -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" @@ -11007,8 +11047,8 @@ msgstr "" "Para criar um pacote de espaço de nomes no estilo pkgutil, você precisa " "fornecer um arquivo :file:`__init__.py` para o pacote de espaço de nomes:" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" @@ -11016,8 +11056,8 @@ msgstr "" "O arquivo :file:`__init__.py` para o pacote de espaço de nomes precisa " "conter o seguinte:" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -11030,7 +11070,7 @@ msgstr "" "importáveis. Qualquer código adicional no :file:`__init__.py` ficará " "inacessível." -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." @@ -11039,21 +11079,44 @@ msgstr "" "estilo pkgutil pode ser encontrado no `projeto exemplo de espaço de nomes de " "pkgutil`_." -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "Pacotes de espaço de nomes no estilo pkg_resources" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +#, fuzzy +#| msgid "" +#| ":doc:`Setuptools ` provides the " +#| "`pkg_resources.declare_namespace`_ function and the " +#| "``namespace_packages`` argument to :func:`~setuptools.setup`. Together " +#| "these can be used to declare namespace packages. While this approach is " +#| "no longer recommended, it is widely present in most existing namespace " +#| "packages. If you are creating a new distribution within an existing " +#| "namespace package that uses this method then it's recommended to continue " +#| "using this as the different methods are not cross-compatible and it's not " +#| "advisable to try to migrate an existing package." +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" ":doc:`Setuptools ` fornece a função " "`pkg_resources.declare_namespace`_ e o argumento ``namespace_packages`` " @@ -11065,7 +11128,7 @@ msgstr "" "continuar usando-o, pois os diferentes métodos não são compatíveis entre si " "e não é aconselhável tentar migrar um pacote existente." -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" @@ -11074,7 +11137,7 @@ msgstr "" "precisa fornecer um arquivo :file:`__init __. Py` para o pacote de espaço de " "nomes:" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" @@ -11082,7 +11145,7 @@ msgstr "" "Algumas recomendações mais antigas aconselham o seguinte " "no :file:`__init__.py` de pacotes de espaço de nomes:" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -11097,7 +11160,7 @@ msgstr "" "uma preocupação, então o pacote deve depender explicitamente de setuptools " "via ``install_requires``." -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" @@ -11106,15 +11169,6 @@ msgstr "" "``namespace_packages`` para :func:`~setuptools.setup` no :file:`setup.py`. " "Por exemplo:" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" -"Um exemplo de completamente funcional de dois pacotes de espaço de nomes no " -"estilo pkg_resources pode ser encontrado no `projeto exemplo de espaço de " -"nomes de pkg_resources`_." - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -11603,8 +11657,13 @@ msgstr "" "conjunto, fornecem testes automatizados no Linux, Mac e Windows:" #: ../source/guides/supporting-multiple-python-versions.rst:65 +#, fuzzy +#| msgid "" +#| "`Travis CI `_ provides both a Linux and a macOS " +#| "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 " +#| "bit while the macOS is 10.9.2 at the time of writing." msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -12463,41 +12522,47 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +#, fuzzy +#| msgid "Building binary extensions" +msgid "Build backends for extension modules" +msgstr "Construindo extensões binárias" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 #, fuzzy msgid "Building distributions" msgstr "Distribuição Construída" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -12505,14 +12570,14 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 #, fuzzy msgid "" "If you have :term:`extension modules ` and want to " @@ -12523,12 +12588,12 @@ msgstr "" "plataformas, use :ref:`cibuildwheel` como parte de sua configuração de CI " "para construir wheels distribuíveis." -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 #, fuzzy msgid "Uploading to PyPI" msgstr "Enviando seu Projeto para PyPI" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -12536,45 +12601,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -12585,37 +12650,37 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 #, fuzzy msgid ":ref:`Flit`," msgstr ":ref:`pip`" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 #, fuzzy msgid ":ref:`Hatch`," msgstr "pip, :ref:`bandersnatch`" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 #, fuzzy msgid ":doc:`nox `," msgstr ":doc:`Documentação `" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 #, fuzzy msgid ":ref:`PDM`," msgstr ":ref:`pip`" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 #, fuzzy msgid ":ref:`Pipenv`," msgstr ":ref:`pip`" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 #, fuzzy msgid ":ref:`Poetry`," msgstr ":ref:`pip`" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 #, fuzzy msgid ":doc:`tox `." msgstr ":doc:`Documentação `" @@ -12900,9 +12965,9 @@ msgid "Basic information" msgstr "Informações básicas" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "``name``" @@ -12945,9 +13010,9 @@ msgstr "" "``cool.stuff``, ``COOL_STUFF``, ``CoOl__-.-__sTuFF``." #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -12991,7 +13056,7 @@ msgid "Dependencies and requirements" msgstr "Dependências e requisitos" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "``dependencies``/``optional-dependencies``" @@ -13029,8 +13094,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "``requires-python``" @@ -13103,7 +13168,7 @@ msgid "About your project" msgstr "Sobre o seu projeto" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "``authors``/``maintainers``" @@ -13116,8 +13181,8 @@ msgstr "" "endereço de e-mail." #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "``description``" @@ -13133,8 +13198,8 @@ msgstr "" "pip_>`_)." #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "``readme``" @@ -13172,7 +13237,7 @@ msgid "``license`` and ``license-files``" msgstr "``license``" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -13256,8 +13321,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "``license``" @@ -13293,74 +13358,74 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 #, fuzzy #| msgid "``license``" msgid "``license-files``" msgstr "``license``" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "``keywords``" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." @@ -13368,13 +13433,13 @@ msgstr "" "Isso ajudará a caixa de pesquisa do PyPI a sugerir o seu projeto quando as " "pessoas procuram essas palavras-chave." -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "``classifiers``" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." @@ -13382,7 +13447,7 @@ msgstr "" "Uma lista de classificadores do PyPI que se aplicam ao seu projeto. " "Verifique a `lista completa de possibilidades `_." -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 #, fuzzy msgid "" "Although the list of classifiers is often used to declare what Python " @@ -13397,7 +13462,7 @@ msgstr "" "projetos. Para realmente restringir em quais versões do Python um projeto " "pode ser instalado, use o argumento :ref:`python_requires`." -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 #, fuzzy msgid "" "To prevent a package from being uploaded to PyPI, use the special " @@ -13408,13 +13473,13 @@ msgstr "" "especial ``'Private :: Do Not Upload'``. PyPI sempre rejeitará pacotes com " "classificadores começando com ``\"Private ::'``." -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "``urls``" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." @@ -13422,7 +13487,7 @@ msgstr "" "Uma lista de URLs associadas ao seu projeto, exibida na barra lateral " "esquerda da página do projeto PyPI." -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -13430,7 +13495,7 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 #, fuzzy #| msgid "" #| "Note that if the key contains spaces, it needs to be quoted, e.g., " @@ -13445,21 +13510,21 @@ msgstr "" "``Website = \"https://example.com\"``, mas ``\"Official Website\" = " "\"https://example.com\"``." -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -13467,11 +13532,11 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "Plugins avançados" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " @@ -13481,15 +13546,15 @@ msgstr "" "Pytest_ e Pygments_. Para criar tal plugin, você precisa declará-lo em uma " "subtabela de ``[project.entry-points]`` assim:" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "Veja o :ref:`guia Plugin ` para mais informações." -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "Um exemplo completo" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " @@ -13499,7 +13564,7 @@ msgstr "" "= \"<= 3.10\"`` aqui. `Este post de blog `_ " "contém algumas informações sobre possíveis problemas." -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -17547,12 +17612,19 @@ msgstr "" "WHEEL são os metadados de wheel específicos para uma construção do pacote." #: ../source/specifications/binary-distribution-format.rst:239 +#, fuzzy +#| msgid "" +#| "RECORD is a list of (almost) all the files in the wheel and their secure " +#| "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " +#| "hash of itself, must include its hash. The hash algorithm must be sha256 " +#| "or better; specifically, md5 and sha1 are not permitted, as signed wheel " +#| "files rely on the strong hashes in RECORD to validate the integrity of " +#| "the archive." msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" "RECORD é uma lista de (quase) todos os arquivos no wheel seus hashes " "seguros. Ao contrário da PEP 376, nenhum arquivo, exceto RECORD, pode conter " @@ -17561,104 +17633,103 @@ msgstr "" "wheel assinados contam com hashes fortes em RECORD para validar a " "integridade do arquivo." -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "INSTALLER e REQUESTED da PEP 376 não são incluídos no arquivo." -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" -"RECORD.jws é usado para assinaturas digitais. Não é mencionado no RECORD." - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -"RECORD.p7s é permitido como cortesia para qualquer pessoa que prefira usar " -"assinaturas S/MIME para proteger seus arquivos wheels. Não é mencionado no " -"RECORD." -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 +#, fuzzy +#| msgid "" +#| "During extraction, wheel installers verify all the hashes in RECORD " +#| "against the file contents. Apart from RECORD and its signatures, " +#| "installation will fail if any file in the archive is not both mentioned " +#| "and correctly hashed in RECORD." msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" "Durante a extração, os instaladores de wheels verificam todos os hashes em " "RECORD em relação ao conteúdo do arquivo. Além de RECORD e suas assinaturas, " "a instalação falhará se qualquer arquivo no arquivo não for mencionado e com " "hash correto em RECORD." -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 #, fuzzy #| msgid "Project name" msgid "Subdirectory name" msgstr "Nome do projeto" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 #, fuzzy #| msgid "``license``" msgid "``licenses``" msgstr "``license``" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 #, fuzzy #| msgid ":pep:`600`" msgid ":pep:`639`" msgstr ":pep:`600`" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 #, fuzzy #| msgid "``license``" msgid "``license_files``" msgstr "``license``" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 #, fuzzy #| msgid "``LIB``" msgid "``LICENSES``" msgstr "``LIB``" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 #, fuzzy #| msgid ":pep:`571`" msgid ":pep:`770`" msgstr ":pep:`571`" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 #, fuzzy #| msgid "The .dist-info directory" msgid "The :file:`.dist-info/licenses/` directory" msgstr "O diretório .dist-info" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -17667,24 +17738,24 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 #, fuzzy #| msgid "The .dist-info directory" msgid "The :file:`.dist-info/sboms/` directory" msgstr "O diretório .dist-info" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "O diretório .data" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " @@ -17694,7 +17765,7 @@ msgstr "" "para o diretório .data, nomeado como o diretório .dist-info, mas com a " "extensão .data/::" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " @@ -17704,113 +17775,16 @@ msgstr "" "documentação e assim por diante da distribuição. Durante a instalação, o " "conteúdo desses subdiretórios é movido para seus caminhos de destino." -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "Arquivos wheels assinados" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" -"Os arquivos wheels incluem um RECORD estendido que permite assinaturas " -"digitais. O RECORD da PEP 376 foi alterado para incluir um hash seguro " -"``digestname=urlsafe_b64encode_nopad(digest)`` (codificação base64 de " -"urlsafe sem caracteres ao final =) como a segunda coluna em vez de um " -"md5sum. Todas as entradas possíveis são hash, incluindo quaisquer arquivos " -"gerados, como arquivos .pyc, mas não RECORD, que não pode conter seu próprio " -"hash. Por exemplo::" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" -"O(s) arquivo(s) de assinatura RECORD.jws e RECORD.p7s não são mencionados em " -"RECORD, pois eles só podem ser adicionados após RECORD ser gerado. Todos os " -"outros arquivos no arquivo devem ter um hash correto em RECORD ou a " -"instalação falhará." - -#: ../source/specifications/binary-distribution-format.rst:322 -#, fuzzy -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" -"Se assinaturas da web JSON forem usadas, uma ou mais assinaturas JSON Web " -"Signature JSON Serialization (JWS-JS) serão armazenadas em um arquivo " -"RECORD.jws adjacente a RECORD. JWS é usado para assinar RECORD incluindo o " -"hash SHA-256 de RECORD como a carga JSON da assinatura::" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "(O valor hash é o mesmo formato usado em RECORD.)" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" -"Se RECORD.p7s for usado, ele deve conter uma assinatura de formato S/MIME " -"separada de RECORD." - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" -"Um instalador de wheel não precisa entender as assinaturas digitais, mas " -"DEVE verificar os hashes em RECORD em relação ao conteúdo do arquivo " -"extraído. Quando o instalador verifica os hashes do arquivo em relação ao " -"RECORD, um verificador de assinatura separado só precisa estabelecer se " -"RECORD corresponde à assinatura." - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "Veja" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "https://datatracker.ietf.org/doc/html/rfc7515" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "https://datatracker.ietf.org/doc/html/rfc7517" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "FAQ" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "Wheel define um diretório .data. Devo colocar todos os meus dados lá?" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -17826,64 +17800,11 @@ msgstr "" "resource)`` ainda que *esses* arquivos normalmente não sejam distribuídos no " "diretório ``.data`` do *wheel*." -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "Por que o wheel inclui assinaturas anexadas?" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" -"Assinaturas anexadas são mais convenientes do que assinaturas separadas " -"porque elas viajam com o arquivo. Uma vez que apenas os arquivos individuais " -"são assinados, o arquivo pode ser recompactado sem invalidar a assinatura ou " -"os arquivos individuais podem ser verificados sem ter que baixar todo o " -"arquivo." - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "Por que wheel permite assinaturas JWS?" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" -"As especificações JOSE das quais o JWS faz parte foram projetadas para serem " -"fáceis de implementar, um recurso que também é um dos principais objetivos " -"do projeto da roda. O JWS produz uma implementação puro Python concisa e " -"útil." - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "Por que wheel também permite assinaturas S/MIME?" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" -"Assinaturas S/MIME são permitidas para usuários que precisam ou querem usar " -"uma infraestrutura de chaves públicas existente com o wheel." - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" -"Pacotes assinados são apenas um bloco de construção básico em um sistema de " -"atualização segura de pacotes. Wheel só fornece o bloco de construção." - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "Qual é a diferença entre \"purelib\" e \"platlib\"?" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -17895,7 +17816,7 @@ msgstr "" "puro Python em '/usr/lib/pythonX.Y/site-packages' e pacotes dependentes de " "plataforma em '/usr/lib64/pythonX.Y/site-packages'." -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -17907,7 +17828,7 @@ msgstr "" "Purelib: true\" com os mesmos arquivos na raiz, e é válido ter arquivos nas " "categorias \"purelib\" e \"platlib\"." -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " @@ -17917,11 +17838,11 @@ msgstr "" "dependendo se é puro Python ou não e esses arquivos devem estar na raiz com " "a configuração apropriada fornecida para \"Root-is-purelib\"." -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "É possível importar código Python diretamente de um arquivo wheel?" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -17935,7 +17856,7 @@ msgstr "" "``sys.path``. No entanto, embora esse comportamento seja uma consequência " "natural do design do formato, não é recomendável confiar nele." -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -17954,7 +17875,7 @@ msgstr "" "segurança, ou integração completa com o maquinário de construção padrão para " "extensões C, publicando arquivos de cabeçalho no local apropriado)." -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -17988,7 +17909,7 @@ msgstr "" "abstratos internamente, a interface com componentes externos ainda pode " "exigir a disponibilidade de um arquivo real no disco." -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -18002,7 +17923,7 @@ msgstr "" "esteja ciente de que muitos projetos exigirão que uma falha seja reproduzida " "com um pacote totalmente instalado antes de aceitá-lo como um bug genuíno." -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -18014,20 +17935,20 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "Histórico" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 #, fuzzy msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " @@ -18037,7 +17958,7 @@ msgstr "" "para alinhá-las com o que as ferramentas populares realmente fazem " "(fevereiro de 2021)." -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -18045,7 +17966,7 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 #, fuzzy #| msgid "" @@ -18058,17 +17979,21 @@ msgstr "" "Este documento descreve o formato dos especificadores de dependência " "conforme originalmente especificado na :pep:`508`." -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "Apêndice" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "Exemplo de implementação de urlsafe-base64-nopad::" @@ -18902,12 +18827,20 @@ msgstr "" "\"2.1\", \"2.2\" e \"2.3\"." #: ../source/specifications/core-metadata.rst:55 -msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +#, fuzzy +#| msgid "" +#| "Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " +#| "greater than the highest version they support, and MUST fail if " +#| "``metadata_version`` has a greater major version than the highest version " +#| "they support (as described in the :ref:`Version specifier specification " +#| "`, the major version is the value before the first " +#| "dot)." +msgid "" +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" "Ferramentas automatizadas que consomem metadados DEVEM avisar se " "``metadata_version`` é maior que a versão mais alta à qual oferecem suporte, " @@ -21224,7 +21157,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" @@ -21232,12 +21171,12 @@ msgstr "" "pip, o instalador recomendado para pacotes Python (http://" "pip.readthedocs.org/en/stable/)" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" "A biblioteca de PEG do parsley. (https://pypi.python.org/pypi/parsley/)" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -23551,7 +23490,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 #, fuzzy msgid "Recommendations" msgstr "Recomendações de ferramentas" @@ -26162,10 +26101,22 @@ msgstr "" "ou senha sempre que você enviar um pacote com :ref:`twine` ou :ref:`flit`." #: ../source/specifications/pypirc.rst:13 +#, fuzzy +#| msgid "The :file:`.pypirc` file" +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "O arquivo :file:`.pypirc`" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "O formato (originalmente definido pelo pacote :ref:`distutils`) é:" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." @@ -26173,24 +26124,24 @@ msgstr "" "A seção ``distutils`` define um campo ``index-servers`` que lista o nome de " "todas as seções descrevendo um repositório." -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "Cada seção descrevendo um repositório define três campos:" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "``repository``: A URL do repositório." -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "``username``: O nome de usuário registrado no repositório." -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" "``password``: A senha que será usada para autenticar o nome de usuário." -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " @@ -26200,7 +26151,7 @@ msgstr "" "segurança, considere uma alternativa como `chaveiro`_, configurando " "variáveis de ambiente ou fornecendo a senha na linha de comando." -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" @@ -26208,11 +26159,11 @@ msgstr "" "Caso contrário, defina as permissões em :file:`.pypirc` para que somente " "você possa ver ou modificá-lo. Por exemplo, no Linux ou macOS, execute:" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "Configurações comuns" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " @@ -26223,7 +26174,7 @@ msgstr "" "diferentes. Consulte a documentação de cada projeto para obter mais detalhes " "e instruções de uso." -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" @@ -26231,7 +26182,7 @@ msgstr "" "A configuração padrão do Twine imita um :file:`.pypirc` com seções de " "repositório para PyPI e TestPyPI:" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." @@ -26239,11 +26190,11 @@ msgstr "" "Twine irá adicionar configuração adicional de :file:`$HOME/.pypirc`, a linha " "de comando e variáveis de ambiente a esta configuração padrão." -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "Usando um token do PyPI" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" @@ -26251,7 +26202,7 @@ msgstr "" "Para definir seu `token de API`_ para PyPI, você pode criar " "um :file:`$HOME/.pypirc` semelhante a:" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." @@ -26259,11 +26210,11 @@ msgstr "" "Para o :ref:`TestPyPI `, adicione a seção ``[testpypi]``, " "usando o token de API de sua conta do TestPyPI." -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "Usando outro índice de pacotes" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " @@ -26274,7 +26225,7 @@ msgstr "" "completo de um :file:`$HOME/.pypirc` para PyPI, TestPyPI e um repositório " "privado:" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -26299,10 +26250,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -26365,7 +26312,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -26373,25 +26320,25 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 #, fuzzy msgid "Declaring project metadata: the ``[project]`` table" msgstr "Declarando os metadados do projeto" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -26408,17 +26355,17 @@ msgstr "" "da chave ``dynamic`` (definido posteriormente nesta especificação) e " "representam os metadados que uma ferramenta fornecerá posteriormente." -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "As únicas chaves que precisam ser definidos estaticamente são:" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" @@ -26426,7 +26373,7 @@ msgstr "" "As chaves que são obrigatórias, mas podem ser especificadas estaticamente " "*ou* listadas como dinâmicas são:" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." @@ -26434,60 +26381,60 @@ msgstr "" "Todas as outras chaves são consideradas opcionais e podem ser especificadas " "estaticamente, listadas como dinâmicas ou não especificadas." -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "A lista completa de chaves permitidas na tabela ``[project]`` são:" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "``authors``" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "``dependencies``" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "``dynamic``" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "``entry-points``" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "``gui-scripts``" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 #, fuzzy #| msgid "``name``" msgid "``import-names``" msgstr "``name``" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "``maintainers``" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "``optional-dependencies``" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "Tipo TOML_: string" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" @@ -26495,11 +26442,11 @@ msgstr "" "Campo correspondente dos :ref:`metadados principais `: :ref:`Name `" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "O nome do projeto." -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." @@ -26508,7 +26455,7 @@ msgstr "" "conforme especificado por :pep:`503`, assim que for lido para consistência " "interna." -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" @@ -26516,7 +26463,7 @@ msgstr "" "Campo correspondente dos :ref:`metadados principais `: :ref:`Version `" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." @@ -26524,11 +26471,11 @@ msgstr "" "A versão do projeto, conforme definido na :ref:`especificação de " "especificadores de versão `." -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "Os usuários DEVEM preferir especificar versões já normalizadas." -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" @@ -26536,17 +26483,17 @@ msgstr "" "Campo correspondente dos :ref:`metadados principais `: :ref:`Summary `" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "Tipo TOML_: string ou tabela" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `: :ref:`Description ` " "e :ref:`Description-Content-Type `" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "A descrição completa do projeto (isto é, o README)." -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -26585,7 +26532,7 @@ msgstr "" "``dynamic``. Para todos os sufixos não reconhecidos quando um tipo de " "conteúdo não é fornecido, as ferramentas DEVEM levantar um erro." -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -26600,7 +26547,7 @@ msgstr "" "portanto, as ferramentas DEVEM levantar um erro se os metadados " "especificarem ambas as chaves." -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -26622,7 +26569,7 @@ msgstr "" "`. Caso contrário, as ferramentas DEVEM levantar um erro para " "tipos de conteúdo não suportados." -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" @@ -26630,11 +26577,11 @@ msgstr "" "Campo correspondente dos :ref:`metadados principais `: :ref:`Requires-Python `" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "Os requisitos de versão do Python do projeto." -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 #, fuzzy #| msgid "" #| "Corresponding :ref:`core metadata ` field: :ref:`License " @@ -26646,14 +26593,14 @@ msgstr "" "Campo correspondente dos :ref:`metadados principais `: :ref:`License `" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -26662,17 +26609,17 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 #, fuzzy #| msgid "PyPA specifications" msgid "Legacy specification" msgstr "Especificações do PyPA" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "Tipo TOML_: tabela" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 #, fuzzy #| msgid "" #| "Corresponding :ref:`core metadata ` field: :ref:`License " @@ -26684,7 +26631,7 @@ msgstr "" "Campo correspondente dos :ref:`metadados principais `: :ref:`License `" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 #, fuzzy #| msgid "" #| "The table may have one of two keys. The ``file`` key has a string value " @@ -26709,20 +26656,20 @@ msgstr "" "uma ferramenta DEVE levantar um erro se os metadados especificarem ambas as " "chaves." -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "Tipo TOML_: vetor de strings" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 #, fuzzy #| msgid "" #| "Corresponding :ref:`core metadata ` field: :ref:`License " @@ -26734,7 +26681,7 @@ msgstr "" "Campo correspondente dos :ref:`metadados principais `: :ref:`License `" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -26743,40 +26690,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -26785,11 +26732,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "Tipo TOML_: Vetor de tabelas em linha com strings de chaves e valores" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `, :ref:`Maintainer ` " "e :ref:`Maintainer-email `" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " @@ -26811,7 +26758,7 @@ msgstr "" "significado exato está aberto à interpretação -- pode listar os autores " "originais ou primários, mantenedores atuais ou proprietários do pacote." -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." @@ -26819,7 +26766,7 @@ msgstr "" "A chave \"maintainers\" é semelhante a \"authors\" no sentido de que seu " "significado exato está aberto à interpretação." -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -26834,14 +26781,14 @@ msgstr "" "ser um endereço de email válido. Ambas as chaves são opcionais, mas ao menos " "uma das chaves deve ser especificada na tabela." -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" "O uso dos dados para preencher :ref:`metadados principais ` " "deve ser feito da seguinte forma:" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." @@ -26850,7 +26797,7 @@ msgstr "" "metadata-author>` ou :ref:`Maintainer ` conforme " "apropriado." -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` ou :ref:`Maintainer-email ` conforme apropriado." -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` ou :ref:`Maintainer-email ` conforme apropriado, com o formado ``{name} <{email}>``." -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "Vários valores devem ser separados por vírgulas." -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" @@ -26882,11 +26829,11 @@ msgstr "" "Campo correspondente dos :ref:`metadados principais `: :ref:`Keywords `" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "As palavras-chave do projeto." -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" @@ -26894,11 +26841,11 @@ msgstr "" "Campo correspondente dos :ref:`metadados principais `: :ref:`Classifier `" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "Classificadores Trove que se aplicam ao projeto." -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -26906,11 +26853,11 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "Tipo TOML_: tabela com chaves e valores de strings" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" @@ -26918,18 +26865,18 @@ msgstr "" "Campo correspondente dos :ref:`metadados principais `: :ref:`Project-URL `" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "Pontos de entrada" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" @@ -26937,11 +26884,11 @@ msgstr "" "Tipo TOML_: tabela (``[project.scripts]``, ``[project.gui-scripts]`` e " "``[project.entry-points]``)" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr ":ref:`Especificação de pontos de entrada `" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -26953,7 +26900,7 @@ msgstr "" "na :ref:`especificação de pontos de entrada `. A chave da " "tabela é o nome do ponto de entrada e o valor é a referência do objeto." -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " @@ -26963,7 +26910,7 @@ msgstr "" "na :ref:`especificação de pontos de entrada `. Seu formato é o " "mesmo que ``[project.scripts]``." -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -26976,7 +26923,7 @@ msgstr "" "aninhadas, mas sim manter os grupos de pontos de entrada em apenas um nível " "de profundidade." -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -26988,7 +26935,7 @@ msgstr "" "points.gui_scripts]``, pois elas seriam ambíguas perante " "``[project.scripts]`` e ``[project.gui-scripts]``, respectivamente." -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" @@ -26996,7 +26943,7 @@ msgstr "" "Tipo TOML_: Vetor de strings da :pep:`508` (``dependencies``) e uma tabela " "com valores de vetores de strings da :pep:`508` (``optional-dependencies``)" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `: :ref:`Requires-Dist ` " "e :ref:`Provides-Extra `" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "As dependências (opcionais) do projeto." -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -27022,7 +26969,7 @@ msgstr "" "string válida :pep:`508`. Cada string mapeia diretamente para " "um :ref:`Requires-Dist `." -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -27040,7 +26987,7 @@ msgstr "" "metadata-requires-dist>` para os metadados correspondentes de :ref:`Provides-" "Extra `." -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 #, fuzzy #| msgid "" #| "Corresponding :ref:`core metadata ` field: :ref:`Name " @@ -27052,7 +26999,7 @@ msgstr "" "Campo correspondente dos :ref:`metadados principais `: :ref:`Name `" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -27061,7 +27008,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -27076,32 +27023,32 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "Exemplos:" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 #, fuzzy #| msgid "" #| "Corresponding :ref:`core metadata ` field: :ref:`Name " @@ -27113,7 +27060,7 @@ msgstr "" "Campo correspondente dos :ref:`metadados principais `: :ref:`Name `" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -27123,7 +27070,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -27131,7 +27078,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -27139,17 +27086,17 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 #, fuzzy #| msgid "Example::" msgid "Example:" msgstr "Exemplo::" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "Tipo TOML_: vetor de string" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" @@ -27157,7 +27104,7 @@ msgstr "" "Campo correspondente dos :ref:`metadados principais `: :ref:`Dynamic `" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -27170,7 +27117,7 @@ msgstr "" "não especificados e espera-se que permaneçam não especificados em comparação " "a serem fornecidos por meio de ferramentas posteriormente." -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." @@ -27179,7 +27126,7 @@ msgstr "" "estaticamente (o que significa que os metadados não listam a chave em " "``dynamic``)." -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." @@ -27187,7 +27134,7 @@ msgstr "" "Um backend de construção DEVE gerar um erro se os metadados especificarem " "``name`` em ``dynamic``." -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -27201,7 +27148,7 @@ msgstr "" "um erro, caso contrário , ou seja, não deve ser possível que uma chave " "obrigatória não seja listada de alguma forma na tabela ``[project]``)." -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " @@ -27212,7 +27159,7 @@ msgstr "" "expectativa for um backend de construção fornecerá os dados para a chave " "mais tarde." -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." @@ -27220,7 +27167,7 @@ msgstr "" "Os backends de construção DEVEM levantar um erro se os metadados " "especificarem uma chave estaticamente, além de serem listados em ``dynamic``." -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -27232,7 +27179,7 @@ msgstr "" "(ou seja, ``dynamic`` é a única maneira de permitir que uma ferramenta " "preencha metadados e o usuário deve optar pelo preenchimento)." -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " @@ -27243,11 +27190,11 @@ msgstr "" "capaz de determinar os dados para ele (omitir os dados, se determinado como " "o valor exato, é aceitável) ." -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -27255,7 +27202,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -27263,32 +27210,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -28243,7 +28190,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -28282,7 +28229,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -28504,14 +28451,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 #, fuzzy msgid "As an example:" msgstr "Um exemplo completo" @@ -28546,7 +28493,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -28555,45 +28502,45 @@ msgid "``name``: The normalized name of the project." msgstr "O nome do projeto." #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -28601,7 +28548,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -28610,23 +28557,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 #, fuzzy msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " @@ -28638,14 +28585,14 @@ msgstr "" "Vários hashes podem ser incluídos e cabe ao consumidor decidir o que fazer " "com vários hashes (pode validar todos eles ou um subconjunto deles, ou nada)." -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 #, fuzzy msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " @@ -28662,7 +28609,7 @@ msgstr "" "DEVE sempre ser incluído. No momento da escrita, ``sha256`` especificamente " "é recomendado." -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -28670,14 +28617,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -28687,45 +28634,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -28734,7 +28681,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -28744,17 +28691,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -28762,7 +28709,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -28771,11 +28718,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -28783,11 +28730,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -28851,12 +28798,12 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 #, fuzzy msgid "Version + Format Selection" msgstr "Versão" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -28865,65 +28812,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -28931,7 +28878,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -28942,7 +28889,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -28951,33 +28898,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -28987,7 +28934,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -28997,7 +28944,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -29005,7 +28952,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -29016,22 +28963,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -29040,25 +28987,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -29066,13 +29013,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -29082,19 +29029,19 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 #, fuzzy msgid "Endpoint Configuration" msgstr "Configurações comuns" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -29102,7 +29049,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -29112,7 +29059,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -29120,7 +29067,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -29128,7 +29075,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -29137,18 +29084,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -29156,13 +29103,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -29171,23 +29118,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -29196,79 +29143,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -29618,7 +29565,7 @@ msgstr "" "conforme originalmente especificado na :pep:`508`." #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "Especificadores de versão" @@ -30153,11 +30100,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "Normalização" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -30165,23 +30134,23 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "Sensível a maiúsculas e minúsculas" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 #, fuzzy msgid "Integer Normalization" msgstr "Normalização" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -30190,12 +30159,12 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 #, fuzzy msgid "Pre-release separators" msgstr "Versionamento de pré-lançamento" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -30205,12 +30174,12 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 #, fuzzy msgid "Pre-release spelling" msgstr "Versionamento de pré-lançamento" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -30220,11 +30189,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "Número de pré-lançamento implícito" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -30232,11 +30201,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "Separadores de pós lançamento" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -30247,12 +30216,12 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 #, fuzzy msgid "Post release spelling" msgstr "Versionamento de pré-lançamento" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -30260,11 +30229,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "Número implícito de pós lançamento" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -30272,11 +30241,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "Pós lançamentos implícitos" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -30286,11 +30255,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "Separadores de versões de desenvolvimento" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -30298,11 +30267,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "Número implícito de versão de desenvolvimento" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -30310,12 +30279,12 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 #, fuzzy msgid "Local version segments" msgstr "Identificadores de versão local" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -30323,11 +30292,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "Caractere predecessor v" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -30336,11 +30305,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -30349,12 +30318,12 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 #, fuzzy msgid "Examples of compliant version schemes" msgstr "Aqui estão alguns exemplos de números de versão compatíveis::" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -30364,7 +30333,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -30372,70 +30341,70 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 #, fuzzy msgid "Simple \"major.minor\" versioning::" msgstr "Versionamento serial" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "Versionamento simples \"major.minor.micro\" ::" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -30443,48 +30412,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "Ordenação de versões em diferentes versões de metadados" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -30495,7 +30464,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -30505,18 +30474,18 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 #, fuzzy msgid "Compatibility with other version schemes" msgstr "Lidando com os wheels universais" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -30525,14 +30494,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -30543,7 +30512,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -30551,31 +30520,31 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 #, fuzzy msgid "DVCS based version labels" msgstr "Versionamento baseado em data" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -30583,31 +30552,31 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 #, fuzzy msgid "Olson database versioning" msgstr "Versionamento baseado em data" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -30615,60 +30584,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "``~=``: `Compatible release`_ clause" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "``==``: `Version matching`_ clause" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "``!=``: `Version exclusion`_ clause" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "``<``, ``>``: `Exclusive ordered comparison`_ clause" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "``===``: `Arbitrary equality`_ clause." -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -30677,81 +30646,81 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "Versão compatível" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 #, fuzzy msgid "For example, the following groups of version clauses are equivalent::" msgstr "Isso significa que os seguintes nomes são todos equivalentes:" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 #, fuzzy msgid "Version matching" msgstr "Versão" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -30760,7 +30729,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -30768,7 +30737,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -30778,21 +30747,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -30800,7 +30769,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -30809,7 +30778,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -30819,14 +30788,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -30835,29 +30804,29 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 #, fuzzy msgid "Version exclusion" msgstr "Especificador de Versão" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "Comparação ordenada inclusiva" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -30866,27 +30835,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "Comparação ordenada exclusiva" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -30896,7 +30865,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -30906,13 +30875,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -31141,7 +31112,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -31149,7 +31120,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -31160,17 +31131,17 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 #, fuzzy msgid "Remote URL examples::" msgstr "Por exemplo::" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 #, fuzzy msgid "File URLs" msgstr "URLs de arquivos" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -31178,7 +31149,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -31186,7 +31157,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -31198,43 +31169,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "Resumo das diferenças em relação a pkg_resources.parse_version" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -31243,29 +31214,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 #, fuzzy msgid "Python Virtual Environments" @@ -33062,7 +33041,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -33117,12 +33096,21 @@ msgid "Creating a LICENSE" msgstr "Criando um LICENSE" #: ../source/tutorials/packaging-projects.rst:253 -msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +#, fuzzy +#| msgid "" +#| "It's important for every package uploaded to the Python Package Index to " +#| "include a license. This tells users who install your package the terms " +#| "under which they can use your package. For help picking a license, see " +#| "https://choosealicense.com/. Once you have chosen a license, " +#| "open :file:`LICENSE` and enter the license text. For example, if you had " +#| "chosen the MIT license:" +msgid "" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" "É importante que cada pacote enviado para o Índice de Pacotes do Python " "inclua uma licença. Isso informa aos usuários que instalam seu pacote os " @@ -33462,6 +33450,175 @@ msgid "" "the file is empty)." msgstr "" +#~ msgid "" +#~ "Refer to the `pkg_resources documentation `__ for more details." +#~ msgstr "" +#~ "Confira a `documentação de pkg_resources `__ para mais detalhes." + +#~ msgid "" +#~ "A complete working example of two pkg_resources-style namespace packages " +#~ "can be found in the `pkg_resources namespace example project`_." +#~ msgstr "" +#~ "Um exemplo de completamente funcional de dois pacotes de espaço de nomes " +#~ "no estilo pkg_resources pode ser encontrado no `projeto exemplo de espaço " +#~ "de nomes de pkg_resources`_." + +#~ msgid "" +#~ "RECORD.jws is used for digital signatures. It is not mentioned in RECORD." +#~ msgstr "" +#~ "RECORD.jws é usado para assinaturas digitais. Não é mencionado no RECORD." + +#~ msgid "" +#~ "RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/" +#~ "MIME signatures to secure their wheel files. It is not mentioned in " +#~ "RECORD." +#~ msgstr "" +#~ "RECORD.p7s é permitido como cortesia para qualquer pessoa que prefira " +#~ "usar assinaturas S/MIME para proteger seus arquivos wheels. Não é " +#~ "mencionado no RECORD." + +#~ msgid "Signed wheel files" +#~ msgstr "Arquivos wheels assinados" + +#~ msgid "" +#~ "Wheel files include an extended RECORD that enables digital signatures. " +#~ "PEP 376's RECORD is altered to include a secure hash " +#~ "``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding " +#~ "with no trailing = characters) as the second column instead of an " +#~ "md5sum. All possible entries are hashed, including any generated files " +#~ "such as .pyc files, but not RECORD which cannot contain its own hash. For " +#~ "example::" +#~ msgstr "" +#~ "Os arquivos wheels incluem um RECORD estendido que permite assinaturas " +#~ "digitais. O RECORD da PEP 376 foi alterado para incluir um hash seguro " +#~ "``digestname=urlsafe_b64encode_nopad(digest)`` (codificação base64 de " +#~ "urlsafe sem caracteres ao final =) como a segunda coluna em vez de um " +#~ "md5sum. Todas as entradas possíveis são hash, incluindo quaisquer " +#~ "arquivos gerados, como arquivos .pyc, mas não RECORD, que não pode conter " +#~ "seu próprio hash. Por exemplo::" + +#~ msgid "" +#~ "The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in " +#~ "RECORD at all since they can only be added after RECORD is generated. " +#~ "Every other file in the archive must have a correct hash in RECORD or the " +#~ "installation will fail." +#~ msgstr "" +#~ "O(s) arquivo(s) de assinatura RECORD.jws e RECORD.p7s não são mencionados " +#~ "em RECORD, pois eles só podem ser adicionados após RECORD ser gerado. " +#~ "Todos os outros arquivos no arquivo devem ter um hash correto em RECORD " +#~ "ou a instalação falhará." + +#, fuzzy +#~ msgid "" +#~ "If JSON web signatures are used, one or more JSON Web Signature JSON " +#~ "Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent " +#~ "to RECORD. JWS is used to sign RECORD by including the SHA-256 hash of " +#~ "RECORD as the signature's JSON payload:" +#~ msgstr "" +#~ "Se assinaturas da web JSON forem usadas, uma ou mais assinaturas JSON Web " +#~ "Signature JSON Serialization (JWS-JS) serão armazenadas em um arquivo " +#~ "RECORD.jws adjacente a RECORD. JWS é usado para assinar RECORD incluindo " +#~ "o hash SHA-256 de RECORD como a carga JSON da assinatura::" + +#~ msgid "(The hash value is the same format used in RECORD.)" +#~ msgstr "(O valor hash é o mesmo formato usado em RECORD.)" + +#~ msgid "" +#~ "If RECORD.p7s is used, it must contain a detached S/MIME format signature " +#~ "of RECORD." +#~ msgstr "" +#~ "Se RECORD.p7s for usado, ele deve conter uma assinatura de formato S/MIME " +#~ "separada de RECORD." + +#~ msgid "" +#~ "A wheel installer is not required to understand digital signatures but " +#~ "MUST verify the hashes in RECORD against the extracted file contents. " +#~ "When the installer checks file hashes against RECORD, a separate " +#~ "signature checker only needs to establish that RECORD matches the " +#~ "signature." +#~ msgstr "" +#~ "Um instalador de wheel não precisa entender as assinaturas digitais, mas " +#~ "DEVE verificar os hashes em RECORD em relação ao conteúdo do arquivo " +#~ "extraído. Quando o instalador verifica os hashes do arquivo em relação ao " +#~ "RECORD, um verificador de assinatura separado só precisa estabelecer se " +#~ "RECORD corresponde à assinatura." + +#~ msgid "See" +#~ msgstr "Veja" + +#~ msgid "https://datatracker.ietf.org/doc/html/rfc7515" +#~ msgstr "https://datatracker.ietf.org/doc/html/rfc7515" + +#~ msgid "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" +#~ "serialization-01" +#~ msgstr "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" +#~ "serialization-01" + +#~ msgid "https://datatracker.ietf.org/doc/html/rfc7517" +#~ msgstr "https://datatracker.ietf.org/doc/html/rfc7517" + +#~ msgid "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" +#~ msgstr "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" + +#~ msgid "Why does wheel include attached signatures?" +#~ msgstr "Por que o wheel inclui assinaturas anexadas?" + +#~ msgid "" +#~ "Attached signatures are more convenient than detached signatures because " +#~ "they travel with the archive. Since only the individual files are " +#~ "signed, the archive can be recompressed without invalidating the " +#~ "signature or individual files can be verified without having to download " +#~ "the whole archive." +#~ msgstr "" +#~ "Assinaturas anexadas são mais convenientes do que assinaturas separadas " +#~ "porque elas viajam com o arquivo. Uma vez que apenas os arquivos " +#~ "individuais são assinados, o arquivo pode ser recompactado sem invalidar " +#~ "a assinatura ou os arquivos individuais podem ser verificados sem ter que " +#~ "baixar todo o arquivo." + +#~ msgid "Why does wheel allow JWS signatures?" +#~ msgstr "Por que wheel permite assinaturas JWS?" + +#~ msgid "" +#~ "The JOSE specifications of which JWS is a part are designed to be easy to " +#~ "implement, a feature that is also one of wheel's primary design goals. " +#~ "JWS yields a useful, concise pure-Python implementation." +#~ msgstr "" +#~ "As especificações JOSE das quais o JWS faz parte foram projetadas para " +#~ "serem fáceis de implementar, um recurso que também é um dos principais " +#~ "objetivos do projeto da roda. O JWS produz uma implementação puro Python " +#~ "concisa e útil." + +#~ msgid "Why does wheel also allow S/MIME signatures?" +#~ msgstr "Por que wheel também permite assinaturas S/MIME?" + +#~ msgid "" +#~ "S/MIME signatures are allowed for users who need or want to use existing " +#~ "public key infrastructure with wheel." +#~ msgstr "" +#~ "Assinaturas S/MIME são permitidas para usuários que precisam ou querem " +#~ "usar uma infraestrutura de chaves públicas existente com o wheel." + +#~ msgid "" +#~ "Signed packages are only a basic building block in a secure package " +#~ "update system. Wheel only provides the building block." +#~ msgstr "" +#~ "Pacotes assinados são apenas um bloco de construção básico em um sistema " +#~ "de atualização segura de pacotes. Wheel só fornece o bloco de construção." + +#, fuzzy +#~| msgid "The minimum required versions of the respective tools are:" +#~ msgid "The license expressions for these projects are:" +#~ msgstr "As versões mínimas exigidas das respectivas ferramentas são:" + #~ msgid "`Vagrant `_" #~ msgstr "`Vagrant `_" diff --git a/locales/ro/LC_MESSAGES/messages.po b/locales/ro/LC_MESSAGES/messages.po index 8b18f7e59..93288efa2 100644 --- a/locales/ro/LC_MESSAGES/messages.po +++ b/locales/ro/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2021-08-20 01:32+0000\n" "Last-Translator: GUILHERME FERNANDES NETO \n" "Language-Team: Romanian `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2785,41 +2787,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2828,7 +2830,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2837,12 +2839,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2852,7 +2854,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2864,11 +2866,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2876,20 +2878,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2897,7 +2899,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2908,7 +2910,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2917,13 +2919,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3206,11 +3208,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3409,9 +3411,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3584,54 +3586,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3639,11 +3641,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3652,11 +3654,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "Specificator Cerință" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3664,26 +3666,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3695,38 +3697,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3735,21 +3737,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3758,11 +3760,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3770,15 +3772,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3786,23 +3788,23 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 #, fuzzy #| msgid "Per Project Index" msgid "Wheel Project" msgstr "Pe Indexul Proiectului" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3955,7 +3957,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4311,17 +4313,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4633,7 +4646,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5004,7 +5017,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6694,11 +6707,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6734,7 +6748,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6747,29 +6762,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6781,65 +6796,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6848,18 +6863,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6868,11 +6883,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6882,7 +6897,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6891,11 +6906,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6907,24 +6922,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6932,17 +6947,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6953,11 +6968,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6965,14 +6980,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7599,12 +7614,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8310,17 +8319,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8328,34 +8337,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8363,42 +8372,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8407,18 +8428,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8748,7 +8763,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9364,40 +9379,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9405,25 +9424,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9431,45 +9450,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9480,31 +9499,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9705,9 +9724,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9734,9 +9753,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9767,7 +9786,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9797,8 +9816,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9850,7 +9869,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9861,8 +9880,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9874,8 +9893,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9908,7 +9927,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -9982,8 +10001,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10013,90 +10032,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10105,26 +10124,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10132,28 +10151,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10161,33 +10180,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13238,86 +13257,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13326,116 +13341,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13445,51 +13389,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13497,7 +13401,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13505,18 +13409,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13525,7 +13429,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13536,7 +13440,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13554,7 +13458,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13563,7 +13467,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13575,26 +13479,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13602,24 +13506,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14373,11 +14281,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16209,17 +16117,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18227,7 +18141,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20570,95 +20484,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20681,10 +20605,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20735,7 +20655,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20743,24 +20663,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20770,139 +20690,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20916,7 +20836,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20925,7 +20845,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20937,30 +20857,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20969,21 +20889,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -20993,26 +20913,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21021,40 +20941,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21063,11 +20983,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21097,56 +21017,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21154,38 +21074,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21193,14 +21113,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21208,7 +21128,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21216,24 +21136,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21241,7 +21161,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21252,13 +21172,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21267,7 +21187,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21282,38 +21202,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21323,7 +21243,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21331,7 +21251,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21339,21 +21259,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21361,19 +21281,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21382,20 +21302,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21403,18 +21323,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21422,7 +21342,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21430,32 +21350,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22279,7 +22199,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22318,7 +22238,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22538,14 +22458,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22579,7 +22499,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22587,45 +22507,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22633,7 +22553,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22642,23 +22562,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22667,14 +22587,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22684,7 +22604,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22692,14 +22612,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22709,45 +22629,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22756,7 +22676,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22766,17 +22686,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22784,7 +22704,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22793,11 +22713,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22805,11 +22725,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22872,11 +22792,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22885,65 +22805,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22951,7 +22871,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22962,7 +22882,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22971,33 +22891,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23007,7 +22927,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23017,7 +22937,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23025,7 +22945,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23036,22 +22956,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23060,25 +22980,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23086,13 +23006,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23102,18 +23022,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23121,7 +23041,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23131,7 +23051,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23139,7 +23059,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23147,7 +23067,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23156,18 +23076,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23175,13 +23095,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23190,23 +23110,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23215,79 +23135,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23565,7 +23485,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24092,11 +24012,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24104,22 +24046,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24128,11 +24070,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24142,11 +24084,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24156,11 +24098,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24168,11 +24110,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24183,11 +24125,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24195,11 +24137,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24207,11 +24149,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24221,11 +24163,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24233,11 +24175,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24245,11 +24187,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24257,11 +24199,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24270,11 +24212,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24283,11 +24225,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24297,7 +24239,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24305,69 +24247,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24375,48 +24317,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24427,7 +24369,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24437,17 +24379,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24456,14 +24398,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24474,7 +24416,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24482,30 +24424,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24513,30 +24455,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24544,60 +24486,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24606,79 +24548,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24687,7 +24629,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24695,7 +24637,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24705,21 +24647,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24727,7 +24669,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24736,7 +24678,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24746,14 +24688,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24762,28 +24704,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24792,27 +24734,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24822,7 +24764,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24832,13 +24774,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25058,7 +25002,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25066,7 +25010,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25077,15 +25021,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25093,7 +25037,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25101,7 +25045,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25113,43 +25057,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25158,29 +25102,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26546,7 +26498,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26585,11 +26537,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/ru/LC_MESSAGES/messages.po b/locales/ru/LC_MESSAGES/messages.po index 42dd75242..c74a06140 100644 --- a/locales/ru/LC_MESSAGES/messages.po +++ b/locales/ru/LC_MESSAGES/messages.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2025-06-07 08:01+0000\n" "Last-Translator: da070116 \n" "Language-Team: Russian `_." @@ -3491,7 +3504,7 @@ msgstr "" "Python-проекты, использующие семантическое версионирование, должны следовать " "пунктам 1-8 спецификации `Семантическое версионирование 2.0.0 `_." -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -3510,11 +3523,11 @@ msgstr "" "несовместимые изменения API (:doc:`NumPy версионная политика `)." -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "Версионирование календаря" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 #, fuzzy #| msgid "" #| "Semantic versioning is not a suitable choice for all projects, such as " @@ -3531,7 +3544,7 @@ msgstr "" "обесценивания, предусматривающий предупреждения за несколько релизов до " "удаления функции." -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " @@ -3542,7 +3555,7 @@ msgstr "" "версии можно легко определить, насколько устарел базовый набор функций " "конкретного выпуска." -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." @@ -3550,7 +3563,7 @@ msgstr "" "Календарные номера версий обычно имеют вид *год.месяц* (например, 23.12 для " "декабря 2023 года)." -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." @@ -3558,11 +3571,11 @@ msgstr "" ": документ:`Pip `, стандартная программа установки пакетов " "Python, использует календарную версификацию." -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "Другие схемы" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -3576,7 +3589,7 @@ msgstr "" "отслеживать конечному пользователю, поскольку серийные номера версий " "практически не передают информации об обратной совместимости API." -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 #, fuzzy #| msgid "" #| "Combinations of the above schemes are possible. For example, a project " @@ -3597,12 +3610,12 @@ msgstr "" "релиза, но в остальном не обязывает к определенной периодичности выпуска в " "течение года." -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "Идентификаторы локальных версий" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -3619,7 +3632,7 @@ msgstr "" "публикации, или модифицированных вариантов релиза, поддерживаемого " "редистрибьютором." -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -3639,11 +3652,11 @@ msgstr "" "генерирует версию типа \"0.5.dev1+gd00980f\", или, если в репозитории есть " "неотслеживаемые изменения, типа \"0.5.dev1+gd00980f.d20231217\"." -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "Доступ к информации о версии во время выполнения" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -3655,7 +3668,7 @@ msgstr "" "время выполнения с помощью функции :func:`importlib.metadata.version` " "стандартной библиотеки::" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" @@ -3664,7 +3677,7 @@ msgstr "" "уровня :term:`import packages `, предоставляя атрибут " "``__version__`` на уровне пакета::" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " @@ -3674,7 +3687,7 @@ msgstr "" "обеспечить максимально быстрое выполнение запросов версий (например, ``pip " "-V``)." -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -3685,7 +3698,7 @@ msgstr "" "импортного пакетов, могут ознакомиться с обсуждением :ref:`single-source-" "version` для потенциальных подходов к решению этой задачи." -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -3703,7 +3716,7 @@ msgstr "" "зависимостей), или же код запроса должен быть разработан для обработки " "случая, когда атрибут отсутствует [#fallback-to-dist-version]_." -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -3718,7 +3731,7 @@ msgstr "" "стандартной библиотеки предлагает несколько способов доступа к версии " "библиотеки OpenSSL::" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." @@ -3726,7 +3739,7 @@ msgstr "" "Еще несколько примеров необычных номеров версий приведены в `блоговом посте " "<версии-Сет-Ларсон_>`_ Сета Ларсона." -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_, Бретт Кэннон `_. Для юмористического восприятия читайте о ZeroVer_." -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -4115,12 +4128,19 @@ msgid "Build Backend" msgstr "Создание бэкэнда" #: ../source/glossary.rst:17 -msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +#, fuzzy +#| msgid "" +#| "A library that takes a source tree and builds a :term:`source " +#| "distribution ` or :term:`built " +#| "distribution ` from it. The build is delegated to the " +#| "backend by a :term:`frontend `. All backends offer a " +#| "standardized interface." +msgid "" +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" "Библиотека, которая принимает дерево исходных текстов и собирает из него : " "термин:`источник дистрибутива <Источник дистрибутива (или \"sdist\")>` " @@ -4391,11 +4411,17 @@ msgid "SPDX Expression" msgstr "SPDX Экспрессия" #: ../source/glossary.rst:161 +#, fuzzy +#| msgid "" +#| "A string with valid SPDX license expression syntax, including one or more " +#| "SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " +#| "license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, " +#| "``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" "Строка с допустимым синтаксисом выражения лицензий SPDX, включающая один или " "несколько идентификаторов SPDX :term:`License Identifier`\\(s), которые " @@ -4624,13 +4650,22 @@ msgid "Python Packaging Authority (PyPA)" msgstr "Python Управление по упаковке (PyPA)" #: ../source/glossary.rst:287 +#, fuzzy +#| msgid "" +#| "PyPA is a working group that maintains many of the relevant projects in " +#| "Python packaging. They maintain a site at :doc:`pypa.io `, " +#| "host projects on `GitHub `_ and `Bitbucket " +#| "`_, and discuss issues on the `distutils-sig " +#| "mailing list `_ and `the Python Discourse forum `__." msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" "PyPA - это рабочая группа, которая поддерживает множество соответствующих " "проектов по упаковке Python. Они поддерживают сайт по адресу :doc:`pypa.io " @@ -4640,11 +4675,11 @@ msgstr "" "distutils-sig.python.org/>`_ и на форуме Python Discourse `__." -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "Индекс пакетов Python (PyPI)" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " @@ -4654,11 +4689,11 @@ msgstr "" "сообщества Python. Он открыт для всех разработчиков Python для потребления и " "распространения их дистрибутивов." -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "pypi.org" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " @@ -4668,22 +4703,22 @@ msgstr "" "Index (PyPI)`. Он заменил устаревшее доменное имя индекса, " "``pypi.python.org``, в 2017 году. Он работает на базе :ref:`warehouse`." -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "pyproject.toml" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" "Инструмент-агностик:термин: файл спецификации \"Проект\". Определен " "в :pep:`518'." -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "Выпуск" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." @@ -4691,7 +4726,7 @@ msgstr "" "Снимок :term:`Project` в определенный момент времени, обозначаемый " "идентификатором версии." -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -4703,11 +4738,11 @@ msgstr "" "версия 1.0 проекта была выпущена, она может быть доступна как в формате " "распределения источника, так и в формате Windows." -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "Требование" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -4721,11 +4756,11 @@ msgstr "" "которые все могут считаться \"требованием\". Для получения дополнительной " "информации смотрите ссылку :ref:`pip:pip install`." -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "Спецификатор требований" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -4737,11 +4772,11 @@ msgstr "" "specifiers`. Например, \"foo>=1.3\" - это спецификатор требований, где " "\"foo\" - это имя проекта, а часть \">=1.3\" - это :term:`Version Specifier`" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "Требования к файлам" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " @@ -4751,15 +4786,15 @@ msgstr "" "быть установлен с помощью :ref:`pip'. Дополнительные сведения см. " "в :ref:`pip'''' docs on :ref:`pip:Requirements Files`." -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "Каталог корневых лицензий" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "Каталог лицензий" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -4779,17 +4814,17 @@ msgstr "" "директория, к которой относятся пути, записанные в ``License-" "File`` :term:`Core Metadata Field``." -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "setup.py" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "setup.cfg" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." @@ -4797,11 +4832,11 @@ msgstr "" "Файлы спецификаций проекта для:ref:`distutils' и :ref:`setuptools'. См. " "также :term:`pyproject.toml'." -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "Источник Архив" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` " "или :term:`Built Distribution`." -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "Распространение исходных текстов (или \"sdist\")" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -4830,11 +4865,11 @@ msgstr "" "дистрибутива``. Дополнительную информацию смотрите в : ссылка:`Форматы " "пакетов`." -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "Системный пакет" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." @@ -4842,11 +4877,11 @@ msgstr "" "Пакет, предоставляемый в формате, имеющем отношение к операционной системе, " "например, файл rpm или dpkg." -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "Спецификатор версии" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -4860,11 +4895,11 @@ msgstr "" "настоящее время поддерживаются. Поддержка этой спецификации была реализована " "в :ref:`setuptools` v8.0 и :ref:`pip` v6.0." -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "Виртуальная среда" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -4876,15 +4911,15 @@ msgstr "" "системы. Для получения дополнительной информации см. раздел :ref:`Создание и " "использование виртуальных сред`." -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "Формат колеса" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "Колесо" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -4896,11 +4931,11 @@ msgstr "" "distribution-format`. Дополнительную информацию см. в : ссылка:`пакетные " "форматы`. Не путать с его эталонной реализацией, : термин:``Колесо проекта``." -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "Проект Колесо" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." @@ -4908,11 +4943,11 @@ msgstr "" "Эталонная реализация PyPA формата : термин:`Формат колеса`; см. : " "ссылка:`колесо`." -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "Рабочая группа" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -5108,7 +5143,7 @@ msgstr "Описание" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "Примеры" @@ -5514,11 +5549,22 @@ msgstr "" "`Pandas`_." #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 +msgid "``ClickPy``" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:339 +msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 msgid "References" msgstr "Ссылка" -#: ../source/guides/analyzing-pypi-package-downloads.rst:339 +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 msgid "" "`PyPI Download Counts deprecation email `__" @@ -5526,7 +5572,7 @@ msgstr "" "`PyPI Скачать Counts deprecation email `__" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -5989,7 +6035,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" "Однако этот синтаксис немного непрактичен: поскольку имя точки входа, " "которую мы определили выше, не совпадает с именем пакета, нам нужно явно " @@ -6524,7 +6570,7 @@ msgstr "" "unmanageable``." #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 #, fuzzy msgid "``scripts``" msgstr "scripts" @@ -8777,11 +8823,12 @@ msgstr "Примеры лицензирования и пользователь #| "pyproject_config>` and :ref:`flit ` don't " #| "support :pep:`639` yet." msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" "В :pep:`639` указан способ объявления лицензии проекта, пути к файлам " "лицензии и другая юридически необходимая информация. Этот документ призван " @@ -8836,7 +8883,11 @@ msgstr "" "Или, если проект использовал :file:`setup.cfg`, в его таблице ``[metadata]``:" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +#, fuzzy +#| msgid "" +#| "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" "Выходные метаданные Core Metadata для дистрибутивных пакетов будут такими:" @@ -8857,11 +8908,11 @@ msgstr "" "при установке; :file:`/` - корень соответствующего архива, а ``{VERSION}`` - " "версия релиза Setuptools в метаданных ядра." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "Расширенный пример" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " @@ -8871,11 +8922,14 @@ msgstr "" "которые хранятся в каталогах :file:`setuptools/_vendor/` " "и :file:`pkg_resources/_vendor/`; а именно:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" -msgstr "Лицензионные выражения для этих проектов следующие:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +#, fuzzy +#| msgid "Some additional examples of valid ``License-Expression`` values:" +msgid "The appropriate license expressions are:" +msgstr "" +"Некоторые дополнительные примеры допустимых значений ``License-Expression``:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " @@ -8885,7 +8939,7 @@ msgstr "" "так и его вендовые зависимости, будет содержать эти метаданные, объединяя " "все выражения лицензии в одно. Такое выражение может быть следующим:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -8905,7 +8959,7 @@ msgstr "" "заявление об авторских правах Packaging и уведомление о выборе лицензии " "`__." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " @@ -8915,12 +8969,12 @@ msgstr "" "путям в дереве исходных текстов проекта (относительно корня проекта " "и :file:`pyproject.toml`):" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" "Если собрать все это вместе, то наш :file:`pyproject.toml` будет иметь вид:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" @@ -8928,20 +8982,20 @@ msgstr "" "Или же файлы лицензии можно указать явно (пути будут интерпретированы как " "glob-шаблоны):" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" "Если бы наш проект использовал :file:`setup.cfg`, мы могли бы определить это " "в :" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" "При любом из этих подходов выходные метаданные Core Metadata в дистрибутиве " "будут такими:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " @@ -8951,7 +9005,7 @@ msgstr "" "версией выпуска Setuptools, указанной в Core Metadata, файлы лицензий будут " "расположены по путям:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" @@ -8959,7 +9013,7 @@ msgstr "" "В собранном колесе, где :file:`/` является корнем архива, а ``{VERSION}`` - " "предыдущей, файлы лицензии будут храниться по адресу:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " @@ -8969,20 +9023,20 @@ msgstr "" "сайта, а ``{VERSION}`` - предыдущей версией, файлы лицензии будут " "установлены в:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "Примеры выражений" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" "Некоторые дополнительные примеры допустимых значений ``License-Expression``:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "Пользовательские сценарии" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -8996,11 +9050,11 @@ msgstr "" "консультация, и читатели должны проконсультироваться с лицензированным " "юристом в своей юрисдикции, если они не уверены в специфике своей ситуации." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "У меня есть частный пакет, который не будет распространяться" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " @@ -9011,7 +9065,7 @@ msgstr "" "включать официальную лицензию, так что вам не придется делать здесь ничего " "лишнего." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -9025,11 +9079,11 @@ msgstr "" "каталога вашего проекта, который будет автоматически включен средствами " "упаковки." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "Я просто хочу поделиться своими работами без юридических ограничений" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -9046,7 +9100,7 @@ msgstr "" "широко используется и позволяет любому делать с вашей работой все, что он " "захочет (кроме как подать на вас в суд, чего вы, вероятно, тоже не хотите)." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -9060,11 +9114,11 @@ msgstr "" "``[project]`` в ваш :file:`pyproject.toml`, если ваш инструмент упаковки " "поддерживает это, или в его конфигурационный файл/раздел. Все готово!" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "Я хочу распространять свой проект под определенной лицензией" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -9084,7 +9138,7 @@ msgstr "" "ID`` и копируемый текст лицензии на сайтах вроде `ChooseALicense " "`__ или `SPDX `__." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." @@ -9093,11 +9147,11 @@ msgstr "" "добавить файл лицензии за вас, а в будущем, возможно, будут поддерживать и " "выражение." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "Я поддерживаю существующий пакет, который уже лицензирован" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " @@ -9107,7 +9161,17 @@ msgstr "" "будет внести всего пару изменений, чтобы воспользоваться новой " "функциональностью." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 +#, fuzzy +#| msgid "" +#| "In your project config file, enter your license expression under " +#| "``license`` (``[project]`` table in :file:`pyproject.toml`), or the " +#| "equivalent for your packaging tool, and make sure to remove any legacy " +#| "``license`` table subkeys or ``License ::`` classifiers. Your existing " +#| "``license`` value may already be valid as one (e.g. ``MIT``, ``Apache-2.0 " +#| "OR BSD-2-Clause``, etc); otherwise, check the `SPDX license list " +#| "`__ for the identifier that matches the license used in your " +#| "project." msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -9115,7 +9179,7 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" "В конфигурационном файле проекта введите выражение лицензии в ``license`` " "(таблица ``[project]`` в :file:`pyproject.toml`) или эквивалентное выражение " @@ -9126,7 +9190,7 @@ msgstr "" "проверьте список лицензий `__ для идентификатора, который " "соответствует лицензии, используемой в вашем проекте." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " @@ -9136,7 +9200,7 @@ msgstr "" "``[project]`` в :file:`pyproject.toml` или в другом файле конфигурации " "вашего инструмента." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -9155,11 +9219,11 @@ msgstr "" "получения дополнительной информации обратитесь к документации вашего " "средства." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "Мой пакет включает в себя другой код под разными лицензиями" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -9172,14 +9236,23 @@ msgstr "" "построить лицензионное выражение, чтобы описать соответствующие лицензии и " "отношения между ними." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 -msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 +#, fuzzy +#| msgid "" +#| "In short, ``License-1 AND License-2`` mean that *both* licenses apply to " +#| "your project, or parts of it (for example, you included a file under " +#| "another license), and ``License-1 OR License-2`` means that *either* of " +#| "the licenses can be used, at the user's option (for example, you want to " +#| "allow users a choice of multiple licenses). You can use parenthesis " +#| "(``()``) for grouping to form expressions that cover even the most " +#| "complex situations." +msgid "" +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" "Вкратце, ``Лицензия-1 И Лицензия-2`` означает, что *обе* лицензии применимы " "к вашему проекту или его части (например, вы включили файл под другой " @@ -10007,15 +10080,6 @@ msgstr "" "использовать ``python3 -c ''`` для прямого вызова основной точки " "входа приложения." -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" -"За более подробной информацией обратитесь к документации по `pkg_resources " -"`__." - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "Упаковка двоичных расширений" @@ -11035,11 +11099,17 @@ msgid "Legacy namespace packages" msgstr "Унаследованные пакеты пространства имен" #: ../source/guides/packaging-namespace-packages.rst:160 +#, fuzzy +#| msgid "" +#| "These two methods, that were used to create namespace packages prior " +#| "to :pep:`420`, are now considered to be obsolete and should not be used " +#| "unless you need compatibility with packages already using this method. " +#| "Also, :doc:`pkg_resources ` has been deprecated." msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" "Эти два метода, которые использовались для создания пакетов пространства " "имен до появления :pep:`420`, теперь считаются устаревшими и не должны " @@ -11047,7 +11117,7 @@ msgstr "" "использующими этот метод. Кроме того, :doc:`pkg_resources " "` был устаревшим." -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." @@ -11055,7 +11125,7 @@ msgstr "" "Чтобы перенести существующий пакет, необходимо одновременно перенести все " "пакеты, разделяющие это пространство имен." -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -11068,16 +11138,23 @@ msgstr "" "разные методы в разных дистрибутивах, предоставляющих пакеты для одного и " "того же пространства имен." -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "Пакеты пространства имён в стиле pkgutil" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 +#, fuzzy +#| msgid "" +#| "Python 2.3 introduced the :doc:`pkgutil ` module " +#| "and the :py:func:`python:pkgutil.extend_path` function. This can be used " +#| "to declare namespace packages that need to be compatible with both Python " +#| "2.3+ and Python 3. This is the recommended approach for the highest level " +#| "of compatibility." msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" "В Python 2.3 появился модуль :doc:`pkgutil ` и " @@ -11086,7 +11163,7 @@ msgstr "" "Python 2.3+, так и с Python 3. Это рекомендуемый подход для достижения " "максимального уровня совместимости." -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" @@ -11094,16 +11171,16 @@ msgstr "" "Чтобы создать пакет пространства имен в стиле pkgutil, вам нужно " "предоставить файл :file:`__init__.py` для пакета пространства имен:" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" "Файл :file:`__init__.py` для пакета namespace должен содержать следующее:" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -11115,7 +11192,7 @@ msgstr "" "сбою логики пространства имен, и другие подпакеты будут недоступны для " "импорта. Любой дополнительный код в :file:`__init__.py` будет недоступен." -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." @@ -11123,21 +11200,44 @@ msgstr "" "Полный рабочий пример двух пакетов пространства имен в стиле pkgutil можно " "найти в проекте `pkgutil namespace example`_." -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "Пакеты пространства имён в стиле pkg_resources" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +#, fuzzy +#| msgid "" +#| ":doc:`Setuptools ` provides the " +#| "`pkg_resources.declare_namespace`_ function and the " +#| "``namespace_packages`` argument to :func:`~setuptools.setup`. Together " +#| "these can be used to declare namespace packages. While this approach is " +#| "no longer recommended, it is widely present in most existing namespace " +#| "packages. If you are creating a new distribution within an existing " +#| "namespace package that uses this method then it's recommended to continue " +#| "using this as the different methods are not cross-compatible and it's not " +#| "advisable to try to migrate an existing package." +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" ":doc:`Setuptools ` предоставляет функцию " "`pkg_resources.declare_namespace`_ и аргумент " @@ -11150,7 +11250,7 @@ msgstr "" "являются взаимосовместимыми, и не рекомендуется пытаться мигрировать " "существующий пакет." -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" @@ -11158,7 +11258,7 @@ msgstr "" "Чтобы создать пакет пространства имен в стиле pkg_resources, вам нужно " "предоставить файл :file:`__init__.py` для пакета пространства имен:" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" @@ -11166,7 +11266,7 @@ msgstr "" "В некоторых старых рекомендациях в пакете пространства " "имен :file:`__init__.py` рекомендуется следующее:" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -11180,7 +11280,7 @@ msgstr "" "являются кросс-совместимыми. Если наличие setuptools является проблемой, то " "пакет должен просто явно зависеть от setuptools через ``install_requires``." -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" @@ -11189,14 +11289,6 @@ msgstr "" "``namespace_packages`` в :func:`~setuptools.setup` в :file:`setup.py`. " "Например:" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" -"Полный рабочий пример двух пакетов пространства имен в стиле pkg_resources " -"можно найти в проекте `pkg_resources namespace example`_." - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -11683,8 +11775,13 @@ msgstr "" "Windows:" #: ../source/guides/supporting-multiple-python-versions.rst:65 +#, fuzzy +#| msgid "" +#| "`Travis CI `_ provides both a Linux and a macOS " +#| "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 " +#| "bit while the macOS is 10.9.2 at the time of writing." msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -12579,7 +12676,13 @@ msgstr "" "стандартной библиотеки в Python 3.12, хотя он по-прежнему доступен из " "setuptools." -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +#, fuzzy +#| msgid "Building binary extensions" +msgid "Build backends for extension modules" +msgstr "Создание бинарных расширений" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " @@ -12589,7 +12692,7 @@ msgstr "" "использовать систему сборки с поддержкой языка, на котором написано " "расширение, например:" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," @@ -12597,7 +12700,7 @@ msgstr "" ": ссылка:`setuptools` - изначально поддерживает C и C++ (со сторонними " "плагинами для Go и Rust)," -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," @@ -12605,7 +12708,7 @@ msgstr "" ": ссылка:`meson-python` -- C, C++, Fortran, Rust и другие языки, " "поддерживаемые Meson," -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," @@ -12613,15 +12716,15 @@ msgstr "" ": ссылка:`scikit-build-core` -- C, C++, Fortran и другие языки, " "поддерживаемые CMake," -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr ": ссылка:`maturin` - Rust, через Cargo." -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "Распределение зданий" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -12634,7 +12737,7 @@ msgstr "" "сборки, который вы : ссылка:`декларировали ` в :файл:`pyproject.toml`." -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " @@ -12644,7 +12747,7 @@ msgstr "" "bdist_wheel``. Все прямые вызовы : файл:`setup.py` " "являются :ссылка:`утратившими актуальность `." -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " @@ -12655,11 +12758,11 @@ msgstr "" "ссылка:`cibuildwheel` как часть вашей настройки CI для сборки " "распространяемых колес." -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "Загрузка на PyPI" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -12671,7 +12774,7 @@ msgstr "" "Publishing `, который позволяет безопасно загрузить " "пакет в PyPI из CI/CD рабочего процесса без ручной настройки API-токена." -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" @@ -12679,30 +12782,30 @@ msgstr "" "По состоянию на ноябрь 2024 года PyPI поддерживает следующие платформы в " "качестве доверенных поставщиков публикаций:" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "Действия на GitHub (на ``https://github.com``)" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "GitLab CI/CD (на ``https://gitlab.com``)" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "ActiveState" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "Google Cloud" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" "Другой доступный способ - загрузить пакет вручную с помощью : ссылка:`twine`." -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." @@ -12711,11 +12814,11 @@ msgstr "" "Помимо того, что он является : ссылка:`утратившим актуальность `, он еще и небезопасен." -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "Инструменты рабочего процесса" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -12734,31 +12837,31 @@ msgstr "" "для приложений. Часто они вызывают инструменты, упомянутые выше под капотом. " "В алфавитном порядке:" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr ":ссылка:`Flit`," -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr ":ссылка:`Hatch`," -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr ": документ:`nox `," -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr ":ссылка:`PDM`," -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr ":ссылка:`Pipenv`," -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr ":ссылка:`Поэзия`," -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr ": документ:`токсический <токсический:индекс>`." @@ -13032,9 +13135,9 @@ msgid "Basic information" msgstr "Базовая информация" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "``name``" @@ -13073,9 +13176,9 @@ msgstr "" "__sTuFF``." #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -13113,7 +13216,7 @@ msgid "Dependencies and requirements" msgstr "Зависимости и требования" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "``зависимости``/``опциональные-зависимости``" @@ -13153,8 +13256,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "``требуется-python``" @@ -13221,7 +13324,7 @@ msgid "About your project" msgstr "О вашем проекте" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "``авторы``/ ``майнтейнеры``" @@ -13234,8 +13337,8 @@ msgstr "" "электронной почты." #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "``description``" @@ -13251,8 +13354,8 @@ msgstr "" "результатов поиска (`пример `_)." #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "``readme``" @@ -13290,7 +13393,7 @@ msgid "``license`` and ``license-files``" msgstr "``лицензионные файлы``" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -13386,8 +13489,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "``лицензия``" @@ -13431,12 +13534,19 @@ msgstr "" "избегают программ, лицензия которых не утверждена." #: ../source/guides/writing-pyproject-toml.rst:353 -msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +#, fuzzy +#| msgid "" +#| "If your project is licensed with a license that doesn't have an existing " +#| "SPDX identifier, you can create a custom one in format ``LicenseRef-" +#| "[idstring]``. The custom identifiers must follow the SPDX specification, " +#| "`clause 10.1 `_ of the version 2.2 or any later " +#| "compatible one." +msgid "" +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" "Если ваш проект лицензирован по лицензии, для которой не существует " "идентификатора SPDX, вы можете создать собственный идентификатор в формате " @@ -13444,13 +13554,13 @@ msgstr "" "соответствовать спецификации SPDX, `пункт 10.1 `_ версии 2.2 " "или любой более поздней совместимой." -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "``лицензионные файлы``" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." @@ -13458,11 +13568,11 @@ msgstr "" "Это список лицензионных файлов и файлов, содержащих другую юридическую " "информацию, которую вы хотите распространить вместе с пакетом." -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "Шаблоны glob должны соответствовать спецификации:" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." @@ -13470,7 +13580,7 @@ msgstr "" "Буквенно-цифровые символы, знаки подчеркивания (``_``), дефисы (``-``) и " "точки (``.``) будут соответствовать дословно." -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." @@ -13478,11 +13588,11 @@ msgstr "" "Специальные символы: ``*``, ``?``, ``**`` и диапазоны символов: [] " "поддерживаются." -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "Разделителями путей должны быть символы прямой косой черты (``/``)." -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." @@ -13491,15 +13601,15 @@ msgstr "" "содержащей :file:`pyproject.toml`, и поэтому не могут начинаться с символа " "слэша." -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "Индикаторы родительских каталогов (``..``) не должны использоваться." -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "Каждый glob должен соответствовать хотя бы одному файлу." -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." @@ -13508,13 +13618,13 @@ msgstr "" "последовательности символов, не предусмотренные данной спецификацией, " "являются недопустимыми." -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "``ключевые слова``" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." @@ -13522,13 +13632,13 @@ msgstr "" "Это поможет поисковой строке PyPI предлагать ваш проект при поиске по этим " "ключевым словам." -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "`` классификаторы ``" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." @@ -13536,7 +13646,7 @@ msgstr "" "Список классификаторов PyPI, которые применимы к вашему проекту. Проверьте " "`полный список возможностей `_." -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -13550,7 +13660,7 @@ msgstr "" "действительно ограничить, на каких версиях Python может быть установлен " "проект, используйте аргумент :ref:`requires-python`." -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " @@ -13560,13 +13670,13 @@ msgstr "" "классификатор ``Private :: Do Not Upload``. PyPI всегда будет отклонять " "пакеты с классификаторами, начинающимися с ``Private ::``." -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "``urls``" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." @@ -13574,7 +13684,7 @@ msgstr "" "Список URL-адресов, связанных с вашим проектом, отображаемый на левой " "боковой панели страницы проекта PyPI." -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -13586,7 +13696,7 @@ msgstr "" "docs.pypi.org/project_metadata/#project-urls>`_ для обработки URL, " "специфичных для PyPI." -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" @@ -13596,7 +13706,7 @@ msgstr "" "кавычки, например, ``Website = «https://example.com»``, но ``«Официальный " "сайт» = «https://example.com»``." -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " @@ -13606,7 +13716,7 @@ msgstr "" "адресов своих проектов, где это уместно, поскольку потребители метаданных " "(например, индексов пакетов) могут специализировать их представление." -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " @@ -13615,7 +13725,7 @@ msgstr "" "Например, в следующих метаданных ни ``MyHomepage``, ни ``«Download Link»`` " "не являются известными метками, поэтому они будут отображены дословно:" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -13627,11 +13737,11 @@ msgstr "" "представлены с учетом этой семантики (домашняя страница проекта и его " "внешнее место загрузки, соответственно)." -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "Расширенные плагины" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " @@ -13641,17 +13751,17 @@ msgstr "" "можно привести Pytest_ и Pygments_. Чтобы создать такой плагин, нужно " "объявить его в подтаблице ``[project.entry-points]`` следующим образом:" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" "Дополнительную информацию см. в :ref:`Руководство по плагинам `." -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "Полный пример" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " @@ -13661,7 +13771,7 @@ msgstr "" "``requires-python = \"<= 3.10\"``. ``Эта запись в блоге `` содержит некоторую информацию о возможных проблемах." -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -17696,12 +17806,19 @@ msgid "WHEEL is the wheel metadata specific to a build of the package." msgstr "WHEEL - это метаданные колеса, специфичные для сборки пакета." #: ../source/specifications/binary-distribution-format.rst:239 +#, fuzzy +#| msgid "" +#| "RECORD is a list of (almost) all the files in the wheel and their secure " +#| "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " +#| "hash of itself, must include its hash. The hash algorithm must be sha256 " +#| "or better; specifically, md5 and sha1 are not permitted, as signed wheel " +#| "files rely on the strong hashes in RECORD to validate the integrity of " +#| "the archive." msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" "RECORD - это список (почти) всех файлов в колесе и их защищенных хэшей. В " "отличие от PEP 376, каждый файл, кроме RECORD, который не может содержать " @@ -17710,98 +17827,97 @@ msgstr "" "подписанные файлы колеса полагаются на надежные хэши в RECORD для " "подтверждения целостности архива." -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "В архив не включены файлы PEP 376 \"INSTALLER\" и \"REQUESTED\"." -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" -"RECORD.jws используется для цифровых подписей. Он не упоминается в RECORD." - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -"RECORD.p7s разрешен в качестве любезности для тех, кто предпочитает " -"использовать подписи S/MIME для защиты своих колесных файлов. Она не " -"упоминается в RECORD." -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 +#, fuzzy +#| msgid "" +#| "During extraction, wheel installers verify all the hashes in RECORD " +#| "against the file contents. Apart from RECORD and its signatures, " +#| "installation will fail if any file in the archive is not both mentioned " +#| "and correctly hashed in RECORD." msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" "Во время извлечения программа установки колес сверяет все хэши в RECORD с " "содержимым файлов. Помимо RECORD и его сигнатур, установка завершится " "неудачей, если какой-либо файл в архиве не упомянут и не захеширован " "правильно в RECORD." -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 #, fuzzy #| msgid "Project name" msgid "Subdirectory name" msgstr "Название проекта" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 #, fuzzy #| msgid "``license``" msgid "``licenses``" msgstr "``лицензия``" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 #, fuzzy #| msgid "``license-files``" msgid "``license_files``" msgstr "``лицензионные файлы``" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 #, fuzzy #| msgid "``LIB``" msgid "``LICENSES``" msgstr "``LIB``" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "Каталог :file:`.dist-info/licenses/`" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -17815,24 +17931,24 @@ msgstr "" "в полях ``License-File`` в файле :file:`METADATA`` по их соответствующим " "путям относительно каталога :file:`licenses/`." -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 #, fuzzy #| msgid "The :file:`.dist-info/licenses/` directory" msgid "The :file:`.dist-info/sboms/` directory" msgstr "Каталог :file:`.dist-info/licenses/`" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "Директория .data" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " @@ -17842,7 +17958,7 @@ msgstr "" "помещаются в каталог .data, названный так же, как и каталог .dist-info, но с " "расширением .data/::" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " @@ -17852,112 +17968,17 @@ msgstr "" "и прочим из дистрибутива. Во время установки содержимое этих подкаталогов " "переносится на путь назначения." -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "Подписанные файлы колес" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" -"Файлы колес включают расширенную запись RECORD, которая позволяет " -"использовать цифровые подписи. В PEP 376 RECORD изменен, чтобы включать " -"безопасный хэш ``digestname=urlsafe_b64encode_nopad(digest)`` (кодировка " -"urlsafe base64 без задних символов =) в качестве второго столбца вместо " -"md5sum. Хешируются все возможные записи, включая любые сгенерированные " -"файлы, такие как файлы .pyc, но не RECORD, который не может содержать свой " -"собственный хеш. Например::" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" -"Файл(ы) подписи RECORD.jws и RECORD.p7s вообще не упоминаются в RECORD, " -"поскольку они могут быть добавлены только после создания RECORD. Все " -"остальные файлы в архиве должны иметь правильный хэш в RECORD, иначе " -"установка завершится неудачей." - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" -"Если используются веб-подписи JSON, одна или несколько подписей JSON Web " -"Signature JSON Serialization (JWS-JS) хранятся в файле RECORD.jws, " -"примыкающем к RECORD. JWS используется для подписи RECORD путем включения " -"SHA-256 хэша RECORD в качестве полезной нагрузки JSON подписи:" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "(Хеш-значение имеет тот же формат, что и в RECORD)" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" -"Если используется файл RECORD.p7s, он должен содержать отделенную подпись " -"RECORD в формате S/MIME." - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" -"Программа установки колеса не обязана понимать цифровые подписи, но ДОЛЖНА " -"проверять хэши в RECORD по содержимому извлеченного файла. Когда программа " -"установки сверяет хэши файлов с RECORD, отдельному средству проверки подписи " -"достаточно убедиться, что RECORD соответствует подписи." - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "Смотрите" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "https://datatracker.ietf.org/doc/html/rfc7515" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "https://datatracker.ietf.org/doc/html/rfc7517" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "ЧаВо" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" "Wheel определяет каталог .data. Должен ли я поместить туда все свои данные?" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -17973,62 +17994,11 @@ msgstr "" "если *эти* файлы обычно не будут распространяться в директории *wheel'а* " "``.data``." -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "Почему колесо включает в себя прикрепленные подписи?" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" -"Прикрепленные подписи более удобны, чем отсоединенные, поскольку они " -"путешествуют вместе с архивом. Поскольку подписываются только отдельные " -"файлы, архив можно перекомпрессировать, не аннулируя подпись, или проверить " -"отдельные файлы без необходимости загружать весь архив." - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "Почему колесо разрешает подписи JWS?" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" -"Спецификации JOSE, частью которых является JWS, разработаны для простоты " -"реализации, что также является одной из основных целей дизайна Wheel. JWS " -"представляет собой полезную и лаконичную реализацию на чистом Python." - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "Почему wheel также позволяет использовать подписи S/MIME?" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" -"Подписи S/MIME разрешены для пользователей, которым необходимо или хочется " -"использовать существующую инфраструктуру открытых ключей с помощью колеса." - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" -"Подписанные пакеты являются лишь базовым элементом системы безопасного " -"обновления пакетов. Wheel предоставляет только строительный блок." - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "Как обстоят дела с \"purelib\" и \"platlib\"?" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -18040,7 +18010,7 @@ msgstr "" "usr/lib/pythonX.Y/site-packages', а платформозависимые пакеты - в '/usr/" "lib64/pythonX.Y/site-packages'." -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -18052,7 +18022,7 @@ msgstr "" "теми же файлами в корне, и законно иметь файлы как в категории \"purelib\", " "так и в категории \"platlib\"." -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " @@ -18063,11 +18033,11 @@ msgstr "" "должны находиться в корне с соответствующей настройкой для \"Root-is-" "purelib\"." -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "Можно ли импортировать код Python непосредственно из файла wheel?" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -18081,7 +18051,7 @@ msgstr "" "Однако, хотя такое поведение является естественным следствием дизайна " "формата, полагаться на него, как правило, не рекомендуется." -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -18100,7 +18070,7 @@ msgstr "" "безопасности, или полная интеграция со стандартным механизмом сборки для C-" "расширений путем публикации заголовочных файлов в соответствующем месте)." -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -18133,7 +18103,7 @@ msgstr "" "взаимодействие с внешними компонентами все равно может потребовать наличия " "реального файла на диске." -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -18147,7 +18117,7 @@ msgstr "" "имейте в виду, что многие проекты потребуют воспроизвести сбой с полностью " "установленным пакетом, прежде чем принять его за настоящую ошибку." -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -18159,20 +18129,20 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "История" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "Февраль 2013 г: Эта спецификация была одобрена через :pep:`427`." -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." @@ -18181,7 +18151,7 @@ msgstr "" "пересмотрены, чтобы привести их в соответствие с тем, что на самом деле " "делают популярные инструменты." -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -18193,7 +18163,7 @@ msgstr "" "симлинками или подкаталогами в этой папке формально не определено, и поэтому " "может отличаться для разных инструментов)." -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " @@ -18202,7 +18172,7 @@ msgstr "" "Декабрь 2024 года: Каталог :file:`.dist-info/licenses/` был указан " "через :pep:`639`." -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." @@ -18210,11 +18180,15 @@ msgstr "" "Январь 2025 года: Уточнено, что имя и версия должны быть нормализованы для " "директорий ``.dist-info`` и ``.data``." -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "Приложение" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "Пример реализации urlsafe-base64-nopad::" @@ -19048,12 +19022,20 @@ msgstr "" "«2.2», «2.3» и «2.4»." #: ../source/specifications/core-metadata.rst:55 -msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +#, fuzzy +#| msgid "" +#| "Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " +#| "greater than the highest version they support, and MUST fail if " +#| "``metadata_version`` has a greater major version than the highest version " +#| "they support (as described in the :ref:`Version specifier specification " +#| "`, the major version is the value before the first " +#| "dot)." +msgid "" +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" "Автоматизированные инструменты, потребляющие метаданные, ДОЛЖНЫ " "предупреждать, если ``metadata_version`` больше, чем самая высокая " @@ -21499,7 +21481,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" @@ -21507,11 +21495,11 @@ msgstr "" "pip, рекомендуемая программа установки пакетов Python (http://" "pip.readthedocs.org/en/stable/)" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "Библиотека PEG Петрушка. (https://pypi.python.org/pypi/parsley/)" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -24348,7 +24336,7 @@ msgid "" msgstr "Ниже приведен пример чтения потока произвольных блоков метаданных." #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "Рекомендации" @@ -27179,10 +27167,22 @@ msgstr "" "загружаете пакет с помощью :ref:`twine` или :ref:`flit`." #: ../source/specifications/pypirc.rst:13 +#, fuzzy +#| msgid "The :file:`.pypirc` file" +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "Файл :file:`.pypirc`" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "Формат (первоначально определенный пакетом :ref:`distutils`) таков:" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." @@ -27190,26 +27190,26 @@ msgstr "" "Раздел ``distutils`` определяет поле ``index-servers``, в котором " "перечислены имена всех разделов, описывающих репозиторий." -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "В каждом разделе, описывающем хранилище, определены три поля:" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "``репозиторий``: URL-адрес репозитория." -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" "``имя пользователя``: Зарегистрированное имя пользователя в репозитории." -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" "``пароль``: Пароль, который будет использоваться для аутентификации имени " "пользователя." -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " @@ -27219,7 +27219,7 @@ msgstr "" "Для большей безопасности воспользуйтесь альтернативой вроде `keyring`_, " "установите переменные окружения или введите пароль в командной строке." -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" @@ -27228,11 +27228,11 @@ msgstr "" "могли просматривать или изменять его. Например, в Linux или macOS выполните " "команду:" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "Общие конфигурации" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " @@ -27243,7 +27243,7 @@ msgstr "" "более подробной информацией и инструкциями по использованию обращайтесь к " "документации каждого проекта." -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" @@ -27251,7 +27251,7 @@ msgstr "" "Конфигурация Twine по умолчанию имитирует файл :file:`.pypirc` с разделами " "репозитория для PyPI и TestPyPI:" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." @@ -27259,11 +27259,11 @@ msgstr "" "Twine добавит к этой конфигурации по умолчанию дополнительные настройки " "из :file:`$HOME/.pypirc`, командной строки и переменных окружения." -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "Использование токена PyPI" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" @@ -27271,7 +27271,7 @@ msgstr "" "Чтобы установить свой `API-токен`_ для PyPI, вы можете " "создать :file:`$HOME/.pypirc`, подобный этому:" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." @@ -27279,11 +27279,11 @@ msgstr "" "Для :ref:`TestPyPI `, добавьте секцию ``[testpypi]``, " "используя API-токен от вашего аккаунта TestPyPI." -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "Использование индекса другого пакета" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " @@ -27293,7 +27293,7 @@ msgstr "" "``index-servers``, включив в него имя репозитория. Вот полный " "пример :file:`$HOME/.pypirc` для PyPI, TestPyPI и частного репозитория:" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -27323,11 +27323,6 @@ msgstr "" "инструментов, связанных с упаковкой (а также других инструментов)." #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" -"Эта спецификация была первоначально определена в :pep:`518` и :pep:`621`." - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" @@ -27377,7 +27372,7 @@ msgstr "" "Пример таблицы ``[build-system]`` для проекта, собранного с помощью " "``setuptools``:" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." @@ -27386,7 +27381,7 @@ msgstr "" "пример конфигурационного файла в качестве семантики по умолчанию, если файл " "``pyproject.toml`` отсутствует." -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -27405,7 +27400,7 @@ msgstr "" "но в ней отсутствуют необходимые поля, то инструмент должен считать это " "ошибкой." -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -27413,7 +27408,7 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " @@ -27423,18 +27418,18 @@ msgstr "" "TOML только для иллюстрации, следующая `JSON Schema `_ будет соответствовать формату данных:" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "Объявление метаданных проекта: таблица ``[project]``" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" "Таблица ``[project]`` определяет метаданные ядра проекта `." -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -27451,7 +27446,7 @@ msgstr "" "``dynamic`` (определяется позже в этой спецификации) и представляют собой " "метаданные, которые инструмент предоставит позже." -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." @@ -27459,12 +27454,12 @@ msgstr "" "Отсутствие таблицы ``[project]`` неявно означает, что :term:`build backend " "` будет динамически предоставлять все ключи." -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" "Единственными ключами, которые должны быть определены статически, являются:" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" @@ -27472,7 +27467,7 @@ msgstr "" "Ключи, которые являются обязательными, но могут быть указаны либо " "статически, либо как динамические, следующие:" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." @@ -27480,60 +27475,60 @@ msgstr "" "Все остальные ключи считаются необязательными и могут быть указаны " "статически, перечислены как динамические или не указаны." -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "Полный список ключей, допустимых в таблице ``[project]``, таков:" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "``авторы``" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "``зависимости``" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "``динамический``" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "``точки входа``" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "``gui-скрипт``" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 #, fuzzy #| msgid "``name``" msgid "``import-names``" msgstr "``name``" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "``мастера``" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "``опциональные зависимости``" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "Тип TOML_: строка" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" @@ -27541,11 +27536,11 @@ msgstr "" "Соответствующее поле :ref:`core metadata `: :ref:`Name `" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "Название проекта." -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." @@ -27553,7 +27548,7 @@ msgstr "" "Инструменты ДОЛЖНЫ :ref:`нормализовать <имя-нормализация>` это имя, как " "только оно будет прочитано для внутренней согласованности." -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" @@ -27561,7 +27556,7 @@ msgstr "" "Соответствующее поле :ref:`core metadata `: :ref:`Version " "`" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." @@ -27569,11 +27564,11 @@ msgstr "" "Версия проекта, как определено в спецификации спецификатора версии `." -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "Пользователи ДОЛЖНЫ предпочитать указывать уже нормализованные версии." -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" @@ -27581,7 +27576,7 @@ msgstr "" "Соответствующее поле :ref:`core metadata `: :ref:`Summary " "`" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." @@ -27589,11 +27584,11 @@ msgstr "" "Краткое описание проекта в одной строке. Инструменты MAY ошибаются, если оно " "включает несколько строк." -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "Тип TOML_: строка или таблица" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type ` и :ref:`Description-Content-Type `" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "Полное описание проекта (то есть README)." -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -27631,7 +27626,7 @@ msgstr "" "указывая этот ключ как ``динамический``. Для всех нераспознанных суффиксов, " "когда тип содержимого не указан, инструменты ДОЛЖНЫ выдавать ошибку." -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -27646,7 +27641,7 @@ msgstr "" "взаимоисключающими, поэтому инструменты ДОЛЖНЫ выдавать ошибку, если в " "метаданных указаны оба ключа." -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -27668,7 +27663,7 @@ msgstr "" "противном случае инструменты ДОЛЖНЫ выдавать ошибку о неподдерживаемых типах " "содержимого." -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" @@ -27676,11 +27671,11 @@ msgstr "" "Соответствующее поле :ref:`core metadata `: :ref:`Requires-" "Python `" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "Требования к версии Python для проекта." -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" @@ -27688,7 +27683,7 @@ msgstr "" "Соответствующее поле :ref:`core metadata `: :ref:`License-" "Expression `." -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 #, fuzzy #| msgid "" #| "Text string that is a valid SPDX license expression as defined " @@ -27703,7 +27698,7 @@ msgstr "" "как определено в :pep:`639`. Инструменты ДОЛЖНЫ проверять и выполнять " "нормализацию регистра выражения." -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -27712,17 +27707,17 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 #, fuzzy #| msgid "PyPA specifications" msgid "Legacy specification" msgstr "Спецификации PyPA" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "TOML_ тип: таблица" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 #, fuzzy #| msgid "" #| "Corresponding :ref:`core metadata ` field: :ref:`License-" @@ -27734,7 +27729,7 @@ msgstr "" "Соответствующее поле :ref:`core metadata `: :ref:`License-" "File `" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 #, fuzzy #| msgid "" #| "The table may have one of two keys. The ``file`` key has a string value " @@ -27759,20 +27754,20 @@ msgstr "" "взаимоисключающими, поэтому инструмент ДОЛЖЕН выдать ошибку, если в " "метаданных указаны оба ключа." -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "Тип TOML_: массив строк" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" @@ -27780,7 +27775,7 @@ msgstr "" "Соответствующее поле :ref:`core metadata `: :ref:`License-" "File `" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -27795,7 +27790,7 @@ msgstr "" "лицензиями и другими юридическими уведомлениями, которые будут " "распространяться вместе с пакетом." -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 #, fuzzy #| msgid "The strings MUST contain valid glob patterns, as specified below:" msgid "" @@ -27803,7 +27798,7 @@ msgid "" "specifications/glob-patterns`." msgstr "Строки ДОЛЖНЫ содержать правильные шаблоны glob, как указано ниже:" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 #, fuzzy #| msgid "" #| "Patterns are relative to the directory containing :file:`pyproject.toml`, " @@ -27815,7 +27810,7 @@ msgstr "" "содержащей :file:`pyproject.toml`, и поэтому не могут начинаться с символа " "слэша." -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." @@ -27824,11 +27819,11 @@ msgstr "" "правильным текстом в кодировке UTF-8, и ДОЛЖНЫ проверять его и выдавать " "ошибку, если это не так." -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "Сборка инструментов:" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." @@ -27836,7 +27831,7 @@ msgstr "" "ОБЯЗАТЕЛЬНО включите все файлы, соответствующие перечисленному шаблону, во " "все архивы дистрибутива." -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." @@ -27844,7 +27839,7 @@ msgstr "" "ДОЛЖЕН перечислить каждый совпадающий путь к файлу в поле License-File в " "основных метаданных." -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -27859,11 +27854,11 @@ msgstr "" "включать никаких файлов или использовать собственную логику для обнаружения " "соответствующих файлов в дистрибутиве." -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "TOML_ type: Массив строчных таблиц со строковыми ключами и значениями" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `, :ref:`Maintainer `, и :ref:`Maintainer-" "email `" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " @@ -27885,7 +27880,7 @@ msgstr "" "открыто для интерпретации - это может быть список оригинальных или основных " "авторов, текущих сопровождающих или владельцев пакета." -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." @@ -27893,7 +27888,7 @@ msgstr "" "Ключ \"maintainers\" похож на \"authors\" тем, что его точное значение можно " "интерпретировать." -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -27908,14 +27903,14 @@ msgstr "" "``email`` ДОЛЖНО быть действительным адресом электронной почты. Оба ключа " "необязательны, но хотя бы один из них должен быть указан в таблице." -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" "Использование данных для заполнения :ref:`core metadata ` " "осуществляется следующим образом:" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." @@ -27924,7 +27919,7 @@ msgstr "" "metadata-author>` или :ref:`Maintainer ` в " "зависимости от ситуации." -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` или :ref:`Maintainer-email ` в зависимости от ситуации." -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` в зависимости от ситуации, с форматом ``{name} " "<{email}>```." -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "Несколько значений должны быть разделены запятыми." -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" @@ -27957,11 +27952,11 @@ msgstr "" "Соответствующее поле :ref:`core metadata `: :ref:`Keywords " "`" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "Ключевые слова для проекта." -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" @@ -27969,11 +27964,11 @@ msgstr "" "Соответствующее поле :ref:`core metadata `: :ref:`Classifier " "`" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "Классификаторы Trove, применимые к проекту." -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -27986,11 +27981,11 @@ msgstr "" "``license`` (перевод в поле метаданных ``License-Expression``), так и " "классификаторы ``License ::``." -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "Тип TOML_: таблица с ключами и значениями строк" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" @@ -27998,7 +27993,7 @@ msgstr "" "Соответствующее поле :ref:`core metadata `: :ref:`Project-URL " "`" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" @@ -28008,11 +28003,11 @@ msgstr "" "См. :ref:`well-known-project-urls` для правил нормализации и общеизвестных " "правил при обработке метаданных для представления." -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "Точки входа" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" @@ -28020,11 +28015,11 @@ msgstr "" "Тип TOML_: таблица (``[project.scripts]``, ``[project.gui-scripts]``, и " "``[project.entry-points]``)" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr ":ref:`Спецификация точек входа `" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -28036,7 +28031,7 @@ msgstr "" "в :ref:`спецификации точек входа `. Ключом таблицы является " "имя точки входа, а значением - ссылка на объект." -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " @@ -28046,7 +28041,7 @@ msgstr "" "спецификации точек входа `. Ее формат такой же, как и у " "``[project.scripts]``." -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -28059,7 +28054,7 @@ msgstr "" "создавать вложенные подтаблицы, а должны ограничиваться группами точек входа " "только одного уровня." -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -28072,7 +28067,7 @@ msgstr "" "перед лицом ``[project.scripts]`` и ``[project.gui-scripts]``, " "соответственно." -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" @@ -28080,7 +28075,7 @@ msgstr "" "Тип TOML_: Массив строк :pep:`508` (``зависимости``), и таблица со " "значениями массивов строк :pep:`508` (``опциональные-зависимости``)" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra ` и :ref:`Provides-Extra `" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "Зависимости проекта (необязательно)." -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -28106,7 +28101,7 @@ msgstr "" "как корректная строка :pep:`508`. Каждая строка сопоставляется " "непосредственно с записью :ref:`Requires-Dist `." -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -28125,7 +28120,7 @@ msgstr "" "для соответствующего метаданного :ref:`Provides-Extra `." -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 #, fuzzy #| msgid "" #| "Corresponding :ref:`core metadata ` field: :ref:`Name " @@ -28137,7 +28132,7 @@ msgstr "" "Соответствующее поле :ref:`core metadata `: :ref:`Name `" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -28146,7 +28141,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -28161,32 +28156,32 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "Примеры:" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 #, fuzzy #| msgid "" #| "Corresponding :ref:`core metadata ` field: :ref:`Name " @@ -28198,7 +28193,7 @@ msgstr "" "Соответствующее поле :ref:`core metadata `: :ref:`Name `" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -28208,7 +28203,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -28216,7 +28211,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -28224,17 +28219,17 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 #, fuzzy #| msgid "Example::" msgid "Example:" msgstr "Пример::" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "Тип TOML_: массив строк" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" @@ -28242,7 +28237,7 @@ msgstr "" "Соответствующее поле :ref:`core metadata `: :ref:`Dynamic " "`" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -28255,7 +28250,7 @@ msgstr "" "определены и, как ожидается, останутся неопределенными по сравнению с тем, " "что будет предоставлено с помощью инструментов позже." -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." @@ -28263,7 +28258,7 @@ msgstr "" "Бэкэнд сборки ДОЛЖЕН почитать статически заданные метаданные (это означает, " "что в метаданных не указан ключ в ``динамическом``)." -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." @@ -28271,7 +28266,7 @@ msgstr "" "Внутренний модуль сборки ДОЛЖЕН выдать ошибку, если в метаданных указано " "``имя`` в ``dynamic``." -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -28285,7 +28280,7 @@ msgstr "" "случае, т.е. не должно быть возможности, чтобы требуемый ключ не был как-то " "указан в таблице ``[project]``)." -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " @@ -28295,7 +28290,7 @@ msgstr "" "\"Optional\", метаданные МОГУТ указывать его в ``dynamic``, если " "предполагается, что сборка бэкенда предоставит данные для ключа позже." -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." @@ -28303,7 +28298,7 @@ msgstr "" "Внутренние компоненты сборки ДОЛЖНЫ выдать ошибку, если метаданные указывают " "ключ статически, а также перечислены в ``динамических``." -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -28315,7 +28310,7 @@ msgstr "" "это единственный способ позволить инструменту заполнить метаданные, и " "пользователь должен согласиться на заполнение)." -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " @@ -28325,11 +28320,11 @@ msgstr "" "``dynamic``, но бэкэнд сборки не смог определить данные для него (опускание " "данных, если определено, что это точное значение, допустимо)." -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "Произвольная конфигурация инструментов: таблица ``[tool]``" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -28342,7 +28337,7 @@ msgstr "" "``[tool]``, например, инструмент `flit `_ " "будет хранить свою конфигурацию в ``[tool.flit]``." -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -28355,7 +28350,7 @@ msgstr "" "может использовать подтаблицу ``tool.$NAME`` тогда и только тогда, когда он " "владеет записью для ``$NAME`` в Cheeseshop/PyPI." -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " @@ -28365,7 +28360,7 @@ msgstr "" "только ``[build-system]``, содержащую ключ ``requires`` и таблицу " "``[tool]``, была одобрена через :pep:`518``." -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." @@ -28373,7 +28368,7 @@ msgstr "" "Ноябрь 2020 года: Спецификация таблицы ``[проект]`` была утверждена " "через :pep:`621``." -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." @@ -28382,13 +28377,13 @@ msgstr "" "files`` был добавлен, а классификаторы ``License::`` были устаревшими " "через :pep:`639`." -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -29589,7 +29584,7 @@ msgstr "" "отображать эту строку для конечных пользователей." #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -29635,7 +29630,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -29956,7 +29951,7 @@ msgstr "" "проекта." #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." @@ -29965,7 +29960,7 @@ msgstr "" "сериализация_>`__." #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "В качестве примера:" @@ -30014,8 +30009,11 @@ msgstr "" "будет иметь URL типа ``/глупый_ход/``." #: ../source/specifications/simple-repository-api.rst:480 +#, fuzzy +#| msgid "" +#| "This URL must respond with a JSON encoded dictionary that has four keys:" msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" "В ответ на этот URL должен прийти словарь в кодировке JSON, состоящий из " "четырех ключей:" @@ -30025,43 +30023,45 @@ msgid "``name``: The normalized name of the project." msgstr "``название``: Нормализованное имя проекта." #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." -msgstr "" -"``файлы``: Список словарей, каждый из которых представляет отдельный файл." - -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 +#: ../source/specifications/simple-repository-api.rst:494 #, fuzzy #| msgid "The ``versions`` key was added with API version 1.1." -msgid "The ``project-status`` key was added with API version 1.4." +msgid "The ``status`` key was added with API version 1.4." msgstr "Ключ ``версии`` был добавлен в API версии 1.1." -#: ../source/specifications/simple-repository-api.rst:500 +#: ../source/specifications/simple-repository-api.rst:496 msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" +#: ../source/specifications/simple-repository-api.rst:501 +#, fuzzy +#| msgid "The ``versions`` key was added with API version 1.1." +msgid "The ``reason`` key was added with API version 1.4." +msgstr "Ключ ``версии`` был добавлен в API версии 1.1." + #: ../source/specifications/simple-repository-api.rst:505 #, fuzzy #| msgid "The ``versions`` key was added with API version 1.1." -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "Ключ ``версии`` был добавлен в API версии 1.1." #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" +"``файлы``: Список словарей, каждый из которых представляет отдельный файл." + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " @@ -30072,7 +30072,7 @@ msgstr "" "множеством, и поэтому не может содержать дубликатов, а порядок версий не " "имеет значения." -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -30084,7 +30084,7 @@ msgstr "" "ассоциированных файлов (для представления версий без загруженных файлов, " "если сервер имеет такую концепцию)." -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -30099,23 +30099,23 @@ msgstr "" "упорядочены с использованием правил VSS. Тем не менее, серверы **ДОЛЖНЫ** " "использовать нормализованные версии VSS, где это возможно." -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "Ключ ``версии`` был добавлен в API версии 1.1." -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "Каждый отдельный словарь файлов имеет следующие ключи:" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "``имя файла``: Имя представляемого файла." -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "``url``: URL, с которого может быть получен файл." -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -30129,7 +30129,7 @@ msgstr "" "вообще ничего). Имена хэшей **ОБЯЗАТЕЛЬНО** всегда должны быть приведены к " "нижнему регистру." -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " @@ -30139,7 +30139,7 @@ msgstr "" "однако **НАСТОЯТЕЛЬНО** рекомендуется всегда включать хотя бы один " "безопасный, гарантированно доступный хэш." -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -30156,7 +30156,7 @@ msgstr "" "быть включен. На момент создания данной спецификации рекомендуется " "использовать ``sha256``." -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -30168,7 +30168,7 @@ msgstr "" "инструменты установки **ДОЛЖНЫ** игнорировать загрузку при установке на " "версию Python, которая не удовлетворяет этому требованию." -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " @@ -30178,7 +30178,7 @@ msgstr "" "HTML API ``, ключ ``запросы-python`` не требует " "никакого специального экранирования, кроме того, что JSON делает естественно." -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -30195,7 +30195,7 @@ msgstr "" "либо словарем, отображающим имена хэшей на шестнадцатеричный дайджест хэша " "метаданных." -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " @@ -30204,7 +30204,7 @@ msgstr "" "Если это словарь хэшей, а не булевых значений, то все те же требования и " "рекомендации, что и для ключа ``хэши``, справедливы и для этого ключа." -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " @@ -30214,7 +30214,7 @@ msgstr "" "не существовать. Если значение ключа истинно, то файл метаданных " "присутствует, а если ложно, то нет." -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." @@ -30222,7 +30222,7 @@ msgstr "" "Рекомендуется, чтобы серверы по возможности предоставляли хэши файлов " "метаданных." -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." @@ -30230,7 +30230,7 @@ msgstr "" "``dist-info-metadata``: **опциональный**, устаревший псевдоним для ``core-" "metadata``." -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." @@ -30238,7 +30238,7 @@ msgstr "" "Индексные клиенты **МОГУТ** использовать этот ключ, если он присутствует, в " "качестве традиционного запасного варианта для ``ядра-метаданных``." -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." @@ -30246,7 +30246,7 @@ msgstr "" "``dist-info-metadata`` был стандартизирован в :pep:`658` и переименован в " "``core-metadata`` в :pep:`714`." -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -30261,7 +30261,7 @@ msgstr "" "Если этот ключ не существует, то подпись может существовать, а может и не " "существовать." -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 #, fuzzy #| msgid "" #| "``yanked``: An **optional** key which may be either a boolean to indicate " @@ -30287,7 +30287,7 @@ msgstr "" "``url``, был \"Yanked\" согласно : ссылка:спецификации API yank <простой " "репозиторий-апи-yank>`." -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." @@ -30295,11 +30295,11 @@ msgstr "" "``размер``: **обязательный** ключ. Он **ДОЛЖЕН** содержать целое число, " "которое представляет собой размер файла в байтах." -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "Ключ ``размер`` был добавлен в API версии 1.1." -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -30311,7 +30311,7 @@ msgstr "" "``yyyy-mm-ddThh:mm:ss.ffffffZ``, которая представляет время, когда файл был " "загружен в индекс." -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -30325,11 +30325,11 @@ msgstr "" "точности. Если сервер не записывает информацию о времени загрузки файла, он " "**МОЖЕТ** опустить ключ ``upload-time``." -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "Ключ ``время загрузки`` был добавлен в API версии 1.1." -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -30342,11 +30342,11 @@ msgstr "" "правилам, что и ``data-provenance`` в спецификации HTML API ` в :ref:`base HTML API`." -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "Поле ``provenance`` было добавлено в API версии 1.3." -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -30434,11 +30434,11 @@ msgstr "" "далее определяет ``текст/html`` как псевдоним для типа содержимого " "``приложение/vnd.pypi. простой.v1+html``." -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "Выбор версии + формата" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -30452,7 +30452,7 @@ msgstr "" "новая основная версия API могла быть добавлена без нарушения работы " "существующих клиентов, ожидающих предыдущую версию API." -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" @@ -30470,7 +30470,7 @@ msgstr "" "Хотя эта спецификация не может полностью описать всю процедуру согласования " "содержимого на сервере, ее суть примерно такова:" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." @@ -30478,7 +30478,7 @@ msgstr "" "Клиент отправляет HTTP-запрос, содержащий заголовок ``Принять``, в котором " "перечислены все типы содержимого версии+формата, которые он способен понять." -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " @@ -30488,7 +30488,7 @@ msgstr "" "содержимого, затем возвращает ответ, используя этот тип содержимого " "(рассматривая отсутствие заголовка ``принять`` как ``принять: */*``)." -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " @@ -30497,7 +30497,7 @@ msgstr "" "Если сервер не поддерживает ни один из типов содержимого в заголовке " "``принять``, он может выбрать один из 3 вариантов ответа:" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." @@ -30505,7 +30505,7 @@ msgstr "" "Выберите тип содержимого по умолчанию, отличный от того, что запросил " "клиент, и верните ответ с этим типом." -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " @@ -30515,7 +30515,7 @@ msgstr "" "запрошенных типов содержимого не был доступен, и сервер не смог или не " "захотел выбрать тип содержимого по умолчанию для ответа." -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." @@ -30523,7 +30523,7 @@ msgstr "" "Возвращает ответ HTTP ``300 Множество вариантов``, содержащий список всех " "возможных ответов, которые могли быть выбраны." -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." @@ -30531,7 +30531,7 @@ msgstr "" "Клиент интерпретирует ответ, обрабатывая различные типы ответов, которые мог " "дать сервер." -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -30543,7 +30543,7 @@ msgstr "" "**ДОЛЖНЫ** быть готовы обрабатывать все возможные ответы тем способом, " "который наиболее удобен для них." -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -30561,7 +30561,7 @@ msgstr "" "случае, так что в лучшем случае этот ответ будет рассматриваться так же, как " "и ошибка ``406 не принято``." -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -30575,7 +30575,7 @@ msgstr "" "vnd.pypi.simple.latest+json``, который возвращает ответ ``v1.x'', должен " "иметь ``Content-Type`` из ``application/vnd.pypi.simple.v1+json``)." -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " @@ -30585,19 +30585,19 @@ msgstr "" "содержимого, которые клиент понимает и может обрабатывать. Он поддерживает " "три различных формата для каждого запрашиваемого типа содержимого:" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "``$тип/$подтип``" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "``$тип/*``" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "``*/*``" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " @@ -30607,7 +30607,7 @@ msgstr "" "$подтип``, поскольку это единственный способ действительно указать нужную " "версию и формат." -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -30623,7 +30623,7 @@ msgstr "" "синтаксис ``принять`` в заголовке ``значение качества `_." -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -30639,7 +30639,7 @@ msgstr "" "более низким качеством, и любая запись без присутствующего качества будет по " "умолчанию иметь качество ``1``." -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -30650,7 +30650,7 @@ msgstr "" "запрошенных ими типов содержимого, независимо от их приоритета, и даже может " "вернуть тип содержимого, который они **не* запрашивали." -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -30669,11 +30669,11 @@ msgstr "" "_internal/index/collector.py#L123-L150>`_, так что риск реальных поломок " "невелик." -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "Пример работы клиента может выглядеть следующим образом:" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " @@ -30683,11 +30683,11 @@ msgstr "" "удалит типы контента, которые ему не нужны, из заголовка ``принять``, и " "превратит их получение в ошибку." -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "Альтернативные механизмы переговоров" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -30702,11 +30702,11 @@ msgstr "" "предусмотрены альтернативные механизмы согласования, которые могут " "*факультативно* использоваться вместо него." -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "Параметр URL" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " @@ -30715,7 +30715,7 @@ msgstr "" "Серверы, реализующие Simple API, могут поддерживать параметр URL с именем " "``формат``, чтобы позволить клиентам запрашивать определенную версию URL." -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " @@ -30725,7 +30725,7 @@ msgstr "" "содержимого. Передача нескольких типов содержимого, подстановочных карт, " "качественных значений и т. д. **не поддерживается." -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -30738,7 +30738,7 @@ msgstr "" "документации или примечаниях можно было ссылаться на конкретную " "версию+формат." -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." @@ -30746,7 +30746,7 @@ msgstr "" "Серверы, не поддерживающие этот параметр, могут возвращать ошибку при его " "наличии или просто игнорировать его присутствие." -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -30763,11 +30763,11 @@ msgstr "" "Недоступен``, ``303 Несколько вариантов`` или выбор типа по умолчанию для " "возврата)." -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "Конфигурация конечной точки" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " @@ -30778,7 +30778,7 @@ msgstr "" "серверам выбирать, какой из доступных типов содержимого является их типом по " "умолчанию." -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -30790,7 +30790,7 @@ msgstr "" "свой клиент для выбора нужной им версии, то такая конфигурация " "поддерживается." -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -30807,7 +30807,7 @@ msgstr "" "``Принять``, сервер может проигнорировать его и вернуть тип содержимого, " "соответствующий данной конечной точке." -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -30819,7 +30819,7 @@ msgstr "" "репозитория, и при запросе к этому серверу выдавать заголовок ``Принять``, " "который *только* включает правильный тип содержимого." -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -30831,7 +30831,7 @@ msgstr "" "реализации этой спецификации, но он **не** представляет собой никаких " "требований по соответствию этим решениям." -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -30845,11 +30845,11 @@ msgstr "" "использование API обеспечивало защитные ограждения, которые пытаются " "подтолкнуть клиента к наилучшему выбору." -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "Рекомендуется использовать серверы:" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " @@ -30860,7 +30860,7 @@ msgstr "" "крайней мере, пока они получают нетривиальный трафик, использующий ответы " "HTML." -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -30871,7 +30871,7 @@ msgstr "" "с которыми сервер умеет работать, сервер не должен возвращать ответ ``300 " "Множественный выбор``, а вместо этого возвращает ответ ``406 Неприемлемо``." -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." @@ -30880,7 +30880,7 @@ msgstr "" "предпочесть возвращать ответ ``200 OK`` в ожидаемом типе содержимого для " "данной конечной точки." -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -30895,11 +30895,11 @@ msgstr "" "использовать тип содержимого ``текст/html`` только в качестве последнего " "средства." -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "Рекомендуется, чтобы клиенты:" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." @@ -30907,7 +30907,7 @@ msgstr "" "Поддерживать все 3 типа контента, описанные в данной спецификации, используя " "согласование контента с сервером, до тех пор, пока это возможно." -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." @@ -30915,7 +30915,7 @@ msgstr "" "При составлении заголовка ``Принять`` включите в него все типы содержимого, " "которые вы поддерживаете." -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -30929,7 +30929,7 @@ msgstr "" "стандартной библиотеки и беспокоитесь о том, что некоторые типы HTML-ответов " "могут быть не в состоянии разобрать в некоторых крайних случаях)." -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " @@ -30940,7 +30940,7 @@ msgstr "" "html``, если только это не единственный тип содержимого, который вы " "запрашиваете." -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." @@ -30948,7 +30948,7 @@ msgstr "" "Явно выбирайте версии, которые они ищут, вместо того чтобы использовать " "``последнюю`` мета-версию во время обычной работы." -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." @@ -30956,19 +30956,19 @@ msgstr "" "Проверьте ``Контент-Тип`` в ответе и убедитесь, что он соответствует тому, " "что вы ожидали." -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "Сентябрь 2015 года: начальная форма формата HTML, в :pep:`503`" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "Июль 2016 г: Метаданные Требуется-Python, в обновлении :pep:`503`" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "Май 2019: поддержка \"янки\", в :pep:`592`" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" @@ -30976,14 +30976,14 @@ msgstr "" "Июль 2020 года: Соглашение о версиях API и метаданные, а также объявление " "формата HTML как API v1, в :pep:`629`" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" "Май 2021: предоставление метаданных пакета независимо от пакета, в :pep:`658`" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" @@ -30991,7 +30991,7 @@ msgstr "" "Май 2022: начальная форма формата JSON, с механизмом выбора между ними для " "клиентов, и объявление обоих форматов как API v1, в :pep:`691`" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" @@ -30999,7 +30999,7 @@ msgstr "" "Октябрь 2022: версии проектов, размер файлов и время загрузки в формате " "JSON, в :pep:`700`" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" @@ -31007,14 +31007,14 @@ msgstr "" "Июнь 2023: переименование поля, предоставляющего метаданные пакета " "независимо от пакета, в :pep:`714`" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" "Ноябрь 2024: метаданные о проверке в форматах HTML и JSON, в :pep:`740`" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 #, fuzzy #| msgid "" #| "November 2024: provenance metadata in the HTML and JSON formats, " @@ -31024,7 +31024,7 @@ msgid "" msgstr "" "Ноябрь 2024: метаданные о проверке в форматах HTML и JSON, в :pep:`740`" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -31410,7 +31410,7 @@ msgstr "" "было стандартизировано с помощью :pep:`639`." #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "Спецификаторы версии" @@ -32158,11 +32158,33 @@ msgstr "" "сортировки: все версии, относящиеся к более поздней эпохе, будут " "отсортированы после версий, относящихся к более ранней эпохе::" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "Нормализация" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -32174,11 +32196,11 @@ msgstr "" "версий. Эти синтаксисы ДОЛЖНЫ учитываться при разборе версии, однако они " "должны быть \"нормализованы\" к стандартному синтаксису, определенному выше." -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "Чувствительность случая" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " @@ -32189,11 +32211,11 @@ msgstr "" "использовать такие версии, как ``1.1RC1``, которые будут нормализованы до " "``1.1rc1``." -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "Нормализация целого числа" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -32208,11 +32230,11 @@ msgstr "" "версии, например ``1.0+foo0100``, которая уже находится в нормализованной " "форме." -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "Сепараторы перед выпуском" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -32229,11 +32251,11 @@ msgstr "" "release и цифрой. Это позволяет использовать такие версии, как ``1.0a.1``, " "которые будут нормализованы до ``1.0a1``." -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "Предварительное написание" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -32249,11 +32271,11 @@ msgstr "" "``1.1a1``, ``1.1b2`` и ``1.1rc3``. В каждом случае дополнительные написания " "следует считать эквивалентными их нормальным формам." -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "Неявный номер предварительного выпуска" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -32265,11 +32287,11 @@ msgstr "" "``0``. Это позволяет использовать такие версии, как ``1.2a``, которые " "нормализуются до ``1.2a0``." -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "Сепараторы после выпуска" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -32287,11 +32309,11 @@ msgstr "" "обозначением пострелиза и цифрой. Это позволяет использовать версии типа " "``1.2.post-2``, которые нормализуются до ``1.2.post2``." -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "Написание после выпуска" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -32303,11 +32325,11 @@ msgstr "" "до ``1.0.post4``. Как и в предыдущих версиях, дополнительные написания " "следует считать эквивалентными их нормальным формам." -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "Неявный номер после выпуска" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -32319,11 +32341,11 @@ msgstr "" "позволяет использовать такие версии, как ``1.2.post``, которые нормализуются " "до ``1.2.post0``." -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "Неявные пост-релизы" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -32340,11 +32362,11 @@ msgstr "" "словами, ``1.0-`` - это *не* допустимая версия, и она *не* нормализуется до " "``1.0.post0``." -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "Сепараторы для выпуска продукции" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -32356,11 +32378,11 @@ msgstr "" "``.``. Это позволяет использовать такие версии, как ``1.2-dev2`` или " "``1.2dev2``, которые нормализуются до ``1.2.dev2``." -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "Номер выпуска неявной разработки" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -32372,11 +32394,11 @@ msgstr "" "``0``. Это позволяет использовать такие версии, как ``1.2.dev``, которые " "нормализуются до ``1.2.dev0``." -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "Сегменты локальной версии" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -32388,11 +32410,11 @@ msgstr "" "является использование символа ``.``. Это позволяет нормализовать такие " "версии, как ``1.0+ubuntu-1``, до ``1.0+ubuntu.1``." -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "Предшествующий символ v" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -32405,11 +32427,11 @@ msgstr "" "целей и должен быть опущен во всех нормализованных формах версии. Одна и та " "же версия с ``v`` и без него считается эквивалентной." -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "Ведущие и отслеживающие Белое пространство" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -32423,11 +32445,11 @@ msgstr "" "обрабатывать случайные пробелы, например, версия ``1.0\\n`` нормализуется до " "``1.0``." -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "Примеры совместимых схем версий" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -32443,7 +32465,7 @@ msgstr "" "относительный порядок версий, хотя приведенные выше правила гарантируют, что " "все совместимые инструменты будут упорядочивать их последовательно." -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -32455,22 +32477,22 @@ msgstr "" "гарантируя, что \"последний релиз\" и \"последний стабильный релиз\" могут " "быть легко определены как людьми, так и автоматизированными инструментами." -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "Простая версификация \"major.minor\" ::" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "Простая версия \"major.minor.micro\" ::" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" "Версии \"major.minor\" с предварительными выпусками альфа-версий, бета-" "версий и кандидатов::" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" @@ -32478,7 +32500,7 @@ msgstr "" "«major.minor»-версия с релизами, кандидатами на выпуск и пост-релизами для " "незначительных исправлений ::" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" @@ -32486,11 +32508,11 @@ msgstr "" "Релизы, основанные на дате, с использованием возрастающей серии в пределах " "каждого года, пропуская нулевой::" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "Краткое описание разрешенных суффиксов и относительного порядка" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " @@ -32500,7 +32522,7 @@ msgstr "" "автоматически обрабатывающих метаданные дистрибутива, а не для разработчиков " "дистрибутивов Python, принимающих решение о выборе схемы версионирования." -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " @@ -32510,7 +32532,7 @@ msgstr "" "соответствии с числовым значением данной эпохи. Если сегмент эпохи " "отсутствует, неявное числовое значение равно ``0``." -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " @@ -32520,7 +32542,7 @@ msgstr "" "порядке, что и сортировка кортежей в Python, когда нормализованный сегмент " "выпуска разбирается следующим образом::" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." @@ -32528,7 +32550,7 @@ msgstr "" "Все сегменты релиза, участвующие в сравнении, ДОЛЖНЫ быть приведены к единой " "длине путем заполнения более коротких сегментов нулями по мере необходимости." -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" @@ -32536,7 +32558,7 @@ msgstr "" "В числовом выпуске (``1.0``, ``2.7.3``) разрешены следующие суффиксы, " "которые ДОЛЖНЫ быть упорядочены, как показано на рисунке::" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -32549,7 +32571,7 @@ msgstr "" "в одном сегменте выпуска как неоднозначный и остаться в соответствии со " "спецификацией." -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " @@ -32559,7 +32581,7 @@ msgstr "" "(``1.0rc1``, ``1.0c1``) разрешены следующие суффиксы, которые ДОЛЖНЫ быть " "упорядочены, как показано::" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" @@ -32567,7 +32589,7 @@ msgstr "" "Внутри пост-релиза (``1.0.post1``) разрешены следующие суффиксы, которые " "ДОЛЖНЫ быть упорядочены, как показано::" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " @@ -32577,7 +32599,7 @@ msgstr "" "точка, даже если они используются сразу после числовой версии (например, " "``1.0.dev456``, ``1.0.post1``)." -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." @@ -32586,15 +32608,15 @@ msgstr "" "префиксом упорядочивание ДОЛЖНО осуществляться по значению числового " "компонента." -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "Следующий пример охватывает многие из возможных комбинаций::" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "Упорядочивание версий в различных версиях метаданных" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " @@ -32604,7 +32626,7 @@ msgstr "" "стандартную схему идентификации или упорядочивания версий. Однако в " "метаданных v1.2 (:pep:`345`) указана схема, которая определена в :pep:`386`." -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -32621,7 +32643,7 @@ msgstr "" "установить. Эти требования обуславливают необходимость стандартизации одного " "механизма разбора, который будет использоваться для всех версий проекта." -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -32637,7 +32659,7 @@ msgstr "" "и упорядочивания версий, определенным реализацией, если версии, " "соответствующие этой спецификации, недоступны." -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." @@ -32645,11 +32667,11 @@ msgstr "" "Пользователи дистрибутива могут захотеть явно удалить несоответствующие " "версии из всех частных индексов пакетов, которые они контролируют." -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "Совместимость с другими схемами версий" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -32662,7 +32684,7 @@ msgstr "" "спецификации. В таких случаях версия для конкретного проекта может храниться " "в метаданных, а переведенная публичная версия публикуется в поле версии." -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " @@ -32673,7 +32695,7 @@ msgstr "" "позволяя разработчикам использовать внутреннюю схему версионирования, " "которую они предпочитают для своих проектов." -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -32691,7 +32713,7 @@ msgstr "" "дистрибутивов, а также при публикации дистрибутива, на который полагаются " "другие." -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -32703,7 +32725,7 @@ msgstr "" "2.0.0) полностью совместимы со схемой версий, определенной в данной " "спецификации, и соблюдение этих аспектов приветствуется." -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " @@ -32713,7 +32735,7 @@ msgstr "" "(бабочки - пункт 11), не совместимы с этой спецификацией и не разрешены в " "поле публичной версии." -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " @@ -32724,18 +32746,18 @@ msgstr "" "использование суффикса ``.devN`` для указания соответствующего порядка " "версий." -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" "Информация о конкретной сборке также может быть включена в локальные метки " "версий." -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "Метки версий на базе DVCS" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -32747,7 +32769,7 @@ msgstr "" "идентификатору версии. Поскольку хэши не могут быть надежно упорядочены, " "такие версии не допускаются в поле публичной версии." -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " @@ -32758,18 +32780,18 @@ msgstr "" "для публикации, а оригинальная метка, основанная на DVCS, может храниться в " "метаданных проекта." -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" "Идентифицирующая хэш-информация также может быть включена в метки локальных " "версий." -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "Версия базы данных Олсона" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " @@ -32779,7 +32801,7 @@ msgstr "" "базы данных часового пояса Olson: год, за которым следует строчный символ, " "указывающий на версию базы данных в пределах этого года." -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -32791,7 +32813,7 @@ msgstr "" "'<год>a') и увеличивается с каждым последующим обновлением базы данных в " "течение года." -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." @@ -32800,7 +32822,7 @@ msgstr "" "соответствующая версия базы данных Olson может быть записана в метаданных " "проекта." -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" @@ -32808,35 +32830,35 @@ msgstr "" "Спецификатор версии состоит из ряда пунктов версии, разделенных запятыми. " "Например::" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "Оператор сравнения определяет тип положения версии:" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "``~=``: `Совместимый релиз`_ пункт" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "``==``: `Версия соответствует`_ пункту" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "``!=``: `исключение версии`_ пункт" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "``<=``, ``>=``: предложение ``включенного упорядоченного сравнения`_" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "``<``, ``>``: предложение ``исключительного упорядоченного сравнения``" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "``===``: предложение `произвольного равенства`." -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " @@ -32846,7 +32868,7 @@ msgstr "" "должна соответствовать всем заданным пунктам версии, чтобы соответствовать " "спецификатору в целом." -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." @@ -32854,7 +32876,7 @@ msgstr "" "Пробелы между условным оператором и следующим идентификатором версии " "необязательны, как и пробелы вокруг запятых." -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -32869,7 +32891,7 @@ msgstr "" "кандидатов, ДОЛЖЕН решаться в соответствии с описанием в `Обработке " "предварительных выпусков`_." -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " @@ -32880,11 +32902,11 @@ msgstr "" "ДОЛЖНЫ полностью игнорироваться при проверке соответствия версий-кандидатов " "заданному спецификатору версий." -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "Совместимый выпуск" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " @@ -32894,7 +32916,7 @@ msgstr "" "``~=`` и идентификатора версии. Он соответствует любой версии-кандидату, " "которая, как ожидается, будет совместима с указанной версией." -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " @@ -32904,7 +32926,7 @@ msgstr "" "в `Схема версии`_. Локальные идентификаторы версий в этом спецификаторе " "версий НЕ допускаются." -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" @@ -32912,7 +32934,7 @@ msgstr "" "Для данного идентификатора выпуска ``V.N`` совместимое положение о выпуске " "приблизительно эквивалентно паре положений сравнения::" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." @@ -32920,11 +32942,11 @@ msgstr "" "Этот оператор НЕ ДОЛЖЕН использоваться с номером версии одного сегмента, " "таким как ``~=1``." -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "Например, следующие группы положений о версии эквивалентны::" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " @@ -32934,7 +32956,7 @@ msgstr "" "совместимом релизе как ``V.N.suffix``, то суффикс игнорируется при " "определении требуемого соответствия префикса::" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " @@ -32945,11 +32967,11 @@ msgstr "" "контролироваться путем добавления дополнительных нулей к спецификатору " "версии::" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "Соответствие версий" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." @@ -32957,7 +32979,7 @@ msgstr "" "Условие сопоставления версий включает оператор сопоставления версий ``==`` и " "идентификатор версии." -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " @@ -32967,7 +32989,7 @@ msgstr "" "в `Version scheme`_, но в идентификаторах публичных версий допускается " "наличие конца ``.*``, как описано ниже." -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -32980,7 +33002,7 @@ msgstr "" "Единственная выполняемая замена - это нулевое заполнение сегмента выпуска, " "чтобы гарантировать, что сегменты выпуска сравниваются с одинаковой длиной." -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -32992,7 +33014,7 @@ msgstr "" "ДОЛЖНЫ как минимум выдавать предупреждения, а могут и полностью отклонять " "их, если строгое соответствие версий используется неуместно." -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -33009,8 +33031,8 @@ msgstr "" "то сдерживающие компоненты (или их отсутствие) в сегменте релиза также " "игнорируются." -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" @@ -33018,7 +33040,7 @@ msgstr "" "Например, для версии ``1.1.post1`` следующие пункты будут совпадать или не " "совпадать, как показано на рисунке::" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " @@ -33028,7 +33050,7 @@ msgstr "" "подразумеваемый предшествующий ``.``, поэтому, учитывая версию ``1.1a1``, " "следующие фразы будут соответствовать или не соответствовать, как показано::" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -33040,7 +33062,7 @@ msgstr "" "сегмента release в идентификаторах версий). Для версии ``1.1`` следующие " "пункты будут совпадать или не совпадать, как показано на рисунке::" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -33055,7 +33077,7 @@ msgstr "" "сравнения, поэтому использование любого из них в префиксном совпадении не " "имеет смысла." -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -33071,7 +33093,7 @@ msgstr "" "при определении зависимостей для повторяющихся *развертываний приложений* " "при использовании общего индекса дистрибутива." -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " @@ -33081,7 +33103,7 @@ msgstr "" "версии (без метки локальной версии), то метка локальной версии любых версий-" "кандидатов ДОЛЖНА игнорироваться при сопоставлении версий." -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -33095,11 +33117,11 @@ msgstr "" "сопоставляется, как описано выше, а метка локальной версии проверяется на " "эквивалентность с помощью строгого сравнения равенства строк." -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "Исключение версии" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." @@ -33107,7 +33129,7 @@ msgstr "" "Предложение об исключении версии включает оператор исключения версии ``!=`` " "и идентификатор версии." -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " @@ -33117,11 +33139,11 @@ msgstr "" "оператора `Version matching`_, за исключением того, что смысл любого " "совпадения инвертируется." -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "Всеобъемлющее упорядоченное сравнение" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -33135,12 +33157,12 @@ msgstr "" "указанной версии с учетом последовательного упорядочивания, определенного " "стандартной `Version scheme`_." -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "Инклюзивные операторы упорядоченного сравнения - ``<=`` и ``>=``." -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." @@ -33148,17 +33170,17 @@ msgstr "" "Как и при сопоставлении версий, сегмент выпуска обнуляется по мере " "необходимости, чтобы сегменты выпуска сравнивались с одинаковой длиной." -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" "Локальные идентификаторы версий в этом спецификаторе версий НЕ допускаются." -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "Исключительное упорядоченное сравнение" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -33174,7 +33196,7 @@ msgstr "" "специально исключают пре-релизы, пост-релизы и локальные версии указанной " "версии." -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -33190,7 +33212,7 @@ msgstr "" "разрешит ``1.7.1``, но не ``1.7.0.post1``, а ``>1.7.post2`` разрешит " "``1.7.1`` и ``1.7.0.post3``, но не ``1.7.0``." -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." @@ -33198,7 +33220,7 @@ msgstr "" "Исключительное упорядоченное сравнение ``>V`` **НЕ ДОЛЖНО** соответствовать " "локальной версии указанной версии." -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " @@ -33495,7 +33525,7 @@ msgstr "" "указано путем включения записи ``=`` в " "качестве части фрагмента URL." -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -33510,7 +33540,7 @@ msgstr "" "МОГУТ не выдавать предупреждения об отсутствии хэшей для систем контроля " "версий, которые не предоставляют идентификаторы фиксации на основе хэшей." -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -33522,7 +33552,7 @@ msgstr "" "добавлена в конец URL с помощью нотации ``@`` или " "``@#``." -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -33539,15 +33569,15 @@ msgstr "" "хэш, чтобы затруднить подделку (создать вредоносное репо с определённым " "тегом легко, а создать репо с определённым *хэшем* - менее)." -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "Примеры удаленных URL::" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "URL-адреса файлов" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -33560,7 +33590,7 @@ msgstr "" "определяет путь к файлу в файловой системе, к которому необходимо получить " "доступ." -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -33573,7 +33603,7 @@ msgstr "" "в \\*nix схема ``file://`` может использоваться только для доступа к путям " "на локальной машине." -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -33593,11 +33623,11 @@ msgstr "" "в Windows можно найти в `MSDN `_." -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "Краткое описание отличий от pkg_resources.parse_version" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " @@ -33608,7 +33638,7 @@ msgstr "" "был принят, setuptools 6.0 и более поздние версии приняли описанное здесь " "поведение." -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " @@ -33618,7 +33648,7 @@ msgstr "" "сортировались как большие, чем та же версия без локальной версии, в то время " "как ``pkg_resources.parse_version`` считает это маркером предрелизности." -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " @@ -33628,7 +33658,7 @@ msgstr "" "собой правильную версию, в то время как ``pkg_resources.parse_version`` " "пытается получить некоторое значение из *любой* произвольной строки." -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " @@ -33639,11 +33669,11 @@ msgstr "" "допускает только одно использование каждого типа, и они должны существовать " "в определенном порядке." -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "Приложение: Разбор строк версий с помощью регулярных выражений" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -33657,7 +33687,7 @@ msgstr "" "использовать для проверки того, имеет ли версия уже такую форму, и, если " "нет, извлечь различные компоненты для последующей нормализации." -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" @@ -33665,7 +33695,7 @@ msgstr "" "Чтобы проверить, соответствует ли идентификатор версии каноническому " "формату, можно воспользоваться следующей функцией:" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_):" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "Август 2014 г: Эта спецификация была одобрена через :pep:`440`." -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "Виртуальные среды Python" @@ -35542,10 +35580,22 @@ msgstr "" "pypi.org/classifiers/." #: ../source/tutorials/packaging-projects.rst:222 +#, fuzzy +#| msgid "" +#| "This is a valid :term:`SPDX license expression ` " +#| "consisting of one or more :term:`license identifiers `. The full license list is available at the `SPDX license " +#| "list page `_. The supported list version is 3.17 or any " +#| "later compatible one." msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" +"Это действительное выражение лицензии :term:`SPDX `, " +"состоящее из одного или нескольких :term:`license identifiers `. Полный список лицензий доступен на странице `списка лицензий " +"SPDX `_. Поддерживаемая версия списка - 3.17 или любая " +"более поздняя совместимая." #: ../source/tutorials/packaging-projects.rst:224 #, fuzzy @@ -35597,12 +35647,21 @@ msgid "Creating a LICENSE" msgstr "Создание файла :file:`LICENSE`" #: ../source/tutorials/packaging-projects.rst:253 -msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +#, fuzzy +#| msgid "" +#| "It's important for every package uploaded to the Python Package Index to " +#| "include a license. This tells users who install your package the terms " +#| "under which they can use your package. For help picking a license, see " +#| "https://choosealicense.com/. Once you have chosen a license, " +#| "open :file:`LICENSE` and enter the license text. For example, if you had " +#| "chosen the MIT license:" +msgid "" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" "Важно, чтобы каждый пакет, загруженный в Python Package Index, содержал " "лицензию. Это указывает пользователям, устанавливающим ваш пакет, на каких " @@ -35952,6 +36011,180 @@ msgstr "" "Если вы только начинаете с Python упаковки, рекомендуется придерживаться " "*регулярных пакетов* и ``__init__.py`` (даже если файл пуст)." +#~ msgid "" +#~ "This specification was originally defined in :pep:`518` and :pep:`621`." +#~ msgstr "" +#~ "Эта спецификация была первоначально определена в :pep:`518` и :pep:`621`." + +#~ msgid "" +#~ "Refer to the `pkg_resources documentation `__ for more details." +#~ msgstr "" +#~ "За более подробной информацией обратитесь к документации по " +#~ "`pkg_resources `__." + +#~ msgid "" +#~ "A complete working example of two pkg_resources-style namespace packages " +#~ "can be found in the `pkg_resources namespace example project`_." +#~ msgstr "" +#~ "Полный рабочий пример двух пакетов пространства имен в стиле " +#~ "pkg_resources можно найти в проекте `pkg_resources namespace example`_." + +#, fuzzy +#~| msgid "The ``versions`` key was added with API version 1.1." +#~ msgid "The ``project-status-reason`` key was added with API version 1.4." +#~ msgstr "Ключ ``версии`` был добавлен в API версии 1.1." + +#~ msgid "" +#~ "RECORD.jws is used for digital signatures. It is not mentioned in RECORD." +#~ msgstr "" +#~ "RECORD.jws используется для цифровых подписей. Он не упоминается в " +#~ "RECORD." + +#~ msgid "" +#~ "RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/" +#~ "MIME signatures to secure their wheel files. It is not mentioned in " +#~ "RECORD." +#~ msgstr "" +#~ "RECORD.p7s разрешен в качестве любезности для тех, кто предпочитает " +#~ "использовать подписи S/MIME для защиты своих колесных файлов. Она не " +#~ "упоминается в RECORD." + +#~ msgid "Signed wheel files" +#~ msgstr "Подписанные файлы колес" + +#~ msgid "" +#~ "Wheel files include an extended RECORD that enables digital signatures. " +#~ "PEP 376's RECORD is altered to include a secure hash " +#~ "``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding " +#~ "with no trailing = characters) as the second column instead of an " +#~ "md5sum. All possible entries are hashed, including any generated files " +#~ "such as .pyc files, but not RECORD which cannot contain its own hash. For " +#~ "example::" +#~ msgstr "" +#~ "Файлы колес включают расширенную запись RECORD, которая позволяет " +#~ "использовать цифровые подписи. В PEP 376 RECORD изменен, чтобы включать " +#~ "безопасный хэш ``digestname=urlsafe_b64encode_nopad(digest)`` (кодировка " +#~ "urlsafe base64 без задних символов =) в качестве второго столбца вместо " +#~ "md5sum. Хешируются все возможные записи, включая любые сгенерированные " +#~ "файлы, такие как файлы .pyc, но не RECORD, который не может содержать " +#~ "свой собственный хеш. Например::" + +#~ msgid "" +#~ "The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in " +#~ "RECORD at all since they can only be added after RECORD is generated. " +#~ "Every other file in the archive must have a correct hash in RECORD or the " +#~ "installation will fail." +#~ msgstr "" +#~ "Файл(ы) подписи RECORD.jws и RECORD.p7s вообще не упоминаются в RECORD, " +#~ "поскольку они могут быть добавлены только после создания RECORD. Все " +#~ "остальные файлы в архиве должны иметь правильный хэш в RECORD, иначе " +#~ "установка завершится неудачей." + +#~ msgid "" +#~ "If JSON web signatures are used, one or more JSON Web Signature JSON " +#~ "Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent " +#~ "to RECORD. JWS is used to sign RECORD by including the SHA-256 hash of " +#~ "RECORD as the signature's JSON payload:" +#~ msgstr "" +#~ "Если используются веб-подписи JSON, одна или несколько подписей JSON Web " +#~ "Signature JSON Serialization (JWS-JS) хранятся в файле RECORD.jws, " +#~ "примыкающем к RECORD. JWS используется для подписи RECORD путем " +#~ "включения SHA-256 хэша RECORD в качестве полезной нагрузки JSON подписи:" + +#~ msgid "(The hash value is the same format used in RECORD.)" +#~ msgstr "(Хеш-значение имеет тот же формат, что и в RECORD)" + +#~ msgid "" +#~ "If RECORD.p7s is used, it must contain a detached S/MIME format signature " +#~ "of RECORD." +#~ msgstr "" +#~ "Если используется файл RECORD.p7s, он должен содержать отделенную подпись " +#~ "RECORD в формате S/MIME." + +#~ msgid "" +#~ "A wheel installer is not required to understand digital signatures but " +#~ "MUST verify the hashes in RECORD against the extracted file contents. " +#~ "When the installer checks file hashes against RECORD, a separate " +#~ "signature checker only needs to establish that RECORD matches the " +#~ "signature." +#~ msgstr "" +#~ "Программа установки колеса не обязана понимать цифровые подписи, но " +#~ "ДОЛЖНА проверять хэши в RECORD по содержимому извлеченного файла. Когда " +#~ "программа установки сверяет хэши файлов с RECORD, отдельному средству " +#~ "проверки подписи достаточно убедиться, что RECORD соответствует подписи." + +#~ msgid "See" +#~ msgstr "Смотрите" + +#~ msgid "https://datatracker.ietf.org/doc/html/rfc7515" +#~ msgstr "https://datatracker.ietf.org/doc/html/rfc7515" + +#~ msgid "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" +#~ "serialization-01" +#~ msgstr "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" +#~ "serialization-01" + +#~ msgid "https://datatracker.ietf.org/doc/html/rfc7517" +#~ msgstr "https://datatracker.ietf.org/doc/html/rfc7517" + +#~ msgid "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" +#~ msgstr "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" + +#~ msgid "Why does wheel include attached signatures?" +#~ msgstr "Почему колесо включает в себя прикрепленные подписи?" + +#~ msgid "" +#~ "Attached signatures are more convenient than detached signatures because " +#~ "they travel with the archive. Since only the individual files are " +#~ "signed, the archive can be recompressed without invalidating the " +#~ "signature or individual files can be verified without having to download " +#~ "the whole archive." +#~ msgstr "" +#~ "Прикрепленные подписи более удобны, чем отсоединенные, поскольку они " +#~ "путешествуют вместе с архивом. Поскольку подписываются только отдельные " +#~ "файлы, архив можно перекомпрессировать, не аннулируя подпись, или " +#~ "проверить отдельные файлы без необходимости загружать весь архив." + +#~ msgid "Why does wheel allow JWS signatures?" +#~ msgstr "Почему колесо разрешает подписи JWS?" + +#~ msgid "" +#~ "The JOSE specifications of which JWS is a part are designed to be easy to " +#~ "implement, a feature that is also one of wheel's primary design goals. " +#~ "JWS yields a useful, concise pure-Python implementation." +#~ msgstr "" +#~ "Спецификации JOSE, частью которых является JWS, разработаны для простоты " +#~ "реализации, что также является одной из основных целей дизайна Wheel. " +#~ "JWS представляет собой полезную и лаконичную реализацию на чистом Python." + +#~ msgid "Why does wheel also allow S/MIME signatures?" +#~ msgstr "Почему wheel также позволяет использовать подписи S/MIME?" + +#~ msgid "" +#~ "S/MIME signatures are allowed for users who need or want to use existing " +#~ "public key infrastructure with wheel." +#~ msgstr "" +#~ "Подписи S/MIME разрешены для пользователей, которым необходимо или " +#~ "хочется использовать существующую инфраструктуру открытых ключей с " +#~ "помощью колеса." + +#~ msgid "" +#~ "Signed packages are only a basic building block in a secure package " +#~ "update system. Wheel only provides the building block." +#~ msgstr "" +#~ "Подписанные пакеты являются лишь базовым элементом системы безопасного " +#~ "обновления пакетов. Wheel предоставляет только строительный блок." + +#~ msgid "The license expressions for these projects are:" +#~ msgstr "Лицензионные выражения для этих проектов следующие:" + #~ msgid "TUF Support - PEP 458" #~ msgstr "Поддержка TUF - PEP 458" diff --git a/locales/sai/LC_MESSAGES/messages.po b/locales/sai/LC_MESSAGES/messages.po index 0f4b4bc64..ba2ae7995 100644 --- a/locales/sai/LC_MESSAGES/messages.po +++ b/locales/sai/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -2647,7 +2647,7 @@ msgid "A simple version with just one component: ``42``" msgstr "" #: ../source/discussions/versioning.rst:30 -msgid "A version with an epoch: ``1!1.0``" +msgid "A version with an epoch (discouraged): ``1!1.0``" msgstr "" #: ../source/discussions/versioning.rst:32 @@ -2678,20 +2678,22 @@ msgstr "" #: ../source/discussions/versioning.rst:49 msgid "" -"Finally, epochs, a rarely used feature, serve to fix the sorting order when " -"changing the versioning scheme. For example, if a project is using calendar " -"versioning, with versions like 23.12, and switches to semantic versioning, " -"with versions like 1.0, the comparison between 1.0 and 23.12 will go the " -"wrong way. To correct this, the new version numbers should have an explicit " -"epoch, as in \"1!1.0\", in order to be treated as more recent than the old " -"version numbers." +"Finally, epochs were intended to fix the sorting order when changing the " +"versioning scheme. For example, if a project was using calendar versioning, " +"with versions like ``23.12``, and switched to semantic versioning, with " +"versions like ``1.0``, the comparison between ``1.0`` and ``23.12`` would go " +"the wrong way. To correct this, the new version numbers would have an " +"explicit epoch, as in ``1!1.0``, in order to be treated as more recent than " +"the old version numbers. However, this is discouraged, and it is preferable " +"to use a higher version number that is unlikely to cause user confusion, " +"such as ``100.0``." msgstr "" -#: ../source/discussions/versioning.rst:59 +#: ../source/discussions/versioning.rst:60 msgid "Semantic versioning vs. calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:61 +#: ../source/discussions/versioning.rst:62 msgid "" "A versioning scheme is a formalized way to interpret the segments of a " "version number, and to decide which should be the next version number for a " @@ -2699,7 +2701,7 @@ msgid "" "Python packages, semantic versioning and calendar versioning." msgstr "" -#: ../source/discussions/versioning.rst:68 +#: ../source/discussions/versioning.rst:69 msgid "" "The decision which version number to choose is up to a project's maintainer. " "This effectively means that version bumps reflect the maintainer's view. " @@ -2707,7 +2709,7 @@ msgid "" "versioning scheme promises them." msgstr "" -#: ../source/discussions/versioning.rst:74 +#: ../source/discussions/versioning.rst:75 msgid "" "There are known exceptions for selecting the next version number. The " "maintainers may consciously choose to break the assumption that the last " @@ -2716,31 +2718,31 @@ msgid "" "come in patch versions but contain breaking changes inevitably." msgstr "" -#: ../source/discussions/versioning.rst:84 -#: ../source/specifications/version-specifiers.rst:726 +#: ../source/discussions/versioning.rst:85 +#: ../source/specifications/version-specifiers.rst:741 msgid "Semantic versioning" msgstr "" -#: ../source/discussions/versioning.rst:86 +#: ../source/discussions/versioning.rst:87 msgid "" "The idea of *semantic versioning* (or SemVer) is to use 3-part version " "numbers, *major.minor.patch*, where the project author increments:" msgstr "" -#: ../source/discussions/versioning.rst:89 +#: ../source/discussions/versioning.rst:90 msgid "*major* when they make incompatible API changes," msgstr "" -#: ../source/discussions/versioning.rst:90 +#: ../source/discussions/versioning.rst:91 msgid "" "*minor* when they add functionality in a backwards-compatible manner, and" msgstr "" -#: ../source/discussions/versioning.rst:91 +#: ../source/discussions/versioning.rst:92 msgid "*patch*, when they make backwards-compatible bug fixes." msgstr "" -#: ../source/discussions/versioning.rst:93 +#: ../source/discussions/versioning.rst:94 msgid "" "A majority of Python projects use a scheme that resembles semantic " "versioning. However, most projects, especially larger ones, do not strictly " @@ -2752,7 +2754,7 @@ msgid "" "used to signal significant but backwards-compatible new features." msgstr "" -#: ../source/discussions/versioning.rst:103 +#: ../source/discussions/versioning.rst:104 msgid "" "For those projects that do use strict semantic versioning, this approach " "allows users to make use of :ref:`compatible release version specifiers " @@ -2764,13 +2766,13 @@ msgid "" "and allows a later release with same X and Y but higher Z." msgstr "" -#: ../source/discussions/versioning.rst:112 +#: ../source/discussions/versioning.rst:113 msgid "" "Python projects adopting semantic versioning should abide by clauses 1-8 of " "the `Semantic Versioning 2.0.0 specification `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2781,41 +2783,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2824,7 +2826,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2833,12 +2835,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2848,7 +2850,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2860,11 +2862,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2872,20 +2874,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2893,7 +2895,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2904,7 +2906,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2913,13 +2915,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3202,11 +3204,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3405,9 +3407,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3580,54 +3582,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3635,11 +3637,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3648,11 +3650,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3660,26 +3662,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3691,38 +3693,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3731,21 +3733,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3754,11 +3756,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3766,15 +3768,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3782,21 +3784,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3949,7 +3951,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4305,17 +4307,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4627,7 +4640,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -4998,7 +5011,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6686,11 +6699,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6726,7 +6740,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6739,29 +6754,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6773,65 +6788,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6840,18 +6855,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6860,11 +6875,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6874,7 +6889,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6883,11 +6898,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6899,24 +6914,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6924,17 +6939,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6945,11 +6960,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6957,14 +6972,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7591,12 +7606,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8302,17 +8311,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8320,34 +8329,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8355,42 +8364,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8399,18 +8420,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8740,7 +8755,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9356,40 +9371,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9397,25 +9416,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9423,45 +9442,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9472,31 +9491,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9697,9 +9716,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9726,9 +9745,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9759,7 +9778,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9789,8 +9808,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9842,7 +9861,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9853,8 +9872,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9866,8 +9885,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9900,7 +9919,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -9974,8 +9993,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10005,90 +10024,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10097,26 +10116,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10124,28 +10143,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10153,33 +10172,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13230,86 +13249,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13318,116 +13333,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13437,51 +13381,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13489,7 +13393,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13497,18 +13401,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13517,7 +13421,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13528,7 +13432,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13546,7 +13450,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13555,7 +13459,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13567,26 +13471,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13594,24 +13498,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14365,11 +14273,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16201,17 +16109,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18219,7 +18133,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20562,95 +20476,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20673,10 +20597,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20727,7 +20647,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20735,24 +20655,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20762,139 +20682,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20908,7 +20828,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20917,7 +20837,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20929,30 +20849,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20961,21 +20881,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -20985,26 +20905,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21013,40 +20933,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21055,11 +20975,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21089,56 +21009,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21146,38 +21066,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21185,14 +21105,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21200,7 +21120,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21208,24 +21128,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21233,7 +21153,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21244,13 +21164,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21259,7 +21179,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21274,38 +21194,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21315,7 +21235,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21323,7 +21243,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21331,21 +21251,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21353,19 +21273,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21374,20 +21294,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21395,18 +21315,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21414,7 +21334,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21422,32 +21342,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22271,7 +22191,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22310,7 +22230,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22530,14 +22450,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22571,7 +22491,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22579,45 +22499,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22625,7 +22545,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22634,23 +22554,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22659,14 +22579,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22676,7 +22596,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22684,14 +22604,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22701,45 +22621,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22748,7 +22668,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22758,17 +22678,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22776,7 +22696,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22785,11 +22705,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22797,11 +22717,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22864,11 +22784,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22877,65 +22797,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22943,7 +22863,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22954,7 +22874,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22963,33 +22883,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -22999,7 +22919,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23009,7 +22929,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23017,7 +22937,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23028,22 +22948,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23052,25 +22972,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23078,13 +22998,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23094,18 +23014,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23113,7 +23033,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23123,7 +23043,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23131,7 +23051,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23139,7 +23059,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23148,18 +23068,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23167,13 +23087,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23182,23 +23102,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23207,79 +23127,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23557,7 +23477,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24084,11 +24004,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24096,22 +24038,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24120,11 +24062,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24134,11 +24076,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24148,11 +24090,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24160,11 +24102,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24175,11 +24117,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24187,11 +24129,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24199,11 +24141,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24213,11 +24155,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24225,11 +24167,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24237,11 +24179,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24249,11 +24191,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24262,11 +24204,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24275,11 +24217,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24289,7 +24231,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24297,69 +24239,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24367,48 +24309,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24419,7 +24361,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24429,17 +24371,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24448,14 +24390,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24466,7 +24408,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24474,30 +24416,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24505,30 +24447,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24536,60 +24478,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24598,79 +24540,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24679,7 +24621,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24687,7 +24629,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24697,21 +24639,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24719,7 +24661,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24728,7 +24670,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24738,14 +24680,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24754,28 +24696,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24784,27 +24726,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24814,7 +24756,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24824,13 +24766,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25050,7 +24994,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25058,7 +25002,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25069,15 +25013,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25085,7 +25029,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25093,7 +25037,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25105,43 +25049,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25150,29 +25094,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26538,7 +26490,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26577,11 +26529,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/si/LC_MESSAGES/messages.po b/locales/si/LC_MESSAGES/messages.po index fb51d249c..ce7fbaebf 100644 --- a/locales/si/LC_MESSAGES/messages.po +++ b/locales/si/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2022-06-11 08:19+0000\n" "Last-Translator: Kushan Gunasekera \n" "Language-Team: Sinhala `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2785,41 +2787,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2828,7 +2830,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2837,12 +2839,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2852,7 +2854,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2864,11 +2866,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2876,20 +2878,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2897,7 +2899,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2908,7 +2910,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2917,13 +2919,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3206,11 +3208,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3409,9 +3411,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3584,54 +3586,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3639,11 +3641,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3652,11 +3654,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3664,26 +3666,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3695,38 +3697,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3735,21 +3737,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3758,11 +3760,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3770,15 +3772,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3786,21 +3788,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3953,7 +3955,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4309,17 +4311,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4631,7 +4644,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5002,7 +5015,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6690,11 +6703,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6730,7 +6744,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6743,29 +6758,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6777,65 +6792,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6844,18 +6859,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6864,11 +6879,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6878,7 +6893,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6887,11 +6902,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6903,24 +6918,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6928,17 +6943,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6949,11 +6964,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6961,14 +6976,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7595,12 +7610,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8306,17 +8315,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8324,34 +8333,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8359,42 +8368,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8403,18 +8424,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8744,7 +8759,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9360,40 +9375,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9401,25 +9420,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9427,45 +9446,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9476,31 +9495,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9701,9 +9720,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9730,9 +9749,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9763,7 +9782,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9793,8 +9812,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9846,7 +9865,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9857,8 +9876,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9870,8 +9889,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9904,7 +9923,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -9978,8 +9997,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10009,90 +10028,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10101,26 +10120,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10128,28 +10147,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10157,33 +10176,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13234,86 +13253,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13322,116 +13337,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13441,51 +13385,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13493,7 +13397,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13501,18 +13405,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13521,7 +13425,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13532,7 +13436,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13550,7 +13454,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13559,7 +13463,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13571,26 +13475,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13598,24 +13502,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14369,11 +14277,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16205,17 +16113,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18223,7 +18137,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20566,95 +20480,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20677,10 +20601,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20731,7 +20651,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20739,24 +20659,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20766,139 +20686,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20912,7 +20832,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20921,7 +20841,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20933,30 +20853,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20965,21 +20885,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -20989,26 +20909,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21017,40 +20937,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21059,11 +20979,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21093,56 +21013,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21150,38 +21070,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21189,14 +21109,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21204,7 +21124,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21212,24 +21132,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21237,7 +21157,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21248,13 +21168,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21263,7 +21183,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21278,38 +21198,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21319,7 +21239,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21327,7 +21247,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21335,21 +21255,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21357,19 +21277,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21378,20 +21298,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21399,18 +21319,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21418,7 +21338,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21426,32 +21346,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22275,7 +22195,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22314,7 +22234,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22534,14 +22454,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22575,7 +22495,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22583,45 +22503,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22629,7 +22549,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22638,23 +22558,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22663,14 +22583,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22680,7 +22600,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22688,14 +22608,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22705,45 +22625,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22752,7 +22672,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22762,17 +22682,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22780,7 +22700,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22789,11 +22709,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22801,11 +22721,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22868,11 +22788,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22881,65 +22801,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22947,7 +22867,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22958,7 +22878,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22967,33 +22887,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23003,7 +22923,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23013,7 +22933,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23021,7 +22941,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23032,22 +22952,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23056,25 +22976,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23082,13 +23002,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23098,18 +23018,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23117,7 +23037,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23127,7 +23047,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23135,7 +23055,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23143,7 +23063,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23152,18 +23072,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23171,13 +23091,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23186,23 +23106,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23211,79 +23131,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23561,7 +23481,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24088,11 +24008,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24100,22 +24042,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24124,11 +24066,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24138,11 +24080,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24152,11 +24094,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24164,11 +24106,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24179,11 +24121,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24191,11 +24133,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24203,11 +24145,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24217,11 +24159,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24229,11 +24171,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24241,11 +24183,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24253,11 +24195,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24266,11 +24208,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24279,11 +24221,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24293,7 +24235,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24301,69 +24243,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24371,48 +24313,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24423,7 +24365,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24433,17 +24375,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24452,14 +24394,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24470,7 +24412,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24478,30 +24420,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24509,30 +24451,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24540,60 +24482,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24602,79 +24544,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24683,7 +24625,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24691,7 +24633,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24701,21 +24643,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24723,7 +24665,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24732,7 +24674,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24742,14 +24684,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24758,28 +24700,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24788,27 +24730,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24818,7 +24760,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24828,13 +24770,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25054,7 +24998,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25062,7 +25006,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25073,15 +25017,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25089,7 +25033,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25097,7 +25041,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25109,43 +25053,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25154,29 +25098,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26542,7 +26494,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26581,11 +26533,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/sk/LC_MESSAGES/messages.po b/locales/sk/LC_MESSAGES/messages.po index 5b36d8faa..1d79dbe9d 100644 --- a/locales/sk/LC_MESSAGES/messages.po +++ b/locales/sk/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2024-11-02 00:54+0000\n" "Last-Translator: Milan Šalka \n" "Language-Team: Slovak `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2899,41 +2901,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2942,7 +2944,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2951,12 +2953,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2966,7 +2968,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2978,11 +2980,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2990,20 +2992,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -3011,7 +3013,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -3022,7 +3024,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -3031,13 +3033,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3320,11 +3322,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3525,9 +3527,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3706,54 +3708,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3761,11 +3763,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3774,11 +3776,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3786,28 +3788,28 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 #, fuzzy #| msgid "Project name" msgid "Root License Directory" msgstr "Meno projektu" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3819,38 +3821,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3859,21 +3861,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3882,11 +3884,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3894,15 +3896,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3910,23 +3912,23 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 #, fuzzy #| msgid "Project" msgid "Wheel Project" msgstr "Projekt" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -4079,7 +4081,7 @@ msgstr "Poznámka" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4435,17 +4437,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4763,7 +4776,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5134,7 +5147,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6844,11 +6857,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6884,7 +6898,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6897,29 +6912,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6931,65 +6946,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6998,18 +7013,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -7018,11 +7033,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -7032,7 +7047,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -7041,11 +7056,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -7057,24 +7072,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -7082,17 +7097,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -7103,11 +7118,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -7115,14 +7130,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7751,12 +7766,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8462,17 +8471,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8480,34 +8489,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8515,42 +8524,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8559,18 +8580,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8902,7 +8917,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9520,42 +9535,46 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 #, fuzzy #| msgid "Reviewing new contributions" msgid "Building distributions" msgstr "Preskúmanie nových príspevkov" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9563,25 +9582,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9589,45 +9608,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9638,31 +9657,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9863,9 +9882,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9892,9 +9911,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9925,7 +9944,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9955,8 +9974,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -10008,7 +10027,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -10019,8 +10038,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -10032,8 +10051,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -10066,7 +10085,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -10140,8 +10159,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10171,90 +10190,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10263,26 +10282,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10290,28 +10309,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10319,33 +10338,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13396,88 +13415,84 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 #, fuzzy #| msgid "Project name" msgid "Subdirectory name" msgstr "Meno projektu" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13486,116 +13501,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13605,51 +13549,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13657,7 +13561,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13665,18 +13569,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13685,7 +13589,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13696,7 +13600,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13714,7 +13618,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13723,7 +13627,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13735,26 +13639,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13762,24 +13666,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14539,11 +14447,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16379,17 +16287,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18405,7 +18319,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20764,95 +20678,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20875,10 +20799,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20929,7 +20849,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20937,24 +20857,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20964,139 +20884,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -21110,7 +21030,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -21119,7 +21039,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -21131,30 +21051,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -21163,23 +21083,23 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 #, fuzzy #| msgid "Specifications" msgid "Legacy specification" msgstr "Špecifikácie" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -21189,26 +21109,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21217,40 +21137,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21259,11 +21179,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21293,56 +21213,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21350,38 +21270,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21389,14 +21309,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21404,7 +21324,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21412,24 +21332,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21437,7 +21357,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21448,13 +21368,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21463,7 +21383,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21478,38 +21398,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21519,7 +21439,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21527,7 +21447,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21535,21 +21455,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21557,19 +21477,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21578,20 +21498,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21599,18 +21519,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21618,7 +21538,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21626,32 +21546,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22483,7 +22403,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22522,7 +22442,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22742,14 +22662,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22783,7 +22703,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22791,45 +22711,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22837,7 +22757,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22846,23 +22766,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22871,14 +22791,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22888,7 +22808,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22896,14 +22816,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22913,45 +22833,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22960,7 +22880,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22970,17 +22890,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22988,7 +22908,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22997,11 +22917,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -23009,11 +22929,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -23076,11 +22996,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -23089,65 +23009,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -23155,7 +23075,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -23166,7 +23086,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -23175,33 +23095,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23211,7 +23131,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23221,7 +23141,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23229,7 +23149,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23240,22 +23160,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23264,25 +23184,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23290,13 +23210,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23306,18 +23226,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23325,7 +23245,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23335,7 +23255,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23343,7 +23263,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23351,7 +23271,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23360,18 +23280,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23379,13 +23299,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23394,23 +23314,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23419,79 +23339,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23769,7 +23689,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24298,11 +24218,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24310,22 +24252,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24334,11 +24276,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24348,11 +24290,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24362,11 +24304,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24374,11 +24316,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24389,11 +24331,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24401,11 +24343,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24413,11 +24355,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24427,11 +24369,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24439,11 +24381,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24451,11 +24393,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24463,11 +24405,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24476,11 +24418,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24489,11 +24431,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24503,7 +24445,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24511,69 +24453,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24581,48 +24523,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24633,7 +24575,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24643,17 +24585,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24662,14 +24604,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24680,7 +24622,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24688,30 +24630,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24719,30 +24661,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24750,60 +24692,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24812,79 +24754,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24893,7 +24835,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24901,7 +24843,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24911,21 +24853,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24933,7 +24875,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24942,7 +24884,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24952,14 +24894,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24968,28 +24910,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24998,27 +24940,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -25028,7 +24970,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -25038,13 +24980,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25264,7 +25208,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25272,7 +25216,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25283,15 +25227,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25299,7 +25243,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25307,7 +25251,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25319,43 +25263,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25364,29 +25308,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26754,7 +26706,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26793,11 +26745,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/ta/LC_MESSAGES/messages.po b/locales/ta/LC_MESSAGES/messages.po index ee1ab3131..f3816c8f3 100644 --- a/locales/ta/LC_MESSAGES/messages.po +++ b/locales/ta/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2025-07-19 06:36+0000\n" "Last-Translator: தமிழ்நேரம் \n" "Language-Team: Tamil `_." @@ -3357,7 +3370,7 @@ msgstr "" "சொற்பொருள் பதிப்பைப் பின்பற்றும் பைதான் திட்டங்கள் `சொற்பொருள் பதிப்பு 2.0.0 விவரக்குறிப்பு " "<செம்வர்_>` _ `_ ஆகியவற்றின் 1-8 உட்பிரிவுகளுக்கு கட்டுப்பட வேண்டும்." -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -3375,11 +3388,11 @@ msgstr "" "இணக்கமான பநிஇ மாற்றங்களைக் கொண்டிருக்கலாம் (: டாக்: `நம்பி பதிப்பு கொள்கை <நம்பி: தேவ்/ " "_ON_NUMPY> `)." -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "காலண்டர் பதிப்பு" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 #, fuzzy #| msgid "" #| "Semantic versioning is not a suitable choice for all projects, such as " @@ -3395,7 +3408,7 @@ msgstr "" "அடிப்படையிலான வெளியீட்டு கேடென்ச் மற்றும் ஒரு மதிப்பிழப்பு செயல்முறை போன்ற அனைத்து " "திட்டங்களுக்கும் சொற்பொருள் பதிப்பு பொருத்தமான தேர்வாக இல்லை." -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " @@ -3405,7 +3418,7 @@ msgstr "" "(கால்வர்), ஒரு குறிப்பிட்ட வெளியீட்டின் அடிப்படை அம்சத் தொகுப்பிற்கு பதிப்பு எண்ணை எவ்வளவு " "பழையதாகக் கூறுவது நேரடியானது." -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." @@ -3413,7 +3426,7 @@ msgstr "" "காலண்டர் பதிப்பு எண்கள் பொதுவாக * year.month * படிவத்தை எடுக்கும் (எடுத்துக்காட்டாக, " "டிசம்பர் 2023 க்கு 23.12)." -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." @@ -3421,11 +3434,11 @@ msgstr "" ": டாக்: `பிப் <பிப்: இன்டெக்ச்>`, நிலையான பைதான் தொகுப்பு நிறுவி, காலண்டர் பதிப்பைப் " "பயன்படுத்துகிறது." -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "பிற திட்டங்கள்" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -3439,7 +3452,7 @@ msgstr "" "பதிப்பு எண்கள் பநிஇ பின்னோக்கி பொருந்தக்கூடிய தன்மை குறித்து சிறிய அல்லது எந்த தகவலையும் " "தெரிவிக்கின்றன." -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 #, fuzzy #| msgid "" #| "Combinations of the above schemes are possible. For example, a project " @@ -3459,12 +3472,12 @@ msgstr "" "தோராயமான வயதை உடனடியாக வெளிப்படுத்தும், ஆனால் ஆண்டுக்குள் ஒரு குறிப்பிட்ட வெளியீட்டு " "கேடென்சுக்கு உறுதியளிக்கவில்லை." -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "உள்ளக பதிப்பு அடையாளங்காட்டிகள்" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -3479,7 +3492,7 @@ msgstr "" "இது வெளியீட்டிற்காக அல்ல, அல்லது மறுவிநியோகத்தால் பராமரிக்கப்படும் வெளியீட்டின் " "மாற்றியமைக்கப்பட்ட மாறுபாடுகளை அடையாளம் காண பயன்படுத்தலாம்." -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -3500,11 +3513,11 @@ msgstr "" "\"0.5.DEV1+GD00980F.D2021217\" போன்ற மாற்றங்கள் கட்டுப்படுத்தப்படாத மாற்றங்களைக் " "கொண்டிருந்தால்." -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "இயக்க நேரத்தில் பதிப்பு தகவல்களை அணுகும்" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -3515,7 +3528,7 @@ msgstr "" "சூழலில் உள்ளூரில் கிடைக்கக்கூடியவை நிலையான நூலகத்தைப் பயன்படுத்தி இயக்க நேரத்தில் " "பெறலாம்: FUNC: `importlib.metadata.version` செயல்பாடு ::" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" @@ -3524,7 +3537,7 @@ msgstr "" "தொகுப்புகளை <இறக்குமதி தொகுப்பு>` ஒரு தொகுப்பு நிலையை வழங்குவதன் மூலம் " "`__version__`` பண்புக்கூறு ::" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " @@ -3534,7 +3547,7 @@ msgstr "" "வினவல் அழைப்பிதழ்கள் (`` பிப் -வி`` போன்றவை) முடிந்தவரை விரைவாக இயங்குவதை உறுதிசெய்ய " "விரும்புகின்றன." -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -3546,7 +3559,7 @@ msgstr "" "மறுபரிசீலனை செய்யலாம்: Ref: `ஒற்றை-மூல-பதிப்பு` அவ்வாறு செய்வதற்கான சாத்தியமான " "அணுகுமுறைகளுக்கு விவாதம்." -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -3562,7 +3575,7 @@ msgstr "" "ஒன்றின் பதிப்பு போன்றவை), இல்லையெனில் வினவல் குறியீடு பண்புக்கூறு காணாமல் போன வழக்கைக் " "கையாள வடிவமைக்கப்பட வேண்டும் [#குறைவுக்கு-தூரத்திற்கு -்வெர்சன்] _." -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -3576,7 +3589,7 @@ msgstr "" "நிலையான நூலகத்தின்: MOD: `SSL` தொகுதி அடிப்படை OpenSSL நூலக பதிப்பை அணுக பல " "வழிகளை வழங்குகிறது ::" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." @@ -3584,7 +3597,7 @@ msgstr "" "அசாதாரண பதிப்பு எண்களின் இன்னும் சில எடுத்துக்காட்டுகள் `வலைப்பதிவு இடுகை <பதிப்புகள்-" "செத்-லார்சன்_>` _ சேத் லார்சனால் கொடுக்கப்பட்டுள்ளன." -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_,` பிரட் கேனன் `_. " "நகைச்சுவையான எடுத்துக்கொள்ள, Zerover_ பற்றி படியுங்கள்." -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3964,12 +3977,19 @@ msgid "Build Backend" msgstr "பின்தளத்தில் உருவாக்குங்கள்" #: ../source/glossary.rst:17 -msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +#, fuzzy +#| msgid "" +#| "A library that takes a source tree and builds a :term:`source " +#| "distribution ` or :term:`built " +#| "distribution ` from it. The build is delegated to the " +#| "backend by a :term:`frontend `. All backends offer a " +#| "standardized interface." +msgid "" +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" "ஒரு மூல மரத்தை எடுத்து ஒரு நூலகம் ஒரு: காலத்தை உருவாக்குகிறது: `மூல வழங்கல் <மூல " "வழங்கல் (அல்லது\" SDIST \")>` அல்லது: கால: `கட்டப்பட்ட வழங்கல் <கட்டப்பட்ட விநியோகம்>` " @@ -4236,11 +4256,17 @@ msgid "SPDX Expression" msgstr "SPDX வெளிப்பாடு" #: ../source/glossary.rst:161 +#, fuzzy +#| msgid "" +#| "A string with valid SPDX license expression syntax, including one or more " +#| "SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " +#| "license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, " +#| "``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" "ஒன்று அல்லது அதற்கு மேற்பட்ட SPDX உள்ளிட்ட செல்லுபடியாகும் SPDX உரிம வெளிப்பாடு " "தொடரியல் கொண்ட ஒரு சரம்: சொல்: `உரிம அடையாளங்காட்டி` \\ (கள்), இது ஒரு: காலத்தை " @@ -4464,13 +4490,22 @@ msgid "Python Packaging Authority (PyPA)" msgstr "பைதான் பேக்கேசிங் ஆணையம் (பைபா)" #: ../source/glossary.rst:287 +#, fuzzy +#| msgid "" +#| "PyPA is a working group that maintains many of the relevant projects in " +#| "Python packaging. They maintain a site at :doc:`pypa.io `, " +#| "host projects on `GitHub `_ and `Bitbucket " +#| "`_, and discuss issues on the `distutils-sig " +#| "mailing list `_ and `the Python Discourse forum `__." msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" "பைபா என்பது பைதான் பேக்கேசிங்கில் தொடர்புடைய பல திட்டங்களை பராமரிக்கும் ஒரு பணிக்குழு " "ஆகும். அவர்கள் ஒரு தளத்தை பராமரிக்கின்றனர்: doc: `pypa.io `, `github " @@ -4478,11 +4513,11 @@ msgstr "" "`_, மற்றும்` டிச்டிடில்ச்-சிக் அஞ்சல் பட்டியலில் உள்ள சிக்கல்களைப் பற்றி விவாதிக்கவும் //" "discuss.python.org/c/packaging>`__." -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "பைதான் தொகுப்பு அட்டவணை (PYPI)" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " @@ -4492,11 +4527,11 @@ msgstr "" "குறியீடு`. அனைத்து பைதான் டெவலப்பர்களுக்கும் அவர்களின் விநியோகங்களை உட்கொள்வதற்கும் " "விநியோகிப்பதற்கும் இது திறந்திருக்கும்." -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "pypi.org" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " @@ -4506,22 +4541,22 @@ msgstr "" "(PYPI)`. இது 2017 ஆம் ஆண்டில் மரபு குறியீட்டு டொமைன் பெயரை மாற்றியது, `` " "pypi.python.org``. இது இயக்கப்படுகிறது: ref: `கிடங்கு`." -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "pyproject.toml" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" "கருவி-அம்போச்டிக்: கால: `திட்டம்` விவரக்குறிப்பு கோப்பு. வரையறுக்கப்பட்டுள்ளது: PEP: " "`518`." -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "வெளியீடு" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." @@ -4529,7 +4564,7 @@ msgstr "" "A இன் ச்னாப்சாட்: கால: `திட்டம்` ஒரு குறிப்பிட்ட கட்டத்தில், பதிப்பு அடையாளங்காட்டியால் " "குறிக்கப்படுகிறது." -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -4540,11 +4575,11 @@ msgstr "" "கொண்டிருக்கலாம். எடுத்துக்காட்டாக, ஒரு திட்டத்தின் பதிப்பு 1.0 வெளியிடப்பட்டால், அது ஒரு " "மூல விநியோக வடிவம் மற்றும் சாளரங்கள் நிறுவி விநியோக வடிவத்தில் கிடைக்கக்கூடும்." -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "தேவை" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -4555,11 +4590,11 @@ msgstr "" "ஒரு விவரக்குறிப்பு ஒரு: கால: `தொகுப்பு <விநியோக தொகுப்பு>` நிறுவப்பட வேண்டும். . " "மேலும் தகவலுக்கு, பார்க்க: ref: `PIP: PIP INSTALL` குறிப்பு." -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "தேவை விவரக்குறிப்பு" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -4572,11 +4607,11 @@ msgstr "" "விவரக்குறிப்பாகும், அங்கு \"FOO\" என்பது திட்ட பெயர், மற்றும் \"> = 1.3\" பகுதி: கால: " "`பதிப்பு விவரக்குறிப்பு`" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "தேவைகள் கோப்பு" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " @@ -4586,15 +4621,15 @@ msgstr "" "குறிப்பு: `பிப்`. மேலும் தகவலுக்கு, பார்க்க: ref: `பிப்` டாக்ச் ஆன்: குறிப்பு:` பிப்: " "தேவைகள் கோப்புகள்`." -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "ரூட் உரிம அடைவு" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "உரிம அடைவு" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -4613,17 +4648,17 @@ msgstr "" "`` உரிம-கோப்பு``: கால: `கோர் மேனிலை தரவு புலம்` இல் பதிவு செய்யப்பட்ட பாதைகள் " "தொடர்புடையவை." -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "setup.py" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "setup.cfg" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." @@ -4631,11 +4666,11 @@ msgstr "" "இதற்கான திட்ட விவரக்குறிப்பு கோப்புகள்: ref: `distutils` மற்றும்: ref:` setuptools`. " "மேலும் காண்க: கால: `pyproject.toml`." -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "மூல காப்பகம்" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution `அல்லது: " "கால:` கட்டப்பட்ட விநியோகம்`." -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "மூல வழங்கல் (அல்லது \"SDIST\")" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -4663,11 +4698,11 @@ msgstr "" "உருவாக்க ஒரு: கால: `கட்டப்பட்ட விநியோகம்`. காண்க: குறிப்பு: மேலும் தகவலுக்கு `தொகுப்பு " "வடிவங்கள்." -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "கணினி தொகுப்பு" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." @@ -4675,11 +4710,11 @@ msgstr "" "இயக்க முறைமைக்கு சொந்தமான வடிவத்தில் வழங்கப்பட்ட ஒரு தொகுப்பு, எ.கா. ஒரு RPM அல்லது " "DPKG கோப்பு." -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "பதிப்பு விவரக்குறிப்பு" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -4693,11 +4728,11 @@ msgstr "" "முழு விளக்கத்திற்கு. இந்த விவரக்குறிப்பிற்கான உதவி இதில் செயல்படுத்தப்பட்டது: குறிப்பு: " "`setuptools` v8.0 மற்றும்: Ref:` Pip` v6.0." -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "மெய்நிகர் சூழல்" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -4708,15 +4743,15 @@ msgstr "" "நிறுவ அனுமதிக்கும் ஒரு தனிமைப்படுத்தப்பட்ட பைதான் சூழல். மேலும் தகவலுக்கு, பகுதியைப் " "பார்க்கவும்: ref: `மெய்நிகர் சூழல்களை உருவாக்குதல் மற்றும் பயன்படுத்துதல்`." -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "சக்கர வடிவம்" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "சக்கரம்" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -4728,22 +4763,22 @@ msgstr "" "காண்க: குறிப்பு: மேலும் தகவலுக்கு `தொகுப்பு வடிவங்கள். அதன் குறிப்பு செயல்படுத்தலுடன் " "குழப்பமடையக்கூடாது, தி: கால: `சக்கர திட்டம்`." -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "சக்கர திட்டம்" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" "பைபா குறிப்பு செயல்படுத்தல்: கால: `சக்கர வடிவமைப்பு`; காண்க: குறிப்பு: `சக்கரம்`." -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "வேலை தொகுப்பு" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -4938,7 +4973,7 @@ msgstr "விவரம்" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "எடுத்துக்காட்டுகள்" @@ -5344,11 +5379,22 @@ msgstr "" "`பாண்டாச்-GBQ`_ திட்டம்` பாண்டாச்`_ வழியாக வினவல் முடிவுகளை அணுக அனுமதிக்கிறது." #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 +msgid "``ClickPy``" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:339 +msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 msgid "References" msgstr "குறிப்புகள்" -#: ../source/guides/analyzing-pypi-package-downloads.rst:339 +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 msgid "" "`PyPI Download Counts deprecation email `__" @@ -5356,7 +5402,7 @@ msgstr "" "`Pypi பதிவிறக்கம் எண்ணிக்கைகள் தேய்மான மின்னஞ்சல் ____ __ __" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -5802,7 +5848,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" "இருப்பினும், இந்த தொடரியல் சற்று நடைமுறைக்கு மாறானது; நாங்கள் மேலே வரையறுத்த நுழைவு " "புள்ளியின் பெயர் தொகுப்பு பெயருடன் பொருந்தவில்லை என்பதால், எந்த இயங்கக்கூடிய ச்கிரிப்டை " @@ -6317,7 +6363,7 @@ msgstr "" "unmanageable` விருப்பத்தை அனுப்ப வேண்டும்." #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -8492,11 +8538,12 @@ msgstr "உரிமம் அளிக்கும் எடுத்துக #| "aims to provide clear guidance how to migrate from the legacy to the " #| "standardized way of declaring licenses." msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" ". இந்த ஆவணம் உரிமைகளை அறிவிக்கும் தரப்படுத்தப்பட்ட வழிக்கு மரபுரிமையிலிருந்து எவ்வாறு " "குடிபெயர்வது என்பதை தெளிவான வழிகாட்டுதலை வழங்குவதை நோக்கமாகக் கொண்டுள்ளது." @@ -8543,7 +8590,11 @@ msgstr "" "அல்லது, திட்டம் பயன்படுத்தப்பட்டால்: கோப்பு: `setup.cfg`, அதன்` `[மெட்டாடேட்டா]` `அட்டவணை:" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +#, fuzzy +#| msgid "" +#| "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "விநியோக தொகுப்புகளுக்கான வெளியீட்டு கோர் மேனிலை தரவு பின்னர்:" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -8560,11 +8611,11 @@ msgstr "" "உரிமம்` இல் சக்கரம், மற்றும் அங்கிருந்து தள கோப்பகத்தில் (எ.கா.: கோப்பு: `தள-பேக்கேச்கள்/`) " "நிறுவலில் திறக்கப்படவில்லை; ." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "மேம்பட்ட எடுத்துக்காட்டு" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " @@ -8574,11 +8625,14 @@ msgstr "" "கோப்பு: `setuptools/_vendor/` மற்றும்: கோப்பு: `pkg_resources/_vendor/` " "கோப்பகங்கள்; குறிப்பாக:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" -msgstr "இந்த திட்டங்களுக்கான உரிம வெளிப்பாடுகள்:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +#, fuzzy +#| msgid "Some additional examples of valid ``License-Expression`` values:" +msgid "The appropriate license expressions are:" +msgstr "" +"செல்லுபடியாகும் `` உரிம-வெளிப்பாடு`` மதிப்புகளின் சில கூடுதல் எடுத்துக்காட்டுகள்:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " @@ -8588,7 +8642,7 @@ msgstr "" "சார்புநிலைகள் இந்த மெட்டாடேட்டாவைக் கொண்டிருக்கும், இது அனைத்து உரிம வெளிப்பாடுகளையும் " "ஒன்றாக இணைக்கிறது. அத்தகைய வெளிப்பாடு இருக்கலாம்:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -8606,7 +8660,7 @@ msgstr "" "கோப்பகத்தில் அப்பாச்சி 2.0 மற்றும் 2-உட்பிரிவு பி.எச்.டி உரிம உரை உள்ளது, மற்றும் " "பேக்கேசிங் பதிப்புரிமை அறிக்கை மற்றும் `உரிமம் தேர்வு அறிவிப்பு <பேக்கேசிங் லிசன்ச்_>` __." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " @@ -8615,11 +8669,11 @@ msgstr "" "குறிப்பாக, உரிமக் கோப்புகள் திட்ட மூல மரத்தில் பின்வரும் பாதைகளில் அமைந்துள்ளன என்று " "கருதுகிறோம் (திட்ட மூலத்துடன் தொடர்புடையது: கோப்பு: `pyproject.toml`):" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "அனைத்தையும் ஒன்றாக இணைத்து, எங்கள்: கோப்பு: `pyproject.toml` இருக்கும்:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" @@ -8627,16 +8681,16 @@ msgstr "" "அல்லது மாற்றாக, உரிமக் கோப்புகளை வெளிப்படையாக குறிப்பிடலாம் (பாதைகள் குளோப் வடிவங்கள் " "என விளக்கப்படும்):" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "எங்கள் திட்டம் பயன்படுத்தப்பட்டால்: கோப்பு: `setup.cfg`, இதை நாங்கள் வரையறுக்கலாம்:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "எந்தவொரு அணுகுமுறையிலும், விநியோகத்தில் வெளியீட்டு கோர் மெட்டாடேட்டா:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " @@ -8646,7 +8700,7 @@ msgstr "" "`கோர் மெட்டாடேட்டாவில் குறிப்பிடப்பட்டுள்ள செடிப்டூல்ச் வெளியீட்டின் பதிப்பாகவும், உரிமக் " "கோப்புகள் பாதைகளில் அமைந்திருக்கும்:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" @@ -8654,7 +8708,7 @@ msgstr "" "கட்டப்பட்ட சக்கரத்தில், உடன்: கோப்பு: `/` காப்பகத்தின் வேர் மற்றும் `` {VERSION} `` " "முந்தையதைப் போல, உரிமக் கோப்புகள் சேமிக்கப்படும்:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " @@ -8663,20 +8717,20 @@ msgstr "" "இறுதியாக, நிறுவப்பட்ட திட்டத்தில், உடன்: கோப்பு: `தள-பேக்கேச்கள்/` தள அடைவு மற்றும் `` " "{VERSION} `` முந்தையதைப் போல, உரிமக் கோப்புகள் நிறுவப்படும்:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "வெளிப்பாடு எடுத்துக்காட்டுகள்" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" "செல்லுபடியாகும் `` உரிம-வெளிப்பாடு`` மதிப்புகளின் சில கூடுதல் எடுத்துக்காட்டுகள்:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "பயனர் காட்சிகள்" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -8690,11 +8744,11 @@ msgstr "" "உறுதியாக தெரியாவிட்டால், உரிமம் பெற்ற சட்ட பயிற்சியாளரை தங்கள் அதிகார வரம்பில் அணுக " "வேண்டும்." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "என்னிடம் ஒரு தனியார் தொகுப்பு உள்ளது, அது விநியோகிக்கப்படாது" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " @@ -8704,7 +8758,7 @@ msgstr "" "வீட்டுக்கு வெளியே, இது * வழக்கமாக * முறையான உரிமத்தை சேர்க்க கண்டிப்பாக அவசியமில்லை, " "எனவே நீங்கள் இங்கே கூடுதல் எதையும் செய்ய வேண்டிய அவசியமில்லை." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -8716,12 +8770,12 @@ msgstr "" "தனியுரிமைக்குறி`, மற்றும்/அல்லது பதிப்புரிமை அறிக்கை மற்றும் ஒரு சட்ட அறிவிப்புகளை " "ஒரு: கோப்பு: `உரிமம். உங்கள் திட்ட அடைவு, இது தானாக பேக்கேசிங் கருவிகளால் சேர்க்கப்படும்." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" "நான் எனது சொந்த வேலையை சட்டரீதியான கட்டுப்பாடுகள் இல்லாமல் பகிர்ந்து கொள்ள விரும்புகிறேன்" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -8738,7 +8792,7 @@ msgstr "" "வேலையுடன் யாரையும் அவர்கள் விரும்பியதைச் செய்ய அனுமதிக்கிறது (நீங்கள் வழக்குத் தொடுப்பதைத் " "தவிர, நீங்கள் விரும்பாதது)." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -8751,11 +8805,11 @@ msgstr "" "pyproject.toml` இன் கீழ் `` உரிமம் = \"எம்ஐடி\" சேர்க்கவும் அல்லது அதன் கட்டமைப்பு கோப்பு/" "பிரிவில் இருந்தால். நீங்கள் முடித்துவிட்டீர்கள்!" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "எனது திட்டத்தை ஒரு குறிப்பிட்ட உரிமத்தின் கீழ் விநியோகிக்க விரும்புகிறேன்" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -8773,7 +8827,7 @@ msgstr "" "`Choosealicense __ __ அல்லது` spdx __ __ " "போன்ற தளங்களில் காணலாம்." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." @@ -8781,11 +8835,11 @@ msgstr "" "பல பிரபலமான குறியீடு ஓச்ட்கள், திட்ட வார்ப்புருக்கள் மற்றும் பேக்கேசிங் கருவிகள் உங்களுக்காக " "உரிமக் கோப்பைச் சேர்க்கலாம், மேலும் எதிர்காலத்திலும் வெளிப்பாட்டை ஆதரிக்கலாம்." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "ஏற்கனவே உரிமம் பெற்ற ஒரு தொகுப்பை நான் பராமரிக்கிறேன்" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " @@ -8794,7 +8848,17 @@ msgstr "" "உங்கள் திட்டத்தில் ஏற்கனவே உரிமக் கோப்புகள் மற்றும் மேனிலை தரவு இருந்தால், புதிய " "செயல்பாட்டைப் பயன்படுத்த நீங்கள் இரண்டு மாற்றங்களை மட்டுமே செய்ய வேண்டும்." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 +#, fuzzy +#| msgid "" +#| "In your project config file, enter your license expression under " +#| "``license`` (``[project]`` table in :file:`pyproject.toml`), or the " +#| "equivalent for your packaging tool, and make sure to remove any legacy " +#| "``license`` table subkeys or ``License ::`` classifiers. Your existing " +#| "``license`` value may already be valid as one (e.g. ``MIT``, ``Apache-2.0 " +#| "OR BSD-2-Clause``, etc); otherwise, check the `SPDX license list " +#| "`__ for the identifier that matches the license used in your " +#| "project." msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -8802,7 +8866,7 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" "உங்கள் திட்ட கட்டமைப்பு கோப்பில், உங்கள் உரிம வெளிப்பாட்டை `` உரிமம்`` (`` [திட்டம்] `` " "அட்டவணை: கோப்பு: `pyproject.toml`), அல்லது உங்கள் பேக்கேசிங் கருவிக்கு சமமானதாக " @@ -8812,7 +8876,7 @@ msgstr "" "பொருந்தக்கூடிய அடையாளங்காட்டிக்கு `SPDX உரிம பட்டியல் ` __ __ ஐ " "சரிபார்க்கவும்." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " @@ -8821,7 +8885,7 @@ msgstr "" "உங்கள் உரிமக் கோப்புகளை `` [திட்டம்] `` `இன் கீழ்` `உரிமக் கோப்புகள்` இன் கீழ் பட்டியலிடுவதை " "உறுதிசெய்க: கோப்பு:` pyproject.toml` அல்லது உங்கள் கருவியின் உள்ளமைவு கோப்பில்." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -8839,11 +8903,11 @@ msgstr "" "உரிமம் பெறும் மெட்டாடேட்டாவை தானாக மாற்றுவதை ஆதரிக்கக்கூடும்; மேலும் தகவலுக்கு உங்கள் " "கருவியின் ஆவணங்களை சரிபார்க்கவும்." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "எனது தொகுப்பில் வெவ்வேறு உரிமங்களின் கீழ் பிற குறியீடு அடங்கும்" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -8855,14 +8919,23 @@ msgstr "" "இருந்தால், சம்பந்தப்பட்ட உரிமங்களையும் அவற்றுக்கிடையேயான உறவை விவரிக்க உரிம வெளிப்பாட்டை " "உருவாக்கலாம்." -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 -msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 +#, fuzzy +#| msgid "" +#| "In short, ``License-1 AND License-2`` mean that *both* licenses apply to " +#| "your project, or parts of it (for example, you included a file under " +#| "another license), and ``License-1 OR License-2`` means that *either* of " +#| "the licenses can be used, at the user's option (for example, you want to " +#| "allow users a choice of multiple licenses). You can use parenthesis " +#| "(``()``) for grouping to form expressions that cover even the most " +#| "complex situations." +msgid "" +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" "சுருக்கமாக, `` உரிமம் -1 மற்றும் உரிமம் -2`` என்பது உங்கள் திட்டத்திற்கு அல்லது அதன் " "பகுதிகளுக்கு * இரண்டு * உரிமங்களும் பொருந்தும் என்று பொருள் (எடுத்துக்காட்டாக, நீங்கள் " @@ -9658,14 +9731,6 @@ msgstr "" "முதன்மையான நுழைவு புள்ளியை நேரடியாக அழைக்க `` பைதான் 3 -c '' `` " "பயன்படுத்த வேண்டும்." -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" -"மேலும் விவரங்களுக்கு `pkg_resources ஆவணங்கள் ` has been deprecated." msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" "இதற்கு முன்னர் பெயர்வெளி தொகுப்புகளை உருவாக்கப் பயன்படுத்தப்பட்ட இந்த இரண்டு முறைகள்: PEP: " "`420`, இப்போது வழக்கற்றுப் போய்விட்டதாகக் கருதப்படுகின்றன, மேலும் இந்த முறையைப் " "பயன்படுத்தும் தொகுப்புகளுடன் உங்களுக்கு பொருந்தக்கூடிய தன்மை தேவைப்பட்டால் " "பயன்படுத்தப்படக்கூடாது. மேலும், டிஓசி: `பி.கே." -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." @@ -10659,7 +10730,7 @@ msgstr "" "ஏற்கனவே உள்ள தொகுப்பை இடம்பெயர, பெயர்வெளியைப் பகிரும் அனைத்து தொகுப்புகளும் ஒரே " "நேரத்தில் இடம்பெயர வேண்டும்." -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -10671,16 +10742,23 @@ msgstr "" "பொருந்தாது. ஒரே பெயர்வெளிக்கு தொகுப்புகளை வழங்கும் வெவ்வேறு விநியோகங்களில் வெவ்வேறு " "முறைகளைப் பயன்படுத்துவது தவிர்க்க முடியாதது." -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "Pkgutil- பாணி பெயர்வெளி தொகுப்புகள்" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 +#, fuzzy +#| msgid "" +#| "Python 2.3 introduced the :doc:`pkgutil ` module " +#| "and the :py:func:`python:pkgutil.extend_path` function. This can be used " +#| "to declare namespace packages that need to be compatible with both Python " +#| "2.3+ and Python 3. This is the recommended approach for the highest level " +#| "of compatibility." msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" "பைதான் 2.3 அறிமுகப்படுத்தியது: டாக்: `pkgutil ` தொகுதி " @@ -10689,7 +10767,7 @@ msgstr "" "பயன்படுத்தலாம். இது மிக உயர்ந்த பொருந்தக்கூடிய அளவிற்கு பரிந்துரைக்கப்பட்ட " "அணுகுமுறையாகும்." -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" @@ -10697,8 +10775,8 @@ msgstr "" "ஒரு pkgutil- பாணி பெயர்வெளி தொகுப்பை உருவாக்க, நீங்கள் ஒரு: கோப்பு: `__init __. " "பெயர்வெளி தொகுப்புக்கான கோப்பு:" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" @@ -10706,8 +10784,8 @@ msgstr "" "தி: கோப்பு: `__init __. பெயர்வெளி தொகுப்புக்கான கோப்பு பின்வருவனவற்றைக் கொண்டிருக்க " "வேண்டும்:" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -10719,7 +10797,7 @@ msgstr "" "துணை தொகுப்புகள் இறக்குமதி செய்யப்படாது. ஏதேனும் கூடுதல் குறியீடு: கோப்பு: `__init " "__. Py` அணுக முடியாததாக இருக்கும்." -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." @@ -10727,21 +10805,44 @@ msgstr "" "இரண்டு Pkgutil- பாணி பெயர்வெளி தொகுப்புகளின் முழுமையான வேலை உதாரணத்தை `pkgutil " "பெயர்வெளி எடுத்துக்காட்டு திட்டம்`_ இல் காணலாம்." -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "PKG_RESOURCES-பாணி பெயர்வெளி தொகுப்புகள்" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +#, fuzzy +#| msgid "" +#| ":doc:`Setuptools ` provides the " +#| "`pkg_resources.declare_namespace`_ function and the " +#| "``namespace_packages`` argument to :func:`~setuptools.setup`. Together " +#| "these can be used to declare namespace packages. While this approach is " +#| "no longer recommended, it is widely present in most existing namespace " +#| "packages. If you are creating a new distribution within an existing " +#| "namespace package that uses this method then it's recommended to continue " +#| "using this as the different methods are not cross-compatible and it's not " +#| "advisable to try to migrate an existing package." +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" ". பெயர்வெளி தொகுப்புகளை அறிவிக்க இவை ஒன்றாக பயன்படுத்தப்படலாம். இந்த அணுகுமுறை இனி " "பரிந்துரைக்கப்படவில்லை என்றாலும், இது தற்போதுள்ள பெரும்பாலான பெயர்வெளி தொகுப்புகளில் " @@ -10750,7 +10851,7 @@ msgstr "" "அல்ல என்பதால் இதைப் பயன்படுத்த தொடர்ந்து பரிந்துரைக்கப்படுகிறது, மேலும் ஏற்கனவே உள்ள " "தொகுப்பை இடம்பெயர முயற்சிப்பது நல்லதல்ல." -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" @@ -10758,7 +10859,7 @@ msgstr "" "PKG_RESOURCES- பாணி பெயர்வெளி தொகுப்பை உருவாக்க, நீங்கள் ஒரு: கோப்பு: `__init __. " "பெயர்வெளி தொகுப்புக்கான கோப்பு:" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" @@ -10766,7 +10867,7 @@ msgstr "" "சில பழைய பரிந்துரைகள் பெயர்வெளி தொகுப்பில் பின்வருவனவற்றை அறிவுறுத்துகின்றன: கோப்பு: " "`__init __. Py`:" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -10780,7 +10881,7 @@ msgstr "" "செட்ப்டூல்களின் இருப்பு ஒரு கவலையாக இருந்தால், தொகுப்பு `` install_requires`` வழியாக " "செட்டுப்டூல்களை வெளிப்படையாக சார்ந்து இருக்க வேண்டும்." -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" @@ -10788,14 +10889,6 @@ msgstr "" "இறுதியாக, ஒவ்வொரு விநியோகமும் `` பெயர்வெளி_பேக்கேச்கள்` வாதத்தை வழங்க வேண்டும்: func: " "`~ setuptools.setup` இல்: கோப்பு:` setup.py`. உதாரணமாக:" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" -"இரண்டு pkg_resources- பாணி பெயர்வெளி தொகுப்புகளின் முழுமையான வேலை எடுத்துக்காட்டு " -"`pkg_resources பெயர்வெளி எடுத்துக்காட்டு திட்டம்`_ இல் காணலாம்." - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -11271,8 +11364,13 @@ msgstr "" "போது இரண்டு புரவலன் செய்யப்பட்ட சேவைகள் உள்ளன:" #: ../source/guides/supporting-multiple-python-versions.rst:65 +#, fuzzy +#| msgid "" +#| "`Travis CI `_ provides both a Linux and a macOS " +#| "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 " +#| "bit while the macOS is 10.9.2 at the time of writing." msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -12128,7 +12226,13 @@ msgstr "" "பைத்தான் 3.12 இல் உள்ள நிலையான நூலகத்திலிருந்து அகற்றப்பட்டது, இருப்பினும் இது இன்னும் " "செட்டுப்டூல்களிலிருந்து கிடைக்கிறது." -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +#, fuzzy +#| msgid "Building binary extensions" +msgid "Build backends for extension modules" +msgstr "பைனரி நீட்டிப்புகளை உருவாக்குதல்" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " @@ -12138,7 +12242,7 @@ msgstr "" "எழுதப்பட்ட மொழிக்கு பிரத்யேக ஆதரவுடன் ஒரு உருவாக்க முறையைப் பயன்படுத்துவது நல்லது, " "எடுத்துக்காட்டாக:" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," @@ -12146,7 +12250,7 @@ msgstr "" ":ref:`setuptools` -- natively supports C and C++ (with third-party " "செருகுநிரல்கள் க்கு Go and Rust)," -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," @@ -12154,7 +12258,7 @@ msgstr "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and மற்றொன்று மொழிகள் supported " "by Meson," -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," @@ -12162,15 +12266,15 @@ msgstr "" ":ref:`scikit-build-core` -- C, C++, Fortran, and மற்றொன்று மொழிகள் supported by " "CMake," -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr ": ref: `` Maturin` - ரச்ட், சரக்கு வழியாக." -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "கட்டிட வழங்கல்" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -12182,7 +12286,7 @@ msgstr "" "இது உங்களை பின்தளத்தில் கட்டியெழுப்புவதைத் தூண்டும்: குறிப்பு: `அறிவிக்கப்பட்ட ` இல்: கோப்பு: `pyproject.toml`." -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " @@ -12191,7 +12295,7 @@ msgstr "" "** செய்ய வேண்டாம் ** இந்த பணிக்கு `` பைதான் அமைவு. அனைத்து நேரடி அழைப்புகளும்: கோப்பு: " "`setup.py`: ref:` நீக்கப்பட்ட `." -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " @@ -12201,11 +12305,11 @@ msgstr "" "தளங்களுக்கான சக்கரங்களை விநியோகிக்க விரும்பினால், பயன்படுத்தவும்: ref: `cibuildwheel` " "உங்கள் தொஒ அமைப்பின் ஒரு பகுதியாக விநியோகிக்கக்கூடிய சக்கரங்களை உருவாக்க." -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "PYPI இல் பதிவேற்றுகிறது" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -12217,7 +12321,7 @@ msgstr "" "வெளியீட்டு>`, இது ஒரு சிஐ/சிடி பணிப்பாய்வுகளிலிருந்து பைபிக்கு பாதுகாப்பாக பதிவேற்ற " "அனுமதிக்கிறது கைமுறையாக கட்டமைக்கப்பட்ட பநிஇ கிள்ளாக்கு." -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" @@ -12225,29 +12329,29 @@ msgstr "" "நவம்பர் 2024 நிலவரப்படி, நம்பகமான வெளியீட்டு வழங்குநர்களாக பின்வரும் தளங்களை PYPI " "ஆதரிக்கிறது:" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "Github செயல்கள் (`` https: // github.com`` இல்)" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "Gitlab ci/cd (`https: // gitlab.com` இல்)" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "செயல்பாட்டு" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "கூகிள் முகில்" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "கிடைக்கக்கூடிய மற்ற முறை, தொகுப்பை கைமுறையாகப் பயன்படுத்துவதே: ref: `கயிறு`." -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." @@ -12255,11 +12359,11 @@ msgstr "" "** ஒருபோதும் ** இந்த பணிக்கு `` பைதான் அமைவு. இருப்பதற்கு கூடுதலாக: ref: `நீக்கப்பட்ட " "`, இது பாதுகாப்பற்றது." -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "பணிப்பாய்வு கருவிகள்" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -12277,31 +12381,31 @@ msgstr "" "பூட்டு கோப்புகள் . அவர்கள் பெரும்பாலும் மேலே குறிப்பிட்ட கருவிகளை பேட்டை கீழ் " "அழைக்கிறார்கள். அகர வரிசைப்படி:" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr ": Ref: `Flit`," -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr ": ref: `அட்ச்`," -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr ": DOC: `Nox `," -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr ": Ref: `PDM`," -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr ": ref: `பைபென்வ்`," -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr ": ref: `கவிதை`," -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr ": டாக்: `டாக்ச் <டோக்ச்: குறியீட்டு>`." @@ -12568,9 +12672,9 @@ msgid "Basic information" msgstr "அடிப்படை செய்தி" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "`` பெயர்``" @@ -12608,9 +12712,9 @@ msgstr "" "பொருள்``." #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -12648,7 +12752,7 @@ msgid "Dependencies and requirements" msgstr "சார்பு மற்றும் தேவைகள்" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "`` சார்புகள்``/`` விருப்ப-சார்புநிலைகள்``" @@ -12685,8 +12789,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "``-பைதான் தேவை`" @@ -12753,7 +12857,7 @@ msgid "About your project" msgstr "உங்கள் திட்டம் பற்றி" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "`` ஆசிரியர்கள்`/`` பராமரிப்பாளர்கள்``" @@ -12766,8 +12870,8 @@ msgstr "" "நபர்களின் பட்டியல்கள் உள்ளன." #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "`` விளக்கம்``" @@ -12782,8 +12886,8 @@ msgstr "" "முடிவுகளின் பட்டியல்கள் போன்ற பிற இடங்கள் (`எடுத்துக்காட்டு < pypi-search-pip_> `_)." #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "`` ரீட்மே``" @@ -12821,7 +12925,7 @@ msgid "``license`` and ``license-files``" msgstr "`` உரிம-கோப்புகள்``" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -12916,8 +13020,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "`` உரிமம்``" @@ -12960,25 +13064,32 @@ msgstr "" "மென்பொருளைத் தவிர்ப்பதால்." #: ../source/guides/writing-pyproject-toml.rst:353 -msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +#, fuzzy +#| msgid "" +#| "If your project is licensed with a license that doesn't have an existing " +#| "SPDX identifier, you can create a custom one in format ``LicenseRef-" +#| "[idstring]``. The custom identifiers must follow the SPDX specification, " +#| "`clause 10.1 `_ of the version 2.2 or any later " +#| "compatible one." +msgid "" +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" "ஏற்கனவே உள்ள SPDX அடையாளங்காட்டி இல்லாத உரிமத்துடன் உங்கள் திட்டத்திற்கு உரிமம் " "வழங்கப்பட்டால், நீங்கள் தனிப்பயன் ஒன்றை வடிவத்தில் உருவாக்கலாம் `` licenseref- [idstring] " "``. தனிப்பயன் அடையாளங்காட்டிகள் SPDX விவரக்குறிப்பைப் பின்பற்ற வேண்டும், `பிரிவு 10.1 " " _ _ _ _ _ _ அல்லது பின்னர் இணக்கமான ஏதேனும் ஒன்று." -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "`` உரிம-கோப்புகள்``" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." @@ -12986,11 +13097,11 @@ msgstr "" "இது உங்கள் தொகுப்புடன் விநியோகிக்க விரும்பும் பிற சட்டத் தகவல்களைக் கொண்ட உரிமக் கோப்புகள் " "மற்றும் கோப்புகளின் பட்டியல்." -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "குளோப் வடிவங்கள் விவரக்குறிப்பைப் பின்பற்ற வேண்டும்:" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." @@ -12998,7 +13109,7 @@ msgstr "" "எண்ணெழுத்து எழுத்துக்கள், அடிக்கோடிட்டு (`` _``), ஐபன்கள் (`` -``) மற்றும் புள்ளிகள் " "(`` .``) ஆகியவை சொற்களஞ்சியத்துடன் பொருந்தும்." -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." @@ -13006,11 +13117,11 @@ msgstr "" "சிறப்பு எழுத்துக்கள்: ``*``, ``? ``, `` ** `` மற்றும் எழுத்து வரம்புகள்: [] " "ஆதரிக்கப்படுகின்றன." -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "பாதை டிலிமிட்டர்கள் முன்னோக்கி ச்லாச் எழுத்துக்குறியாக இருக்க வேண்டும் (``/``)." -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." @@ -13018,15 +13129,15 @@ msgstr "" "வடிவங்கள் கொண்ட கோப்பகத்துடன் தொடர்புடையவை: கோப்பு: `pyproject.toml`, இதனால் ஒரு ச்லாச் " "பாத்திரத்துடன் தொடங்கக்கூடாது." -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "பெற்றோர் அடைவு குறிகாட்டிகள் (`` ..``) பயன்படுத்தப்படக்கூடாது." -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "ஒவ்வொரு குளோபும் குறைந்தது ஒரு கோப்பை பொருத்த வேண்டும்." -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." @@ -13034,13 +13145,13 @@ msgstr "" "நேரடி பாதைகள் செல்லுபடியாகும் குளோப்கள். இந்த விவரக்குறிப்பால் மூடப்படாத எந்த எழுத்துக்கள் " "அல்லது எழுத்துக்குறி காட்சிகளும் தவறானவை." -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "`` முக்கிய வார்த்தைகள்``" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." @@ -13048,13 +13159,13 @@ msgstr "" "இந்த முக்கிய வார்த்தைகளை மக்கள் தேடும்போது உங்கள் திட்டத்தை பரிந்துரைக்க இது பைபியின் தேடல் " "பெட்டியை உதவும்." -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "`` வகைப்படுத்திகள்``" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." @@ -13062,7 +13173,7 @@ msgstr "" "உங்கள் திட்டத்திற்கு பொருந்தும் PYPI வகைப்படுத்திகளின் பட்டியல். `சாத்தியக்கூறுகளின் முழு " "பட்டியலையும் சரிபார்க்கவும் <வகைப்படுத்தி-பட்டியல்_>` _." -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -13076,7 +13187,7 @@ msgstr "" "நிறுவக்கூடிய பைதான் பதிப்புகளை உண்மையில் கட்டுப்படுத்த, பயன்படுத்தவும்: ref: `-பைதான் " "தேவை." -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " @@ -13086,13 +13197,13 @@ msgstr "" "வேண்டாம்`` வகைப்படுத்தியைப் பயன்படுத்தவும். `` தனிப்பட்ட :: `` உடன் தொடங்கி " "வகைப்படுத்திகளுடன் தொகுப்புகளை PYPI எப்போதும் நிராகரிக்கும்." -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "`` urls``" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." @@ -13100,7 +13211,7 @@ msgstr "" "உங்கள் திட்டத்துடன் தொடர்புடைய முகவரி களின் பட்டியல், உங்கள் PYPI திட்ட பக்கத்தின் இடது " "பக்கப்பட்டியில் காட்டப்படும்." -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -13112,7 +13223,7 @@ msgstr "" " `_ PYPI- குறிப்பிட்ட " "முகவரி செயலாக்கத்திற்கு." -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" @@ -13121,7 +13232,7 @@ msgstr "" "லேபிளில் இடைவெளிகள் இருந்தால், அதை மேற்கோள் காட்ட வேண்டும், எ.கா., `` வலைத்தளம் = " "\"https://example.com\" ." -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " @@ -13131,7 +13242,7 @@ msgstr "" "முகவரி களுக்கு பொருத்தமான இடங்களில், மெட்டாடேட்டாவின் நுகர்வோர் (தொகுப்பு குறியீடுகள் " "போன்றவை) தங்கள் விளக்கக்காட்சியை நிபுணத்துவம் பெற முடியும்." -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " @@ -13140,7 +13251,7 @@ msgstr "" "எடுத்துக்காட்டாக, பின்வரும் மெட்டாடேட்டாவில், `` MyHomePage`` அல்லது `` \"பதிவிறக்கம் " "இணைப்பு\" `` என்பது ஒரு நன்கு அறியப்பட்ட சிட்டை, எனவே அவை சொற்களஞ்சியமாக வழங்கப்படும்:" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -13152,11 +13263,11 @@ msgstr "" "சொற்பொருளை மனதில் கொண்டு வழங்கலாம் (திட்டத்தின் முகப்புப் பக்கம் மற்றும் அதன் வெளிப்புற " "பதிவிறக்க இடம் முறையே)." -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "மேம்பட்ட செருகுநிரல்கள்" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " @@ -13166,15 +13277,15 @@ msgstr "" "மற்றும் பைக்மென்ட்ச்_ ஆகியவை அடங்கும். அத்தகைய சொருகி உருவாக்க, நீங்கள் அதை `` " "[Project.entry- புள்ளிகள்] `` இதைப் போன்ற ஒரு துணைப்பிரிவில் அறிவிக்க வேண்டும்:" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "பார்க்க: ref: `சொருகி வழிகாட்டி <சொருகி-நுழைவு புள்ளிகள்>` மேலும் தகவலுக்கு." -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "ஒரு முழு சான்று" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " @@ -13183,7 +13294,7 @@ msgstr "" "``-பைதான் = \"<= 3.10\" `` இங்கே. `இந்த வலைப்பதிவு இடுகையில் <-பைதான்-பிளாக்-" "போச்ட்_>` _ சாத்தியமான சிக்கல்கள் தொடர்பான சில தகவல்களைக் கொண்டுள்ளது." -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -17148,12 +17259,19 @@ msgid "WHEEL is the wheel metadata specific to a build of the package." msgstr "சக்கரம் என்பது தொகுப்பின் கட்டமைப்பிற்கு குறிப்பிட்ட சக்கர மேனிலை தரவு ஆகும்." #: ../source/specifications/binary-distribution-format.rst:239 +#, fuzzy +#| msgid "" +#| "RECORD is a list of (almost) all the files in the wheel and their secure " +#| "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " +#| "hash of itself, must include its hash. The hash algorithm must be sha256 " +#| "or better; specifically, md5 and sha1 are not permitted, as signed wheel " +#| "files rely on the strong hashes in RECORD to validate the integrity of " +#| "the archive." msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" "பதிவு என்பது சக்கரத்தில் உள்ள அனைத்து கோப்புகளையும் அவற்றின் பாதுகாப்பான ஆச்களின் " "(கிட்டத்தட்ட) பட்டியல். PEP 376 ஐப் போலன்றி, பதிவைத் தவிர ஒவ்வொரு கோப்பும், தன்னைத்தானே " @@ -17162,98 +17280,97 @@ msgstr "" "ஏனெனில் கையொப்பமிடப்பட்ட சக்கர கோப்புகள் காப்பகத்தின் ஒருமைப்பாட்டை சரிபார்க்க பதிவில் உள்ள " "வலுவான ஆச்களை நம்பியுள்ளன." -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "PEP 376 இன் நிறுவி மற்றும் கோரப்பட்டவை காப்பகத்தில் சேர்க்கப்படவில்லை." -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" -"Record.JWS டிசிட்டல் கையொப்பங்களுக்கு பயன்படுத்தப்படுகிறது. இது பதிவில் " -"குறிப்பிடப்படவில்லை." - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -"S/MIME கையொப்பங்களை தங்கள் சக்கரக் கோப்புகளைப் பாதுகாக்க விரும்பும் எவருக்கும் மரியாதையாக " -"Record.P7S அனுமதிக்கப்படுகிறது. இது பதிவில் குறிப்பிடப்படவில்லை." -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 +#, fuzzy +#| msgid "" +#| "During extraction, wheel installers verify all the hashes in RECORD " +#| "against the file contents. Apart from RECORD and its signatures, " +#| "installation will fail if any file in the archive is not both mentioned " +#| "and correctly hashed in RECORD." msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" "பிரித்தெடுக்கும் போது, சக்கர நிறுவிகள் கோப்பு உள்ளடக்கங்களுக்கு எதிராக பதிவுசெய்யப்பட்ட " "அனைத்து ஆச்களையும் சரிபார்க்கின்றன. பதிவு மற்றும் அதன் கையொப்பங்களைத் தவிர, காப்பகத்தில் " "உள்ள எந்தவொரு கோப்பும் குறிப்பிடப்படவில்லை மற்றும் பதிவில் சரியாக ஏச் செய்யப்பட்டால் நிறுவல் " "தோல்வியடையும்." -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 #, fuzzy #| msgid "Project name" msgid "Subdirectory name" msgstr "திட்ட பெயர்" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 #, fuzzy #| msgid "``license``" msgid "``licenses``" msgstr "`` உரிமம்``" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 #, fuzzy #| msgid "``license-files``" msgid "``license_files``" msgstr "`` உரிம-கோப்புகள்``" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 #, fuzzy #| msgid "``LIB``" msgid "``LICENSES``" msgstr "`` லிப்``" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "தி: கோப்பு: `.டிச்ட்-இன்ஃபோ/உரிமங்கள்/` அடைவு" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -17267,24 +17384,24 @@ msgstr "" "கோப்பு`` புலங்களில் பட்டியலிடப்பட்டுள்ள கோப்புகள்: கோப்பு: `மெட்டாடேட்டா` அந்தந்த பாதைகளில் " "கோப்பு : கோப்பு: `உரிமங்கள்/` அடைவு." -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 #, fuzzy #| msgid "The :file:`.dist-info/licenses/` directory" msgid "The :file:`.dist-info/sboms/` directory" msgstr "தி: கோப்பு: `.டிச்ட்-இன்ஃபோ/உரிமங்கள்/` அடைவு" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr ".டேட்டா அடைவு" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " @@ -17293,7 +17410,7 @@ msgstr "" "தள-தொகுப்புகளுக்குள் பொதுவாக நிறுவப்படாத எந்த கோப்பும் .data கோப்பகத்திற்குள் செல்கிறது, " "இது .dist-info கோப்பகமாக பெயரிடப்பட்டது, ஆனால் .டேட்டா/ நீட்டிப்பு ::" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " @@ -17303,111 +17420,18 @@ msgstr "" "உள்ளன. நிறுவலின் போது இந்த துணை அடைவுகளின் உள்ளடக்கங்கள் அவற்றின் இலக்கு பாதைகளில் " "நகர்த்தப்படுகின்றன." -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "கையொப்பமிடப்பட்ட சக்கர கோப்புகள்" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" -"சக்கர கோப்புகளில் டிசிட்டல் கையொப்பங்களை செயல்படுத்தும் நீட்டிக்கப்பட்ட பதிவு அடங்கும். ஒரு " -"பாதுகாப்பான ஆச் `` டைசச்ட் பெயர் = urlsafe_b64encode_nopad (டைசச்ட்) `` `` (ட்ரெயில்ங் " -"= எழுத்துக்கள் இல்லாத URLSAFE BASE64 குறியாக்கம்) ஒரு MD5SUM க்கு பதிலாக இரண்டாவது " -"நெடுவரிசையாக சேர்க்க PEP 376 இன் பதிவு மாற்றப்பட்டுள்ளது. .Pyc கோப்புகள் போன்ற எந்தவொரு " -"உருவாக்கப்பட்ட கோப்புகளும் உட்பட, சாத்தியமான அனைத்து உள்ளீடுகளும் ஆசெட் செய்யப்படுகின்றன, " -"ஆனால் அதன் சொந்த ஆசைக் கொண்டிருக்க முடியாத பதிவு அல்ல. உதாரணமாக ::" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" -"கையொப்ப கோப்பு (கள்) பதிவு. JWS மற்றும் Record.P7 கள் பதிவில் குறிப்பிடப்படவில்லை, " -"ஏனெனில் அவை பதிவு உருவாக்கப்பட்ட பின்னரே சேர்க்க முடியும். காப்பகத்தில் உள்ள மற்ற ஒவ்வொரு " -"கோப்பிலும் பதிவில் சரியான ஆச் இருக்க வேண்டும் அல்லது நிறுவல் தோல்வியடையும்." - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" -"சாதொபொகு வலை கையொப்பங்கள் பயன்படுத்தப்பட்டால், ஒன்று அல்லது அதற்கு மேற்பட்ட சாதொபொகு வலை " -"கையொப்பம் சாதொபொகு சீரியலைசேசன் (JWS-JS) கையொப்பங்கள் ஒரு கோப்பு பதிவில் " -"சேமிக்கப்படுகின்றன. பதிவுக்கு அருகிலுள்ள JWS. கையொப்பத்தின் சாதொபொகு பேலோடாக SHA-256 " -"ஆச் பதிவின் மூலம் பதிவில் கையெழுத்திட JWS பயன்படுத்தப்படுகிறது:" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "(ஆச் மதிப்பு என்பது பதிவில் பயன்படுத்தப்படும் அதே வடிவமாகும்.)" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" -"Record.P7S பயன்படுத்தப்பட்டால், அதில் பதிவின் பிரிக்கப்பட்ட S/MIME வடிவமைப்பு கையொப்பம் " -"இருக்க வேண்டும்." - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" -"டிசிட்டல் கையொப்பங்களைப் புரிந்து கொள்ள ஒரு சக்கர நிறுவி தேவையில்லை, ஆனால் " -"பிரித்தெடுக்கப்பட்ட கோப்பு உள்ளடக்கங்களுக்கு எதிராக பதிவில் உள்ள ஆச்களை சரிபார்க்க வேண்டும். " -"நிறுவி கோப்பு ஆச்களை பதிவுக்கு எதிராக சரிபார்க்கும்போது, ஒரு தனி கையொப்பச் சரிபார்ப்பு " -"கையொப்பத்துடன் பொருந்துகிறது என்பதை மட்டுமே நிறுவ வேண்டும்." - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "பார்க்க" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "https://datatracker.ietf.org/doc/html/rfc7515" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "https://datatracker.ietf.org/doc/html/rfc7517" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "கேள்விகள்" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" "சக்கரம் ஒரு .டேட்டா கோப்பகத்தை வரையறுக்கிறது. எனது எல்லா தரவையும் நான் அங்கு வைக்க " "வேண்டுமா?" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -17422,62 +17446,11 @@ msgstr "" "தொடர்ந்து `` pkgutil.get_data (தொகுப்பு, வளம்) `` அந்த * கோப்புகள் வழக்கமாக * " "சக்கரத்தின் * `` .data`` கோப்பகத்தில் விநியோகிக்கப்படாது என்றாலும் தொடர்ந்து பயன்படுத்தலாம்." -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "வீல் ஏன் இணைக்கப்பட்ட கையொப்பங்களை உள்ளடக்கியது?" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" -"இணைக்கப்பட்ட கையொப்பங்கள் பிரிக்கப்பட்ட கையொப்பங்களை விட வசதியானவை, ஏனெனில் அவை " -"காப்பகத்துடன் பயணிக்கின்றன. தனிப்பட்ட கோப்புகள் மட்டுமே கையொப்பமிடப்பட்டதால், கையொப்பத்தை " -"செல்லாததாக்காமல் காப்பகத்தை மறுசீரமைக்க முடியும் அல்லது முழு காப்பகத்தையும் பதிவிறக்கம் " -"செய்யாமல் தனிப்பட்ட கோப்புகளை சரிபார்க்க முடியும்." - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "JWS கையொப்பங்களை சக்கரம் ஏன் அனுமதிக்கிறது?" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" -"சே.டபிள்யூ.எச் ஒரு பகுதியாக இருக்கும் சோச் விவரக்குறிப்புகள் நடைமுறைப்படுத்த எளிதானதாக " -"வடிவமைக்கப்பட்டுள்ளன, இது சக்கரத்தின் முதன்மை வடிவமைப்பு இலக்குகளில் ஒன்றாகும். JWS ஒரு " -"பயனுள்ள, சுருக்கமான தூய-பைதான் செயல்படுத்தலை அளிக்கிறது." - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "வீல் ஏன் எச்/மைம் கையொப்பங்களையும் அனுமதிக்கிறது?" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" -"தற்போதுள்ள பொது விசை உள்கட்டமைப்பை சக்கரத்துடன் பயன்படுத்த விரும்பும் அல்லது பயன்படுத்த " -"விரும்பும் பயனர்களுக்கு எச்/மைம் கையொப்பங்கள் அனுமதிக்கப்படுகின்றன." - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" -"கையொப்பமிடப்பட்ட தொகுப்புகள் பாதுகாப்பான தொகுப்பு புதுப்பிப்பு அமைப்பில் ஒரு அடிப்படை " -"கட்டுமானத் தொகுதி மட்டுமே. சக்கரம் கட்டுமானத் தொகுதியை மட்டுமே வழங்குகிறது." - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "\"பியூரிலிப்\" வெர்சச் \"பிளாட்ட்லிப்\" உடன் என்ன ஒப்பந்தம்?" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -17489,7 +17462,7 @@ msgstr "" "lib/pythonx.y/site-packages' மற்றும் இயங்குதள சார்பு தொகுப்புகளை '/usr/lib64/" "pythonx.y/site-packages' க்கு நிறுவுகிறது." -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -17501,7 +17474,7 @@ msgstr "" "ரூட்டில் உள்ள கோப்புகள், மற்றும் \"பியூரிலிப்\" மற்றும் \"பிளாட்லிப்\" வகைகளில் கோப்புகளை " "வைத்திருப்பது சட்டபூர்வமானது." -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " @@ -17511,11 +17484,11 @@ msgstr "" "அல்லது \"பிளாட்லிப்\" ஒன்று மட்டுமே இருக்க வேண்டும், மேலும் அந்த கோப்புகள் \"ரூட்-இச்-" "பூரெலிப்\" க்கு வழங்கப்பட்ட பொருத்தமான அமைப்போடு வேரில் இருக்க வேண்டும்." -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "சக்கர கோப்பிலிருந்து நேரடியாக பைதான் குறியீட்டை இறக்குமதி செய்ய முடியுமா?" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -17529,7 +17502,7 @@ msgstr "" "இந்த நடத்தை வடிவமைப்பு வடிவமைப்பின் இயல்பான விளைவு என்றாலும், உண்மையில் அதை " "நம்பியிருப்பது பொதுவாக ஊக்கமளிக்கிறது." -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -17547,7 +17520,7 @@ msgstr "" "நீட்டிப்புகளுக்கான நிலையான உருவாக்க இயந்திரங்களுடன் முழுமையாக ஒருங்கிணைத்தல் தலைப்பு " "கோப்புகள் பொருத்தமான இடத்தில்)." -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -17578,7 +17551,7 @@ msgstr "" "மென்பொருள் சுருக்கமான வள ஏபிஐகளை உள்நாட்டில் சரியாகப் பயன்படுத்தும்போது கூட, வெளிப்புற " "கூறுகளுடன் இடைமுகப்படுத்த இன்னும் உண்மையான வட்டு கோப்பின் கிடைக்கும் தன்மை தேவைப்படலாம்." -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -17592,7 +17565,7 @@ msgstr "" "செய்தால், பல திட்டங்களுக்கு உண்மையான பிழையாக ஏற்றுக்கொள்வதற்கு முன்பு முழுமையாக " "நிறுவப்பட்ட தொகுப்புடன் மீண்டும் உருவாக்கத் தோல்வி தேவைப்படும் என்பதை அறிந்து கொள்ளுங்கள்." -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -17604,20 +17577,20 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "வரலாறு" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "பிப்ரவரி 2013: இந்த விவரக்குறிப்பு மூலம் அங்கீகரிக்கப்பட்டது: PEP: `427`." -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." @@ -17625,7 +17598,7 @@ msgstr "" "பிப்ரவரி 2021: சக்கர கோப்பு பெயர்களில் தப்பிப்பது தொடர்பான விதிகள் திருத்தப்பட்டன, " "பிரபலமான கருவிகள் உண்மையில் என்ன செய்கின்றன என்பதற்கு ஏற்ப அவற்றைக் கொண்டுவருவதற்காக." -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -17637,7 +17610,7 @@ msgstr "" "எதிர்கொள்ளும்போது கருவிகளின் எதிர்பார்க்கப்படும் நடத்தை முறையாக வரையறுக்கப்படவில்லை, எனவே " "கருவிகளுக்கு இடையில் வேறுபடலாம்)." -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " @@ -17646,7 +17619,7 @@ msgstr "" "டிசம்பர் 2024: தி: கோப்பு: `.டிச்ட்-இன்ஃபோ/உரிமங்கள்/` அடைவு மூலம் குறிப்பிடப்பட்டது: " "PEP: `639`." -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." @@ -17654,11 +17627,15 @@ msgstr "" "சனவரி 2025: அந்த பெயர் மற்றும் பதிப்பை தெளிவுபடுத்தியது `` .dist-info`` மற்றும் " "`.data`` கோப்பகங்களுக்கு இயல்பாக்கப்பட வேண்டும்." -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "பின் இணைப்பு" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "எடுத்துக்காட்டு urlsafe-base64-NOPAD செயல்படுத்தல் ::" @@ -18489,12 +18466,20 @@ msgstr "" "\"2.2\", \"2.3\" மற்றும் \"2.4\"." #: ../source/specifications/core-metadata.rst:55 -msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +#, fuzzy +#| msgid "" +#| "Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " +#| "greater than the highest version they support, and MUST fail if " +#| "``metadata_version`` has a greater major version than the highest version " +#| "they support (as described in the :ref:`Version specifier specification " +#| "`, the major version is the value before the first " +#| "dot)." +msgid "" +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" "மெட்டாடேட்டாவை உட்கொள்ளும் தானியங்கி கருவிகள் `` மெட்டாடேட்டா_்வெர்சன்`` அவர்கள் ஆதரிக்கும் " "மிக உயர்ந்த பதிப்பை விட அதிகமாக இருந்தால் எச்சரிக்க வேண்டும், மேலும் அவர்கள் ஆதரிக்கும் " @@ -20874,7 +20859,13 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" @@ -20882,11 +20873,11 @@ msgstr "" "PIP, பைதான் தொகுப்புகளுக்கான பரிந்துரைக்கப்பட்ட நிறுவி (http://pip.readthedocs.org/" "en/stable/)" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "வோக்கோசு பெக் நூலகம். (https://pypi.python.org/pypi/parsly/)" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -23607,7 +23598,7 @@ msgstr "" "எடுத்துக்காட்டு." #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "பரிந்துரைகள்" @@ -26296,10 +26287,22 @@ msgstr "" "குறிப்பு:` ஃபிளிட்`." #: ../source/specifications/pypirc.rst:13 +#, fuzzy +#| msgid "The :file:`.pypirc` file" +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "தி: கோப்பு: `.pypirc` கோப்பு" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "வடிவம் (முதலில் வரையறுக்கப்படுகிறது: ref: `தொலைதூரங்கள்` தொகுப்பு):" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." @@ -26307,23 +26310,23 @@ msgstr "" "`` தொலைதூரங்கள்`` பிரிவு ஒரு `` குறியீட்டு-சேவையகங்கள்` துறையை வரையறுக்கிறது, இது " "ஒரு களஞ்சியத்தை விவரிக்கும் அனைத்து பிரிவுகளின் பெயரையும் பட்டியலிடுகிறது." -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "ஒரு களஞ்சியத்தை விவரிக்கும் ஒவ்வொரு பகுதியும் மூன்று புலங்களை வரையறுக்கிறது:" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "`` களஞ்சியம்``: களஞ்சியத்தின் முகவரி." -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "`` பயனர்பெயர்``: களஞ்சியத்தில் பதிவுசெய்யப்பட்ட பயனர்பெயர்." -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "`` கடவுச்சொல்``: பயனர்பெயரை அங்கீகரிக்க பயன்படுத்தப்படும் கடவுச்சொல்." -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " @@ -26333,7 +26336,7 @@ msgstr "" "பாதுகாப்பிற்காக, `கீரிங்`_ போன்ற மாற்றீட்டைக் கவனியுங்கள், சுற்றுச்சூழல் மாறிகள் அமைத்தல் " "அல்லது கடவுச்சொல்லை கட்டளை வரியில் வழங்குதல்." -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" @@ -26341,11 +26344,11 @@ msgstr "" "இல்லையெனில், அனுமதிகளை அமைக்கவும்: கோப்பு: `.pypirc`, இதனால் நீங்கள் மட்டுமே அதைப் " "பார்க்க அல்லது மாற்ற முடியும். எடுத்துக்காட்டாக, லினக்ச் அல்லது மேகோசில், இயக்கவும்:" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "பொதுவான உள்ளமைவுகள்" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " @@ -26356,7 +26359,7 @@ msgstr "" "மேலும் விவரங்கள் மற்றும் பயன்பாட்டு வழிமுறைகளுக்கு ஒவ்வொரு திட்டத்தின் ஆவணங்களையும் " "பார்க்கவும்." -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" @@ -26364,7 +26367,7 @@ msgstr "" "கயிறின் இயல்புநிலை உள்ளமைவு மிமிக்ச் a: கோப்பு: `.pypirc` பைபி மற்றும் டெச்ட்பிஐ " "ஆகியவற்றிற்கான களஞ்சிய பிரிவுகளுடன்:" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." @@ -26372,11 +26375,11 @@ msgstr "" "கயிறு கூடுதல் உள்ளமைவைச் சேர்க்கும்: கோப்பு: `$ home/.pypirc`, கட்டளை வரி மற்றும் " "சுற்றுச்சூழல் மாறிகள் இந்த இயல்புநிலை உள்ளமைவுக்கு." -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "பைபி கிள்ளாக்கைப் பயன்படுத்துதல்" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" @@ -26384,7 +26387,7 @@ msgstr "" "PYPI க்கு உங்கள் `API டோக்கன்`_ ஐ அமைக்க, நீங்கள் ஒரு: கோப்பு:` $ home/.pypirc` " "போன்றவற்றை உருவாக்கலாம்:" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." @@ -26392,11 +26395,11 @@ msgstr "" "For: ref: `TestPypi `, `` [TestPypi] `` பகுதியைச் சேர்க்கவும், " "உங்கள் டெச்ட்பை கணக்கிலிருந்து பநிஇ கிள்ளாக்கைப் பயன்படுத்தி." -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "மற்றொரு தொகுப்பு குறியீட்டைப் பயன்படுத்துதல்" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " @@ -26406,7 +26409,7 @@ msgstr "" "மறுவரையறை செய்ய வேண்டும். ஒரு முழுமையான எடுத்துக்காட்டு இங்கே: கோப்பு: `$ " "home/.pypirc` pypi, testpypi மற்றும் ஒரு தனியார் களஞ்சியத்திற்கு:" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -26436,10 +26439,6 @@ msgstr "" "கருவிகளுக்கான) உள்ளமைவு கோப்பாக செயல்படுகிறது." #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "இந்த விவரக்குறிப்பு முதலில் வரையறுக்கப்பட்டது: PEP: `518` மற்றும்: PEP:` 621`." - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" @@ -26488,7 +26487,7 @@ msgstr "" "ஒரு எடுத்துக்காட்டு `` [பில்ட்-சிச்டம்] `` `` setuptools`` உடன் கட்டப்பட்ட ஒரு " "திட்டத்திற்கான அட்டவணை:" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." @@ -26496,7 +26495,7 @@ msgstr "" "`` Pyproject.toml`` கோப்பு இல்லாதபோது, மேலே உள்ள எடுத்துக்காட்டு உள்ளமைவு கோப்பை " "அவற்றின் இயல்புநிலை சொற்பொருளாகப் பயன்படுத்தும் என்று எதிர்பார்க்கப்படுகிறது." -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -26513,7 +26512,7 @@ msgstr "" "இயல்புநிலை மதிப்புகள் பயன்படுத்தப்பட வேண்டும். அட்டவணை குறிப்பிடப்பட்டாலும், தேவையான " "புலங்களைக் காணவில்லை என்றால், கருவி அதை பிழையாகக் கருத வேண்டும்." -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -26521,7 +26520,7 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " @@ -26531,11 +26530,11 @@ msgstr "" "குறிப்பிட்ட பிரதிநிதித்துவத்தை வழங்க, பின்வரும் `json Schema ` _ தரவு வடிவத்துடன் பொருந்தும்:" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "திட்ட மெட்டாடேட்டாவை அறிவித்தல்: `` [திட்டம்] `` அட்டவணை" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." @@ -26543,7 +26542,7 @@ msgstr "" "`` [திட்டம்] `` அட்டவணை திட்டத்தின் குறிப்பிடுகிறது: குறிப்பு: `கோர் மேனிலை தரவு <கோர்-" "மெட்டாடேட்டா>`." -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -26560,7 +26559,7 @@ msgstr "" "விவரக்குறிப்பில் பின்னர் வரையறுக்கப்படுகிறது) மற்றும் ஒரு கருவி பின்னர் வழங்கும் " "மெட்டாடேட்டாவைக் குறிக்கிறது." -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." @@ -26568,11 +26567,11 @@ msgstr "" "ஒரு `` [திட்டம்] `` அட்டவணை மறைமுகமாக: காலப்பகுதி: `பின்தளத்தில் உருவாக்கு " "<பின்தளத்தில் உருவாக்கு>` எல்லா விசைகளையும் மாறும்." -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "சட்டப்பூர்வமாக வரையறுக்கப்பட வேண்டிய ஒரே விசைகள்:" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" @@ -26580,7 +26579,7 @@ msgstr "" "தேவைப்படும் ஆனால் குறிப்பிடக்கூடிய விசைகள் * நிலையானவை அல்லது மாறும் என " "பட்டியலிடப்பட்டுள்ளன:" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." @@ -26588,60 +26587,60 @@ msgstr "" "மற்ற எல்லா விசைகளும் விருப்பமானதாகக் கருதப்படுகின்றன, மேலும் அவை நிலையான முறையில் " "குறிப்பிடப்படலாம், மாறும் என பட்டியலிடப்பட்டிருக்கலாம் அல்லது குறிப்பிடப்படாதவை." -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "`` [திட்ட] `` அட்டவணையில் அனுமதிக்கப்பட்ட விசைகளின் முழுமையான பட்டியல்:" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "`` ஆசிரியர்கள்``" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "`` சார்புகள்``" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "`` டைனமிக்``" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "`` நுழைவு புள்ளிகள்``" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "`` குய்-ச்கிரிப்ட்ச்``" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 #, fuzzy #| msgid "``name``" msgid "``import-names``" msgstr "`` பெயர்``" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "`` பராமரிப்பாளர்கள்``" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "`` விருப்ப-சார்புநிலைகள்``" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "TOML_ வகை: சரம்" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" @@ -26649,11 +26648,11 @@ msgstr "" "தொடர்புடைய: குறிப்பு: `கோர் மேனிலை தரவு <கோர்-மெட்டாடேட்டா>` புலம் :: குறிப்பு: " "`பெயர் <கோர்-மெட்டாடேட்டா-பெயர்>`" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "திட்டத்தின் பெயர்." -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." @@ -26661,7 +26660,7 @@ msgstr "" "கருவிகள் செய்ய வேண்டும்: குறிப்பு: `இயல்பான <பெயர்-இயல்பாக்கம்>` இந்த பெயர் உள் " "நிலைத்தன்மைக்கு படித்தவுடன்." -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" @@ -26669,7 +26668,7 @@ msgstr "" "தொடர்புடைய: ref: `கோர் மேனிலை தரவு <கோர்-மெட்டாடேட்டா>` புலம் :: குறிப்பு: `பதிப்பு " "<கோர்-மெட்டாடேட்டா-பதிப்பு>`" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." @@ -26677,11 +26676,11 @@ msgstr "" "திட்டத்தின் பதிப்பு, இல் வரையறுக்கப்பட்டுள்ளது: ref: `பதிப்பு விவரக்குறிப்பு " "விவரக்குறிப்பு <பதிப்பு-விவரக்குறிப்புகள்>`." -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "ஏற்கனவே இயல்பாக்கப்பட்ட பதிப்புகளைக் குறிப்பிட பயனர்கள் விரும்ப வேண்டும்." -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" @@ -26689,7 +26688,7 @@ msgstr "" "தொடர்புடையது: ref: `கோர் மேனிலை தரவு <கோர்-மெட்டாடேட்டா>` புலம் :: குறிப்பு: " "`சுருக்கம் <கோர்-மெட்டாடேட்டா-சுருக்கம்>`" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." @@ -26697,11 +26696,11 @@ msgstr "" "திட்டத்தின் சுருக்க விளக்கம் ஒரு வரியில். இதில் பல வரிகள் இருந்தால் கருவிகள் பிழையாக " "இருக்கலாம்." -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "TOML_ வகை: சரம் அல்லது அட்டவணை" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type ` மற்றும்: குறிப்பு: `விளக்கம்-கண்டி-வகை <கோர்-மெட்டாடேட்டா-" "விளக்கமளிப்பு-வகை>`" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "திட்டத்தின் முழு விளக்கம் (அதாவது README)." -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -26738,7 +26737,7 @@ msgstr "" "பயனருக்கான உள்ளடக்க வகையை அவை ஊகிக்கக்கூடும். அடையாளம் காணப்படாத அனைத்து " "பின்னொட்டுகளுக்கும் உள்ளடக்க வகை வழங்கப்படாதபோது, கருவிகள் பிழையை உயர்த்த வேண்டும்." -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -26752,7 +26751,7 @@ msgstr "" "முழு விளக்கமாகும். இந்த விசைகள் இருவழி பிரத்தியேகமானவை, இதனால் மேனிலை தரவு இரண்டு " "விசைகளையும் குறிப்பிடினால் கருவிகள் பிழையை எழுப்ப வேண்டும்." -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -26772,7 +26771,7 @@ msgstr "" "மேனிலை தரவு <கோர்-மெட்டாடேட்டா>`. இல்லையெனில் கருவிகள் ஆதரிக்கப்படாத உள்ளடக்க " "வகைகளுக்கு பிழையை எழுப்ப வேண்டும்." -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" @@ -26780,11 +26779,11 @@ msgstr "" "தொடர்புடையது: குறிப்பு: `கோர் மேனிலை தரவு <கோர்-மெட்டாடேட்டா>` புலம் :: குறிப்பு: `-" "பைதான் <கோர்-மெட்டாடேட்டா-வேண்டுகோள்-பைதான்>` தேவை" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "திட்டத்தின் பைதான் பதிப்பு தேவைகள்." -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" @@ -26792,7 +26791,7 @@ msgstr "" "தொடர்புடைய: ref: `கோர் மேனிலை தரவு <கோர்-மெட்டாடேட்டா>` புலம் :: குறிப்பு: `உரிம-" "வெளிப்பாடு <கோர்-மெட்டாடேட்டா-லிசென்ச்-எக்ச்பிரசன்>`" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 #, fuzzy #| msgid "" #| "Text string that is a valid SPDX license expression as defined " @@ -26806,7 +26805,7 @@ msgstr "" "வரையறுக்கப்பட்டுள்ளபடி செல்லுபடியாகும் SPDX உரிம வெளிப்பாடு உரை சரம்: PEP: `639`. " "கருவிகள் வெளிப்பாட்டின் வழக்கு இயல்பாக்கலை சரிபார்க்க வேண்டும் மற்றும் செய்ய வேண்டும்." -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -26815,19 +26814,19 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 #, fuzzy #| msgid "PyPA specifications" msgid "Legacy specification" msgstr "PYPA விவரக்குறிப்புகள்" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 #, fuzzy #| msgid "TOML_ type: string or table" msgid "TOML_ type: table" msgstr "TOML_ வகை: சரம் அல்லது அட்டவணை" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 #, fuzzy #| msgid "" #| "Corresponding :ref:`core metadata ` field: :ref:`Name " @@ -26839,7 +26838,7 @@ msgstr "" "தொடர்புடைய: குறிப்பு: `கோர் மேனிலை தரவு <கோர்-மெட்டாடேட்டா>` புலம் :: குறிப்பு: " "`பெயர் <கோர்-மெட்டாடேட்டா-பெயர்>`" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 #, fuzzy #| msgid "" #| "The ``readme`` key may also take a table. The ``file`` key has a string " @@ -26861,26 +26860,26 @@ msgstr "" "முழு விளக்கமாகும். இந்த விசைகள் இருவழி பிரத்தியேகமானவை, இதனால் மேனிலை தரவு இரண்டு " "விசைகளையும் குறிப்பிடினால் கருவிகள் பிழையை எழுப்ப வேண்டும்." -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "டாம்_ வகை: சரங்களின் வரிசை" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -26893,7 +26892,7 @@ msgstr "" "கோப்புகள், எ.கா.: கோப்பு:` setup.py`,: `setup.cfg `, முதலியன) தொகுப்புடன் " "விநியோகிக்கப்பட வேண்டிய உரிமங்கள் மற்றும் பிற சட்ட அறிவிப்புகளைக் கொண்ட (கள்)." -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 #, fuzzy #| msgid "The strings MUST contain valid glob patterns, as specified below:" msgid "" @@ -26902,7 +26901,7 @@ msgid "" msgstr "" "கீழே குறிப்பிடப்பட்டுள்ளபடி சரங்களில் செல்லுபடியாகும் குளோப் வடிவங்கள் இருக்க வேண்டும்:" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 #, fuzzy #| msgid "" #| "Patterns are relative to the directory containing :file:`pyproject.toml`, " @@ -26913,7 +26912,7 @@ msgstr "" "வடிவங்கள் கொண்ட கோப்பகத்துடன் தொடர்புடையவை: கோப்பு: `pyproject.toml`, இதனால் ஒரு ச்லாச் " "பாத்திரத்துடன் தொடங்கக்கூடாது." -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." @@ -26921,11 +26920,11 @@ msgstr "" "உரிமக் கோப்பு உள்ளடக்கம் செல்லுபடியாகும் UTF-8 குறியிடப்பட்ட உரை என்று கருவிகள் கருத " "வேண்டும், மேலும் இதைச் சரிபார்த்து, இல்லையென்றால் பிழையை உயர்த்த வேண்டும்." -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "கருவிகளை உருவாக்கு:" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." @@ -26933,7 +26932,7 @@ msgstr "" "அனைத்து விநியோக காப்பகங்களிலும் பட்டியலிடப்பட்ட வடிவத்தால் பொருந்தக்கூடிய அனைத்து " "கோப்புகளையும் சேர்க்க வேண்டும்." -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." @@ -26941,7 +26940,7 @@ msgstr "" "பொருந்திய ஒவ்வொரு கோப்பு பாதையும் கோர் மெட்டாடேட்டாவில் உரிம-கோப்பு புலத்தின் கீழ் " "பட்டியலிட வேண்டும்." -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -26956,11 +26955,11 @@ msgstr "" "வேண்டாம் என்று தேர்வு செய்யலாம் அல்லது விநியோகத்தில் பொருத்தமான கோப்புகளைக் கண்டறிய தங்கள் " "சொந்த தர்க்கத்தைப் பயன்படுத்தலாம்." -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "TOML_ வகை: சரம் விசைகள் மற்றும் மதிப்புகளுடன் இன்லைன் அட்டவணைகளின் வரிசை" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `,: குறிப்பு: `பராமரிப்பாளர் `, மற்றும்: ref: " "`பராமரிப்பாளர்-எமெயில் `" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " @@ -26982,7 +26981,7 @@ msgstr "" "விளக்கத்திற்கு திறந்திருக்கும் - இது அசல் அல்லது முதன்மை ஆசிரியர்கள், தற்போதைய " "பராமரிப்பாளர்கள் அல்லது தொகுப்பின் உரிமையாளர்களை பட்டியலிடலாம்." -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." @@ -26990,7 +26989,7 @@ msgstr "" "\"பராமரிப்பாளர்கள்\" விசை \"ஆசிரியர்களுக்கு\" ஒத்ததாகும், அதன் சரியான பொருள் " "விளக்கத்திற்கு திறந்திருக்கும்." -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -27005,13 +27004,13 @@ msgstr "" "மின்னஞ்சல் முகவரியாக இருக்க வேண்டும். இரண்டு விசைகளும் விருப்பமானவை, ஆனால் குறைந்தபட்சம் " "விசைகளில் ஒன்று அட்டவணையில் குறிப்பிடப்பட வேண்டும்." -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" "நிரப்ப தரவைப் பயன்படுத்துதல்: ref: `கோர் மேனிலை தரவு <கோர்-மெட்டாடேட்டா>` பின்வருமாறு:" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." @@ -27020,7 +27019,7 @@ msgstr "" "ஆசிரியர்>` அல்லது: குறிப்பு: `பராமரிப்பாளர் <கோர்-மெட்டாடேட்டா-ஐன்டெய்னர்>` " "பொருத்தமானதாகும்." -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` அல்லது: குறிப்பு: `பராமரிப்பாளர்-எமெயில் " "<கோர்-மெட்டாடேட்டா-திருவிழா-எமெயில்>` என பொருத்தமானது." -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email `` வடிவத்துடன் பராமரிப்பாளர்-எமெயில்> " "`பொருத்தமானது." -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "பல மதிப்புகள் காற்புள்ளிகளால் பிரிக்கப்பட வேண்டும்." -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" @@ -27053,11 +27052,11 @@ msgstr "" "தொடர்புடைய: ref: `கோர் மேனிலை தரவு <கோர்-மெட்டாடேட்டா>` புலம் :: குறிப்பு: `முக்கிய " "வார்த்தைகள் <கோர்-மெட்டாடேட்டா-கீவேர்டுகள்>`" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "திட்டத்திற்கான முக்கிய வார்த்தைகள்." -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" @@ -27065,11 +27064,11 @@ msgstr "" "தொடர்புடைய: ref: `கோர் மேனிலை தரவு <கோர்-மெட்டாடேட்டா>` புலம் :: குறிப்பு: " "`வகைப்படுத்தி <கோர்-மெட்டாடேட்டா-கிளாசிஃபையர்>`" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "திட்டத்திற்கு பொருந்தும் வகைப்படுத்திகள்." -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -27081,11 +27080,11 @@ msgstr "" "மேனிலை தரவு புலத்திற்கு மொழிபெயர்க்கிறது) மற்றும் `` உரிமம் :: `` வகைப்படுத்திகள் " "பயன்படுத்தப்பட்டால் உருவாக்க கருவிகள் பிழையை எழுப்பக்கூடும்." -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "TOML_ வகை: சரங்களின் விசைகள் மற்றும் மதிப்புகள் கொண்ட அட்டவணை" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" @@ -27093,7 +27092,7 @@ msgstr "" "தொடர்புடைய: ref: `கோர் மேனிலை தரவு <கோர்-மெட்டாடேட்டா>` புலம் :: குறிப்பு: `திட்டம்-" "உர் <கோர்-மெட்டாடேட்டா-புரோசெக்ட்-உர்எல்>`" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" @@ -27103,11 +27102,11 @@ msgstr "" "விளக்கக்காட்சிக்கான மெட்டாடேட்டாவை செயலாக்கும்போது இயல்பாக்குதல் விதிகள் மற்றும் நன்கு " "அறியப்பட்ட விதிகளுக்கு `நன்கு அறியப்பட்ட-திட்ட-உர்எல்எச்`." -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "நுழைவு புள்ளிகள்" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" @@ -27115,11 +27114,11 @@ msgstr "" "TOML_ வகை: அட்டவணை (`` [project.scripts] ``, `` [project.gui-scripts] ``, " "மற்றும் `` [project.entry- புள்ளிகள்] ``)" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr ": Ref: `நுழைவு புள்ளிகள் விவரக்குறிப்பு <நுழைவு புள்ளிகள்>`" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -27131,7 +27130,7 @@ msgstr "" "விவரக்குறிப்பு <நுழைவு புள்ளிகள்>`. அட்டவணையின் விசை நுழைவு புள்ளியின் பெயர் மற்றும் " "மதிப்பு பொருள் குறிப்பு." -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " @@ -27141,7 +27140,7 @@ msgstr "" "ref: `நுழைவு புள்ளிகள் விவரக்குறிப்பு <நுழைவு புள்ளிகள்>`. அதன் வடிவம் `` " "[project.scripts] `` போன்றது." -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -27154,7 +27153,7 @@ msgstr "" "உருவாக்கக்கூடாது, மாறாக நுழைவு புள்ளி குழுக்களை ஒரே ஒரு நிலைக்கு மட்டுமே ஆழமாக " "வைத்திருக்க வேண்டும்." -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -27164,7 +27163,7 @@ msgstr "" "மேனிலை தரவு ஒரு `` [project.entry- புள்ளிகள். `` [project.scripts] `` மற்றும் `` " "[project.gui-scripts] ``." -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" @@ -27172,7 +27171,7 @@ msgstr "" "TOML_ வகை: வரிசை: PEP: `508` சரங்கள் (` `சார்புநிலைகள்``), மற்றும் வரிசைகளின் " "மதிப்புகளைக் கொண்ட அட்டவணை: PEP:` 508` சரங்கள் (`` விருப்ப-சார்புநிலைகள்``)" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra ` மற்றும்: குறிப்பு: `வழங்குகிறது-எக்ச்ட்ரா <கோர்-" "மெட்டாடேட்டா-எக்ச்ட்ரா>`" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "திட்டத்தின் (விருப்ப) சார்புநிலைகள்." -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -27198,7 +27197,7 @@ msgstr "" "வேண்டும்: PEP: `508` சரம். ஒவ்வொரு சரம் நேரடியாக A: ref: `தேவை-டிச்ட் <கோர்-" "மெட்டாடேட்டா-வேண்டுகோள்-டிச்ட்>` நுழைவு தேவை." -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -27216,7 +27215,7 @@ msgstr "" "வேண்டுகோள்-டிச்ட்>` பொருத்தத்திற்கான நுழைவு: ref: `வழங்கும்-எக்ச்ட்ரா <கோர்-மெட்டாடேட்டா-" "வழங்கும்-எக்ச்ட்ரா>` மேனிலை தரவு." -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 #, fuzzy #| msgid "" #| "Corresponding :ref:`core metadata ` field: :ref:`Name " @@ -27228,7 +27227,7 @@ msgstr "" "தொடர்புடைய: குறிப்பு: `கோர் மேனிலை தரவு <கோர்-மெட்டாடேட்டா>` புலம் :: குறிப்பு: " "`பெயர் <கோர்-மெட்டாடேட்டா-பெயர்>`" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -27237,7 +27236,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -27252,34 +27251,34 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 #, fuzzy #| msgid "Examples::" msgid "Examples:" msgstr "எடுத்துக்காட்டுகள் ::" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 #, fuzzy #| msgid "" #| "Corresponding :ref:`core metadata ` field: :ref:`Name " @@ -27291,7 +27290,7 @@ msgstr "" "தொடர்புடைய: குறிப்பு: `கோர் மேனிலை தரவு <கோர்-மெட்டாடேட்டா>` புலம் :: குறிப்பு: " "`பெயர் <கோர்-மெட்டாடேட்டா-பெயர்>`" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -27301,7 +27300,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -27309,7 +27308,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -27317,17 +27316,17 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 #, fuzzy #| msgid "Example::" msgid "Example:" msgstr "எடுத்துக்காட்டு ::" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "TOML_ வகை: சரத்தின் வரிசை" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" @@ -27335,7 +27334,7 @@ msgstr "" "தொடர்புடைய: ref: `கோர் மேனிலை தரவு <கோர்-மெட்டாடேட்டா>` புலம் :: குறிப்பு: `டைனமிக் " "<கோர்-மெட்டாடேட்டா-டைனமிக்>`" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -27347,7 +27346,7 @@ msgstr "" "முடியும். இது எந்த மேனிலை தரவு வேண்டுமென்றே குறிப்பிடப்படவில்லை மற்றும் பின்னர் கருவி " "மூலம் வழங்கப்படுவதை ஒப்பிடும்போது குறிப்பிடப்படாமல் இருக்கும் என்று எதிர்பார்க்கப்படுகிறது." -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." @@ -27355,7 +27354,7 @@ msgstr "" "ஒரு உருவாக்க பின்-இறுதி-குறிப்பிட்ட மெட்டாடேட்டாவை மதிக்க வேண்டும் (அதாவது மேனிலை " "தரவு விசையை `` டைனமிக்`` இல் பட்டியலிடவில்லை)." -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." @@ -27363,7 +27362,7 @@ msgstr "" "மேனிலை தரவு `` பெயர்`` இல் `` டைனமிக்`` ஐக் குறிப்பிடினால் ஒரு கட்டமைப்பை பின்-முடிவு " "பிழையை உயர்த்த வேண்டும்." -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -27377,7 +27376,7 @@ msgstr "" "பிழையை உயர்த்த வேண்டும் , அதாவது `` [திட்டம்] `` அட்டவணை) எப்படியாவது பட்டியலிடப்படாமல் " "இருக்க முடியாது." -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " @@ -27388,7 +27387,7 @@ msgstr "" "பட்டியலிடலாம் என்றால், எதிர்பார்ப்பு ஒரு கட்டமைப்பை உருவாக்கினால் விசைக்கான தரவை வழங்கும் " "பின்னர்." -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." @@ -27396,7 +27395,7 @@ msgstr "" "மேனிலை தரவு ஒரு விசையை நிலையான முறையில் குறிப்பிடினால், `` டைனமிக்`` இல் " "பட்டியலிடப்பட்டால் பின்-முனைகளை உருவாக்குங்கள் பிழையை உயர்த்த வேண்டும்." -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -27407,7 +27406,7 @@ msgstr "" "தேவையான மெட்டாடேட்டாவை ஒரு கட்டமைப்பால் நிரப்ப முடியாது (அதாவது மெட்டாடேட்டாவை நிரப்ப " "ஒரு கருவியை அனுமதிப்பதற்கான ஒரே வழி `` டைனமிக்`` மற்றும் பயனர் நிரப்பப்பட வேண்டும்)." -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " @@ -27417,11 +27416,11 @@ msgstr "" "வேண்டும், ஆனால் அதற்கான தரவைத் தீர்மானிக்க முடியவில்லை (தரவைத் தவிர்ப்பது, துல்லியமான " "மதிப்பாக தீர்மானிக்கப்பட்டால், ஏற்றுக்கொள்ளத்தக்கது) ." -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "தன்னிச்சையான கருவி உள்ளமைவு: `` [கருவி] `` அட்டவணை" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -27432,7 +27431,7 @@ msgstr "" "கருவிகளை உருவாக்குவது மட்டுமல்லாமல், பயனர்கள் `` [கருவி] ``, எ.கா. `flit _ கருவி அதன் உள்ளமைவை` `[கருவி.ஃப்ளிட்]` `இல் சேமிக்கும்." -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -27445,7 +27444,7 @@ msgstr "" "$NAME`` if, and only if, they own the நுழைவு க்கு ``$NAME`` in the Cheeseshop/" "PyPI." -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " @@ -27455,7 +27454,7 @@ msgstr "" "`[பில்ட்-சிச்டம்]` `` அட்டவணை ஆகியவற்றைக் கொண்ட `` pyproject.toml`` கோப்பின் ஆரம்ப " "விவரக்குறிப்பு அங்கீகரிக்கப்பட்டது மூலம்: PEP: `518`." -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." @@ -27463,7 +27462,7 @@ msgstr "" "நவம்பர் 2020: `` [திட்டம்] `` அட்டவணையின் விவரக்குறிப்பு மூலம் அங்கீகரிக்கப்பட்டது: PEP: " "`621`." -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." @@ -27471,13 +27470,13 @@ msgstr "" "டிசம்பர் 2024: `` உரிமம்`` விசை மறுவரையறை செய்யப்பட்டது, `` உரிம-கோப்புகள்`` விசை " "சேர்க்கப்பட்டு `` உரிமம் :: `` வகைப்படுத்திகள் நீக்கப்பட்டன: பெப்: `639`." -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -28567,7 +28566,7 @@ msgstr "" "கருவிகள் ** இந்த சரத்தை இறுதி பயனர்களுக்கு மேற்பரப்பு செய்யலாம்." #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -28613,7 +28612,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -28928,7 +28927,7 @@ msgstr "" "ஒரு அகராதியாக இருக்கும் ஒரு வரிசை." #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." @@ -28937,7 +28936,7 @@ msgstr "" "cerialization_> ____." #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "உதாரணமாக:" @@ -28986,7 +28985,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -28994,45 +28993,45 @@ msgid "``name``: The normalized name of the project." msgstr "`` பெயர்``: திட்டத்தின் இயல்பாக்கப்பட்ட பெயர்." #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." -msgstr "`` கோப்புகள்``: அகராதிகளின் பட்டியல், ஒவ்வொன்றும் ஒரு தனிப்பட்ட கோப்பைக் குறிக்கும்." - -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 +#: ../source/specifications/simple-repository-api.rst:496 msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "`` கோப்புகள்``: அகராதிகளின் பட்டியல், ஒவ்வொன்றும் ஒரு தனிப்பட்ட கோப்பைக் குறிக்கும்." + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -29044,7 +29043,7 @@ msgstr "" "தொடர்புடைய கோப்புகள் இல்லாத பதிப்புகள் இருக்கலாம் (சேவையகத்திற்கு அத்தகைய கருத்து " "இருந்தால், கோப்புகள் பதிவேற்றப்படாத பதிப்புகளைக் குறிக்க)." -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -29053,23 +29052,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "ஒவ்வொரு தனிப்பட்ட கோப்பு அகராதியிலும் பின்வரும் விசைகள் உள்ளன:" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "`` கோப்பு பெயர்``: பிரதிநிதித்துவப்படுத்தப்படும் கோப்பு பெயர்." -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "`` url``: கோப்பிலிருந்து பெறக்கூடிய முகவரி." -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -29083,7 +29082,7 @@ msgstr "" "அல்லது ஒன்றும் இல்லை). இந்த ஆச் பெயர்கள் ** ** எப்போதும் சிறிய எழுத்துக்களாக இயல்பாக்கப்பட " "வேண்டும்." -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " @@ -29093,7 +29092,7 @@ msgstr "" "என்றாலும், குறைந்தது ஒரு பாதுகாப்பான, உத்தரவாதமளிக்கும் ஆச் எப்போதும் சேர்க்கப்பட வேண்டும் " "என்று ** மிகவும் ** பரிந்துரைக்கப்படுகிறது." -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -29109,7 +29108,7 @@ msgstr "" "எப்போதும் சேர்க்கப்பட வேண்டும். இந்த விவரக்குறிப்பின் போது, `` சா 256`` குறிப்பாக " "பரிந்துரைக்கப்படுகிறது." -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -29120,7 +29119,7 @@ msgstr "" "மெட்டாடேட்டா புலம். இது இருக்கும் இடத்தில், நிறுவி கருவிகள் ** ** தேவையை நிறைவு " "செய்யாத பைதான் பதிப்பில் நிறுவும் போது பதிவிறக்கத்தை புறக்கணிக்க வேண்டும்." -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " @@ -29130,7 +29129,7 @@ msgstr "" "` `,` `-` விசைக்கு தேவையில்லை சாதொபொகு இயல்பாகவே " "எதையும் தவிர வேறு எந்த சிறப்பு தப்பிப்பும் தேவையில்லை." -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -29140,7 +29139,7 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " @@ -29149,7 +29148,7 @@ msgstr "" "இது ஒரு பூலியனுக்கு பதிலாக ஆச்களின் அகராதியாக இருக்கும்போது, `` ஆச்கள்`` விசையின் " "அதே தேவைகள் மற்றும் பரிந்துரைகள் அனைத்தும் இந்த விசையிலும் உண்மையாகவே இருக்கின்றன." -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " @@ -29159,32 +29158,32 @@ msgstr "" "முக்கிய மதிப்பு உண்மையாக இருந்தால், மேனிலை தரவு கோப்பு உள்ளது, அது பொய்யானது என்றால் " "அது இல்லை." -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" "சேவையகங்கள் மேனிலை தரவு கோப்பின் ஆச்களை முடிந்தால் கிடைக்கச் செய்ய பரிந்துரைக்கப்படுகிறது." -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -29198,7 +29197,7 @@ msgstr "" "` (`{file_url} .asc``). இந்த விசை இல்லை என்றால், " "கையொப்பம் இருக்கலாம் அல்லது இல்லாமல் இருக்கலாம்." -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 #, fuzzy #| msgid "" #| "``yanked``: An **optional** key which may be either a boolean to indicate " @@ -29223,17 +29222,17 @@ msgstr "" "சுட்டிக்காட்டப்பட்ட கோப்பு \"அசைக்கப்பட்டுள்ளது\" என்பதைக் குறிக்கும் வகையில் விளக்கப்பட " "வேண்டும்: ref: `api yank விவரக்குறிப்பு <எளிய-ச்பிரோபோசிட்டரி-அபி-யாங்க்>`." -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -29241,7 +29240,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -29250,11 +29249,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -29266,11 +29265,11 @@ msgstr "" "ஒரு முகவரி ஆக இருக்க வேண்டும், இதில் `` தரவு-முன்னேற்றம்`` போன்ற விதிமுறைகள்: rew: " "`அடிப்படை உஉகுமொ பநிஇ விவரக்குறிப்பு `." -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -29355,11 +29354,11 @@ msgstr "" "` `உரை/HTML`` உள்ளடக்க வகையைப் பயன்படுத்த பநிஇ " "பதில்கள், இந்த விவரக்குறிப்பு` `` உரை/html`` `` `` `` `conternt." -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "பதிப்பு + வடிவமைப்பு தேர்வு" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -29373,7 +29372,7 @@ msgstr "" "விளைவிக்காமல் பநிஇ க்கு சாத்தியமான புதிய முக்கிய பதிப்பைச் சேர்க்க முடிந்தால் அது நன்மை " "பயக்கும்." -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation _ _." -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" @@ -29390,7 +29389,7 @@ msgstr "" "இந்த விவரக்குறிப்பு சேவையகத்தால் இயக்கப்படும் உள்ளடக்க பேச்சுவார்த்தை முழுவதையும் " "முழுமையாக விவரிக்காது என்றாலும், ஓட்டம் தோராயமாக:" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." @@ -29398,7 +29397,7 @@ msgstr "" "கிளையன்ட் ஒரு `` ஏற்றுக்கொள்` தலைப்பு கொண்ட ஒரு HTTP கோரிக்கையை அவர்கள் புரிந்து " "கொள்ளக்கூடிய அனைத்து பதிப்பு+வடிவமைப்பு உள்ளடக்க வகைகளையும் பட்டியலிடுகிறது." -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " @@ -29408,7 +29407,7 @@ msgstr "" "தேர்ந்தெடுக்கிறது, பின்னர் அந்த உள்ளடக்க வகையைப் பயன்படுத்தி ஒரு பதிலை வழங்குகிறது (`` " "ஏற்றுக்கொள்` தலைப்பு `` ஏற்றுக்கொள்: */ *``)." -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " @@ -29418,7 +29417,7 @@ msgstr "" "அவர்கள் எவ்வாறு பதிலளிக்க வேண்டும் என்பதற்கான 3 வெவ்வேறு விருப்பங்களுக்கு இடையில் அவர்கள் " "தேர்வு செய்ய முடியும்:" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." @@ -29426,7 +29425,7 @@ msgstr "" "கிளையன்ட் கோரியதைத் தவிர வேறு இயல்புநிலை உள்ளடக்க வகையைத் தேர்ந்தெடுத்து, அதனுடன் " "பதிலைத் தரவும்." -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " @@ -29436,7 +29435,7 @@ msgstr "" "ஏற்றுக்கொள்ள முடியாதது `` பதிலைத் தரவும், மேலும் பதிலளிக்க இயல்புநிலை உள்ளடக்க வகையைத் " "தேர்ந்தெடுக்க சேவையகம் முடியவில்லை அல்லது விரும்பவில்லை." -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." @@ -29444,7 +29443,7 @@ msgstr "" "ஒரு HTTP `` 300 பல தேர்வுகள்` `பதிலைத் தரவும், இது தேர்ந்தெடுக்கப்பட்ட சாத்தியமான " "அனைத்து பதில்களின் பட்டியலையும் கொண்டுள்ளது." -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." @@ -29452,7 +29451,7 @@ msgstr "" "கிளையன்ட் பதிலை விளக்குகிறது, சேவையகம் பதிலளித்திருக்கக்கூடிய பல்வேறு வகையான " "பதில்களைக் கையாளுகிறது." -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -29464,7 +29463,7 @@ msgstr "" "** சாத்தியமான எல்லா பதில்களையும் கையாளத் தயாராக இருக்க வேண்டும், அந்த கிளையண்டிற்கு எந்த " "வகையிலும் மிகவும் அர்த்தமுள்ளதாக இருக்கும்." -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -29482,7 +29481,7 @@ msgstr "" "சாத்தியமில்லை, எனவே சிறந்த முறையில் இந்த பதில் `` 406 ஏற்றுக்கொள்ள முடியாத `` பிழை " "போலவே கருதப்படும்." -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -29495,7 +29494,7 @@ msgstr "" "ஏற்றுக்கொள்ளுங்கள்: பயன்பாடு/vnd.pypi.simple.latest+json` `` `` `` `` `` `` `` ` " "`` பயன்பாடு/vnd.pypi.simple.v1+json```)." -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " @@ -29505,19 +29504,19 @@ msgstr "" "வகைகளின் கமாவைப் பிரித்த பட்டியல். கோரப்படும் ஒவ்வொரு உள்ளடக்க வகைக்கும் இது மூன்று " "வெவ்வேறு வடிவங்களை ஆதரிக்கிறது:" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "`` $ type/$ subtype``" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "`` $ type/*``" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "``*/*``" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " @@ -29527,7 +29526,7 @@ msgstr "" "இருக்கும் `` $ வகை/$ துணை வகை``, ஏனெனில் நீங்கள் விரும்பும் பதிப்பு மற்றும் வடிவமைப்பைக் " "குறிப்பிடுவதற்கான ஒரே வழி இதுதான்." -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -29543,7 +29542,7 @@ msgstr "" "`தலைப்பின்` தர மதிப்பு _ தொடரியல் பயன்படுத்தலாம்." -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -29558,7 +29557,7 @@ msgstr "" "குறைந்த தரத்துடன் நுழைவதை விட முன்னுரிமை உள்ளது, மேலும் தகுதி இல்லாத எந்தவொரு " "நுழைவும் `` 1`` தரத்திற்கு இயல்புநிலையாக இருக்கும்." -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -29569,7 +29568,7 @@ msgstr "" "முன்னுரிமையைப் பொருட்படுத்தாமல் தேர்ந்தெடுக்க இலவசம் என்பதை நினைவில் கொள்ள வேண்டும், மேலும் " "அவர்கள் செய்த உள்ளடக்க வகையை கூட ** ** கேட்கவில்லை." -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -29587,12 +29586,12 @@ msgstr "" "cf3696a81b341925f82f8cb527e656176987565/src/pip/_internal/" "collector.py#-123-150> _" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" "ஒரு வாடிக்கையாளர் எவ்வாறு செயல்பட முடியும் என்பதற்கான எடுத்துக்காட்டு போல் இருக்கும்:" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " @@ -29602,11 +29601,11 @@ msgstr "" "ஆதரிக்க விரும்பினால், அவர்கள் விரும்பாத உள்ளடக்க வகைகளை `` ஏற்றுக்கொள்` தலைப்பிலிருந்து " "அகற்றி, அவற்றைப் பெறுவதை பிழையாக மாற்றிவிடுவார்கள்." -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "மாற்று பேச்சுவார்த்தை வழிமுறைகள்" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -29620,11 +29619,11 @@ msgstr "" "சூழ்நிலைகள் உள்ளன. அந்த நிகழ்வுகளுக்கு இந்த விவரக்குறிப்பில் மாற்று பேச்சுவார்த்தை " "வழிமுறைகள் உள்ளன, அவை அதற்கு பதிலாக * விருப்பமாக * பயன்படுத்தப்படலாம்." -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "முகவரி அளவுரு" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " @@ -29634,7 +29633,7 @@ msgstr "" "வாடிக்கையாளர்களை அனுமதிக்க `` வடிவமைப்பு`` என்ற முகவரி அளவுருவை ஆதரிக்க தேர்வு " "செய்யலாம்." -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " @@ -29644,7 +29643,7 @@ msgstr "" "வேண்டும். பல உள்ளடக்க வகைகள், காடு கார்டுகள், தர மதிப்புகள் போன்றவற்றை கடந்து செல்வது ... " "** அல்ல ** ஆதரிக்கப்படவில்லை." -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -29657,7 +29656,7 @@ msgstr "" "குறிப்புகளை ஒரு குறிப்பிட்ட பதிப்பு+வடிவமைப்போடு இணைக்க அனுமதிப்பதற்காக நோக்கமாக " "உள்ளது." -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." @@ -29665,7 +29664,7 @@ msgstr "" "இந்த அளவுருவை ஆதரிக்காத சேவையகங்கள் பிழையைக் கொண்டிருக்கும்போது அதைத் திருப்பித் தரத் " "தேர்வுசெய்யலாம் அல்லது அவை எளிமையாக அதன் இருப்பை புறக்கணிக்கக்கூடும்." -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -29680,11 +29679,11 @@ msgstr "" "எந்தவொரு பிழையும் தேர்வு செய்யத் தேர்வுசெய்யலாம், அல்லது நிலையான சேவையக பேச்சுவார்த்தை " "பொதுவாகக் கிடைக்காது,` 406, திரும்புவதற்கான இயல்புநிலை வகை)." -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "இறுதிப்புள்ளி உள்ளமைவு" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " @@ -29694,7 +29693,7 @@ msgstr "" "பேச்சுவார்த்தைகளைப் பயன்படுத்துவதன் இயல்பான விளைவு மற்றும் கிடைக்கக்கூடிய உள்ளடக்க வகைகளில் " "எது அவற்றின் இயல்புநிலை என்பதைத் தேர்ந்தெடுக்க சேவையகங்களை அனுமதிக்கிறது." -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -29705,7 +29704,7 @@ msgstr "" "செயல்படுத்த முடியாவிட்டால், அதற்கு பதிலாக பயனர்கள் தங்கள் வாடிக்கையாளரை அவர்கள் விரும்பும் " "பதிப்பைத் தேர்ந்தெடுக்க வெளிப்படையாக கட்டமைக்க வேண்டும் என்றால், அது ஒரு உதவி உள்ளமைவு." -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -29721,7 +29720,7 @@ msgstr "" "தலைப்பைப் பயன்படுத்தி ஒரு கிளையன்ட் கோரிக்கையைச் செய்யும்போது, சேவையகம் அதைப் " "புறக்கணித்து, அந்த இறுதிப் புள்ளியுடன் ஒத்த உள்ளடக்க வகையை திருப்பித் தரலாம்." -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -29733,7 +29732,7 @@ msgstr "" "சேவையகத்திற்கு ஒரு கோரிக்கையைச் செய்யும்போது, * சரியான உள்ளடக்க வகையை உள்ளடக்கிய ஒரு " "`` `ஏற்றுக்கொள்`` தலைப்பை வெளியிடுங்கள்." -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -29744,7 +29743,7 @@ msgstr "" "இயல்புநிலை செயல்படுத்தல் முடிவுகள் என்று ச்பெக் ஆசிரியர்கள் நம்புவதைக் குறிக்கிறது, ஆனால் " "இந்த முடிவுகளுடன் பொருந்தக்கூடிய எந்தவொரு தேவையையும் இது குறிக்கிறது." -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -29758,11 +29757,11 @@ msgstr "" "முயற்சித்தனர், இது வாடிக்கையாளர்களை தன்னால் முடிந்த சிறந்த தேர்வுகளைச் செய்ய " "முயற்சிக்கிறது." -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "சேவையகங்கள் பரிந்துரைக்கப்படுகிறது:" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " @@ -29773,7 +29772,7 @@ msgstr "" "முடிந்தவரை, அல்லது குறைந்தபட்சம் உஉகுமொ பதில்களைப் பயன்படுத்தும் கீழான போக்குவரத்தை அவர்கள் " "பெறும் வரை." -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -29784,7 +29783,7 @@ msgstr "" "தெரிந்த எந்த உள்ளடக்க வகைகளும் இல்லை, சேவையகம் ஒருபோதும்` `300 பல தேர்வு`` பதிலைத் " "தரக்கூடாது, அதற்கு பதிலாக` `406 ஏற்றுக்கொள்ள முடியாதது`` பதிலைத் தரும்." -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." @@ -29792,7 +29791,7 @@ msgstr "" "இருப்பினும், எண்ட்பாயிண்ட் உள்ளமைவைப் பயன்படுத்தத் தேர்வுசெய்தால், அந்த இறுதிப்புள்ளிக்கு " "எதிர்பார்க்கப்படும் உள்ளடக்க வகையில் `` 200 சரி`` பதிலைத் தர வேண்டும்." -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -29806,11 +29805,11 @@ msgstr "" "தரமான முன்னுரிமை மதிப்புகளையும் கணக்கில் எடுத்துக்கொள்கிறது, மேலும் இது `` உரை/HTML`` " "உள்ளடக்க வகையை கடைசி முயற்சியாக மட்டுமே பயன்படுத்த வேண்டும்." -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "வாடிக்கையாளர்கள் என்று பரிந்துரைக்கப்படுகிறது:" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." @@ -29819,7 +29818,7 @@ msgstr "" "சேவையகத்தால் இயக்கப்படும் உள்ளடக்க பேச்சுவார்த்தையைப் பயன்படுத்தி, அவை நியாயமான முறையில் " "முடிந்தவரை." -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." @@ -29827,7 +29826,7 @@ msgstr "" "`` ஏற்றுக்கொள்` `தலைப்பைக் கட்டும் போது, நீங்கள் ஆதரிக்கும் அனைத்து உள்ளடக்க வகைகளையும் " "சேர்க்கவும்." -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -29841,7 +29840,7 @@ msgstr "" "பயன்படுத்துகிறீர்கள் என்றால், சில விளிம்பு நிகழ்வுகளில் நீங்கள் பாகுபடுத்த முடியாத சில " "வகையான உஉகுமொ பதில்கள் இருக்கக்கூடும் என்று நீங்கள் கவலைப்படுகிறீர்கள்)." -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " @@ -29851,7 +29850,7 @@ msgstr "" "ஒரு` `; q = 0.01`` மதிப்பை நீங்கள் * சேர்க்க வேண்டும் என்று பரிந்துரைக்கப்படுகிறது, இது " "நீங்கள் கோரும் ஒரே உள்ளடக்க வகையாக இல்லாவிட்டால்." -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." @@ -29859,7 +29858,7 @@ msgstr "" "இயல்பான செயல்பாட்டின் போது `` சமீபத்திய`` மேவு பதிப்பைப் பயன்படுத்துவதை விட, அவர்கள் " "தேடும் எந்த பதிப்புகளை வெளிப்படையாகத் தேர்ந்தெடுக்கவும்." -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." @@ -29867,19 +29866,19 @@ msgstr "" "பதிலின் `` உள்ளடக்க-வகை`` ஐச் சரிபார்த்து, நீங்கள் எதிர்பார்த்த ஒன்றோடு பொருந்துகிறது " "என்பதை உறுதிப்படுத்தவும்." -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "செப்டம்பர் 2015: உஉகுமொ வடிவமைப்பின் ஆரம்ப வடிவம், இல்: PEP: `503`" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "சூலை 2016: ஒரு புதுப்பிப்பில்-பைதான் மேனிலை தரவு தேவைப்படுகிறது: PEP: `503`" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "மே 2019: \"யாங்க்\" உதவி, இல்: பெப்: `592`" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" @@ -29887,7 +29886,7 @@ msgstr "" "சூலை 2020: பநிஇ பதிப்பு மாநாடு மற்றும் மேனிலை தரவு, மற்றும் உஉகுமொ வடிவமைப்பை பநிஇ " "V1 என அறிவித்தல், IN: PEP: `629`" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" @@ -29895,7 +29894,7 @@ msgstr "" "மே 2021: ஒரு தொகுப்பிலிருந்து சுயாதீனமாக தொகுப்பு மெட்டாடேட்டாவை வழங்குதல், IN: PEP: " "`658`" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" @@ -29904,7 +29903,7 @@ msgstr "" "செய்வதற்கான ஒரு பொறிமுறையுடன், இரு வடிவங்களையும் பநிஇ V1 என அறிவித்தல், IN: PEP: " "`691`" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" @@ -29912,7 +29911,7 @@ msgstr "" "அக்டோபர் 2022: திட்ட பதிப்புகள் மற்றும் கோப்பு அளவு மற்றும் சாதொபொகு வடிவத்தில் பதிவேற்ற " "நேரம், IN: PEP: `700`" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" @@ -29920,14 +29919,14 @@ msgstr "" "சூன் 2023: ஒரு தொகுப்பிலிருந்து சுயாதீனமாக தொகுப்பு மெட்டாடேட்டாவை வழங்கும் புலத்தை " "மறுபெயரிடுதல், IN: PEP: `714`" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" "நவம்பர் 2024: உஉகுமொ மற்றும் சாதொபொகு வடிவங்களில் ஆதார மேனிலை தரவு, IN: PEP: `740`" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 #, fuzzy #| msgid "" #| "November 2024: provenance metadata in the HTML and JSON formats, " @@ -29937,7 +29936,7 @@ msgid "" msgstr "" "நவம்பர் 2024: உஉகுமொ மற்றும் சாதொபொகு வடிவங்களில் ஆதார மேனிலை தரவு, IN: PEP: `740`" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -30301,7 +30300,7 @@ msgstr "" "`639`." #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "பதிப்பு விவரக்குறிப்புகள்" @@ -31026,11 +31025,33 @@ msgstr "" "முறையில் மாற்ற முடியும், ஏனெனில் முந்தைய சகாப்தத்தின் அனைத்து பதிப்புகளும் முந்தைய " "சகாப்தத்தின் பதிப்புகளுக்குப் பிறகு வரிசைப்படுத்தப்படுகின்றன ::" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "இயல்பாக்கம்" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -31042,11 +31063,11 @@ msgstr "" "ஒரு பதிப்பை பாகுபடுத்தும்போது இந்த தொடரியல் கருத்தில் கொள்ளப்பட வேண்டும், இருப்பினும் அவை " "மேலே வரையறுக்கப்பட்ட நிலையான தொடரியல் க்கு \"இயல்பாக்கப்பட வேண்டும்\"." -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "வழக்கு உணர்திறன்" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " @@ -31056,11 +31077,11 @@ msgstr "" "சாதாரண வடிவம் சிறிய எழுத்துக்கள். இது `` 1.1rc1`` போன்ற பதிப்புகளை அனுமதிக்கிறது, " "இது `1.1rc1`` க்கு இயல்பாக்கப்படும்." -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "முழு எண் இயல்பாக்கம்" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -31074,11 +31095,11 @@ msgstr "" "எண்ணெழுத்து பிரிவின் உள்ளே நுழைவதற்கு இது உண்மையல்ல, இது ஏற்கனவே அதன் இயல்பாக்கப்பட்ட " "வடிவத்தில் உள்ளது." -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "முன் வெளியீட்டு பிரிப்பான்கள்" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -31093,11 +31114,11 @@ msgstr "" "வேண்டும். இது `` 1.0a.1`` போன்ற பதிப்புகளை அனுமதிக்கிறது, இது `` 1.0a1`` க்கு " "இயல்பாக்கப்படும்." -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "முன் வெளியீட்டு எழுத்துப்பிழை" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -31112,11 +31133,11 @@ msgstr "" "`1rc3`` போன்ற பதிப்புகளை அனுமதிக்கிறது. ஒவ்வொரு சந்தர்ப்பத்திலும் கூடுதல் எழுத்துப்பிழை " "அவற்றின் சாதாரண வடிவங்களுக்கு சமமானதாக கருதப்பட வேண்டும்." -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "மறைமுகத்திற்கு முந்தைய வெளியீடு எண்" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -31128,11 +31149,11 @@ msgstr "" "வேண்டும். இது `` 1.2a`` போன்ற பதிப்புகளை அனுமதிக்கிறது, இது `` 1.2A0`` க்கு " "இயல்பாக்கப்படுகிறது." -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "வெளியீட்டு பிரிப்பான்கள் இடுகை" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -31149,11 +31170,11 @@ msgstr "" "அடையாளத்திற்கும் எண்களுக்கும் இடையில் விருப்பமான பிரிப்பான் அனுமதிக்கிறது. இது `` " "1.2.post-2`` போன்ற பதிப்புகளை அனுமதிக்கிறது, இது `` 1.2.post2`` க்கு இயல்பாக்கும்." -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "வெளியீட்டு எழுத்துப்பிழை இடுகை" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -31165,11 +31186,11 @@ msgstr "" "இயல்பாக்குகிறது. முன் வெளியீடுகளைப் போலவே கூடுதல் எழுத்துப்பிழைகள் அவற்றின் சாதாரண " "வடிவங்களுக்கு சமமானதாக கருதப்பட வேண்டும்." -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "மறைமுகமான இடுகை வெளியீட்டு எண்" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -31181,11 +31202,11 @@ msgstr "" "வேண்டும். `` 1.2.post0`` க்கு இயல்பாக்கப்பட்ட `` 1.2.post`` போன்ற பதிப்புகளை இது " "அனுமதிக்கிறது." -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "மறைமுகமான இடுகை வெளியீடுகள்" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -31201,11 +31222,11 @@ msgstr "" "இணைந்து பயன்படுத்தப்படக்கூடாது. வேறு வார்த்தைகளில் கூறுவதானால், `` 1.0 -`` என்பது * " "சரியான பதிப்பாக இல்லை, மேலும் இது * `1.0.post0`` க்கு * இயல்பாக்கப்படாது." -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "வளர்ச்சி வெளியீட்டு பிரிப்பான்கள்" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -31217,11 +31238,11 @@ msgstr "" "பிரிப்பான். இது `` 1.2-DEV2`` அல்லது `1.2dev2`` போன்ற பதிப்புகளை` `1.2.dev2`` க்கு " "இயல்பாக்குகிறது." -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "மறைமுக வளர்ச்சி வெளியீட்டு எண்" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -31233,11 +31254,11 @@ msgstr "" "வேண்டும். `` 1.2.dev0`` க்கு இயல்பாக்கப்பட்ட `` 1.2.dev`` போன்ற பதிப்புகளை இது " "அனுமதிக்கிறது." -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "உள்ளக பதிப்பு பிரிவுகள்" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -31249,11 +31270,11 @@ msgstr "" "எழுத்தைப் பயன்படுத்துகிறது. இது `` 1.0+உபுண்டு -1`` போன்ற பதிப்புகளை `` 1.0+உபுண்டு " "1`` க்கு இயல்பாக்க அனுமதிக்கிறது." -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "V எழுத்து முந்தையது" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -31266,11 +31287,11 @@ msgstr "" "வேண்டும் மற்றும் பதிப்பின் அனைத்து இயல்பாக்கப்பட்ட வடிவங்களிலிருந்தும் தவிர்க்கப்பட வேண்டும். " "`` வி`` உடன் மற்றும் இல்லாமல் அதே பதிப்பு சமமானதாகக் கருதப்படுகிறது." -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "வழிநடத்தும் மற்றும் பின்தங்கிய இடைவெளி" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -31283,11 +31304,11 @@ msgstr "" "மற்றும் `\\ v`` ஆகியவை அடங்கும். `` 1.0 \\ n`` போன்ற பதிப்பு போன்ற தற்செயலான " "இடைவெளியை விவேகத்துடன் கையாள இது அனுமதிக்கிறது, இது `` 1.0`` ஐ இயல்பாக்குகிறது." -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "இணக்கமான பதிப்பு திட்டங்களின் எடுத்துக்காட்டுகள்" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -31303,7 +31324,7 @@ msgstr "" "மேலே உள்ள விதிகள் அனைத்து இணக்கமான கருவிகளும் தொடர்ந்து கட்டளையிடும் என்பதை " "உறுதிசெய்தாலும்." -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -31315,20 +31336,20 @@ msgstr "" "மற்றும் \"அண்மைக் கால நிலையான வெளியீடு\" ஆகியவற்றை மனித பயனர்கள் மற்றும் தானியங்கி " "கருவிகளால் எளிதில் தீர்மானிக்க முடியும் என்பதை உறுதிசெய்கிறது." -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "எளிய \"மேசர்.மினோர்\" பதிப்பு ::" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "எளிய \"மேசர்.மினோர்.மிக்ரோ\" பதிப்பு ::" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "ஆல்பா, பீட்டா மற்றும் வேட்பாளர் முன் வெளியீடுகளுடன் \"மேசர்.மினோர்\" பதிப்பு ::" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" @@ -31336,7 +31357,7 @@ msgstr "" "மேம்பாட்டு வெளியீடுகளுடன் \"மேசர்.மினோர்\" பதிப்பு, வேட்பாளர்கள் மற்றும் சிறிய " "திருத்தங்களுக்கு பிந்தைய வெளியீடுகளை வெளியிடுங்கள் ::" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" @@ -31344,11 +31365,11 @@ msgstr "" "தேதி அடிப்படையிலான வெளியீடுகள், ஒவ்வொரு ஆண்டும் அதிகரிக்கும் சீரியலைப் பயன்படுத்தி, " "பூச்சியத்தைத் தவிர்ப்பது ::" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "அனுமதிக்கப்பட்ட பின்னொட்டுகளின் சுருக்கம் மற்றும் உறவினர் வரிசைப்படுத்தல்" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " @@ -31358,7 +31379,7 @@ msgstr "" "டெவலப்பர்களைக் காட்டிலும், விநியோக மெட்டாடேட்டாவை தானாக செயலாக்கும் கருவிகளின் " "ஆசிரியர்களுக்காக வடிவமைக்கப்பட்டுள்ளது." -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " @@ -31368,7 +31389,7 @@ msgstr "" "வரிசைப்படுத்தப்பட வேண்டும். எபோச் பிரிவு எதுவும் இல்லை என்றால், மறைமுகமான எண் மதிப்பு `` " "0`` ஆகும்." -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " @@ -31378,7 +31399,7 @@ msgstr "" "பின்வருமாறு பாகுபடுத்தப்படும்போது பைதனின் டூப்பிள் வரிசையாக்கத்தின் அதே வரிசையில் " "வரிசைப்படுத்தப்பட வேண்டும் ::" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." @@ -31386,7 +31407,7 @@ msgstr "" "ஒப்பீட்டில் ஈடுபட்டுள்ள அனைத்து வெளியீட்டு பிரிவுகளும் தேவைக்கேற்ப பூச்சியங்களுடன் குறுகிய " "பிரிவுகளைத் திணிப்பதன் மூலம் நிலையான நீளமாக மாற்றப்பட வேண்டும்." -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" @@ -31394,7 +31415,7 @@ msgstr "" "ஒரு எண் வெளியீட்டிற்குள் (`` 1.0``, `` 2.7.3``), பின்வரும் பின்னொட்டுகள் " "அனுமதிக்கப்படுகின்றன, மேலும் காட்டப்பட்டுள்ளபடி ஆர்டர் செய்யப்பட வேண்டும் ::" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -31406,7 +31427,7 @@ msgstr "" "மாதிரியான வெளியீட்டுப் பிரிவில் தெளிவற்ற அதே பிரிவில் ஒரே மாதிரியான` `n`` ஐக் கொண்ட " "வழக்கை கருவிகள் நிராகரிக்கலாம் மற்றும் விவரக்குறிப்புக்கு இணங்க வேண்டும்." -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " @@ -31416,7 +31437,7 @@ msgstr "" "வெளியிடும், பின்வரும் பின்னொட்டுகள் அனுமதிக்கப்படுகின்றன, மேலும் காட்டப்பட்டுள்ளபடி ஆர்டர் " "செய்யப்பட வேண்டும் ::" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" @@ -31424,7 +31445,7 @@ msgstr "" "ஒரு பிந்தைய வெளியீட்டிற்குள் (`` 1.0.post1``), பின்வரும் பின்னொட்டுகள் " "அனுமதிக்கப்படுகின்றன, மேலும் அவை காட்டப்பட்டுள்ளபடி ஆர்டர் செய்யப்பட வேண்டும் ::" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " @@ -31434,7 +31455,7 @@ msgstr "" "பயன்படுத்தும்போது கூட, `` devn`` மற்றும் `` போச்ட்ன்`` எப்போதும் ஒரு புள்ளிக்கு முன்னதாக " "இருக்க வேண்டும் என்பதை நினைவில் கொள்க." -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." @@ -31442,15 +31463,15 @@ msgstr "" "ஒரு முன் வெளியீட்டிற்குள், பகிரப்பட்ட முன்னொட்டுடன் வெளியீடு அல்லது மேம்பாட்டு வெளியீட்டு " "பிரிவுக்குள், வரிசைப்படுத்துதல் எண் கூறுகளின் மதிப்பால் இருக்க வேண்டும்." -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "பின்வரும் எடுத்துக்காட்டு சாத்தியமான பல சேர்க்கைகளை உள்ளடக்கியது ::" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "பதிப்பு வெவ்வேறு மேனிலை தரவு பதிப்புகளில் வரிசைப்படுத்துகிறது" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " @@ -31461,7 +31482,7 @@ msgstr "" "மேனிலை தரவு V1.2 (: PEP: `345`) வரையறுக்கப்பட்ட ஒரு திட்டத்தை குறிப்பிடுகிறது: " "PEP:` 386`." -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -31478,7 +31499,7 @@ msgstr "" "தேவைகள் ஒரு திட்டத்தின் அனைத்து பதிப்புகளுக்கும் பயன்படுத்தப்பட வேண்டிய ஒரு பாகுபடுத்தும் " "பொறிமுறையில் ஒரு தரப்படுத்தல் தேவைப்படுகிறது." -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -31494,7 +31515,7 @@ msgstr "" "கிடைக்கவில்லை என்றால், வரையறுக்கப்பட்ட பதிப்பு பாகுபடுத்தல் மற்றும் வரிசைப்படுத்தும் " "திட்டங்களை செயல்படுத்தலாம்." -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." @@ -31502,11 +31523,11 @@ msgstr "" "விநியோக பயனர்கள் தாங்கள் கட்டுப்படுத்தும் எந்தவொரு தனியார் தொகுப்பு குறியீடுகளிலிருந்தும் " "இணங்காத பதிப்புகளை வெளிப்படையாக அகற்ற விரும்பலாம்." -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "பிற பதிப்பு திட்டங்களுடன் பொருந்தக்கூடிய தன்மை" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -31519,7 +31540,7 @@ msgstr "" "சந்தர்ப்பங்களில், திட்ட குறிப்பிட்ட பதிப்பை மெட்டாடேட்டாவில் சேமிக்க முடியும், அதே நேரத்தில் " "மொழிபெயர்க்கப்பட்ட பொது பதிப்பு பதிப்பு புலத்தில் வெளியிடப்படுகிறது." -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " @@ -31529,7 +31550,7 @@ msgstr "" "வரிசைப்படுத்தலை வழங்க அனுமதிக்கிறது, அதே நேரத்தில் உருவாக்குபவர்கள் தங்கள் திட்டங்களுக்கு " "அவர்கள் விரும்பும் உள் பதிப்பு திட்டத்தைப் பயன்படுத்த அனுமதிக்கிறது." -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -31546,7 +31567,7 @@ msgstr "" "உள்ளடக்கியுள்ளதால், மற்றவர்கள் நம்பியிருக்கும் விநியோகத்தை வெளியிடும் போது இந்த திட்டம் " "புரிந்து கொள்ளத்தக்கது." -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -31558,7 +31579,7 @@ msgstr "" "திட்டத்துடன் முழுமையாக ஒத்துப்போகும், மேலும் இந்த அம்சங்களை பின்பற்றுவது " "ஊக்குவிக்கப்படுகிறது." -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " @@ -31568,7 +31589,7 @@ msgstr "" "பிரிவு 11) கொண்ட சொற்பொருள் பதிப்புகள் * இந்த விவரக்குறிப்புடன் பொருந்தாது மற்றும் பொது " "பதிப்பு துறையில் அனுமதிக்கப்படாது." -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " @@ -31578,16 +31599,16 @@ msgstr "" "மொழிபெயர்ப்பதற்கான ஒரு வழிமுறை, பொருத்தமான பதிப்பு வரிசையைக் குறிப்பிட `` .devn`` " "பின்னொட்டைப் பயன்படுத்துவது." -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "உள்ளக பதிப்பு லேபிள்களிலும் குறிப்பிட்ட உருவாக்க தகவல்கள் சேர்க்கப்படலாம்." -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "டி.வி.சி.எச் அடிப்படையிலான பதிப்பு லேபிள்கள்" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -31599,7 +31620,7 @@ msgstr "" "ஒருங்கிணைக்கின்றன. ஆச்களை நம்பத்தகுந்த வகையில் ஆர்டர் செய்ய முடியாது, இதுபோன்ற பதிப்புகள் " "பொது பதிப்பு துறையில் அனுமதிக்கப்படாது." -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " @@ -31609,16 +31630,16 @@ msgstr "" "வெளியீட்டிற்காக தனித்துவமாக அடையாளம் காண பயன்படுத்தப்படலாம், அதே நேரத்தில் அசல் " "டி.வி.சி.எச் அடிப்படையிலான லேபிளை திட்ட மெட்டாடேட்டாவில் சேமிக்க முடியும்." -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "ஆச் தகவல்களை அடையாளம் காண்பது உள்ளக பதிப்பு லேபிள்களிலும் சேர்க்கப்படலாம்." -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "ஓல்சன் தரவுத்தள பதிப்பு" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " @@ -31628,7 +31649,7 @@ msgstr "" "திட்டத்திலிருந்து பெறுகிறது: அந்த ஆண்டுக்குள் தரவுத்தளத்தின் பதிப்பைக் குறிக்கும் சிறிய " "எழுத்து ஆண்டு." -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -31637,7 +31658,7 @@ msgid "" msgstr "" "இதை ஒரு இணக்கமான பொது பதிப்பு அடையாளங்காட்டிக்கு `` <ஆண்டு> என மொழிபெயர்க்கலாம்." -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." @@ -31645,7 +31666,7 @@ msgstr "" "பிற மொழிபெயர்க்கப்பட்ட பதிப்பு அடையாளங்காட்டிகளைப் போலவே, தொடர்புடைய ஓல்சன் தரவுத்தள " "பதிப்பையும் திட்ட மெட்டாடேட்டாவில் பதிவு செய்யலாம்." -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" @@ -31653,35 +31674,35 @@ msgstr "" "ஒரு பதிப்பு விவரக்குறிப்பு தொடர்ச்சியான பதிப்பு உட்பிரிவுகளைக் கொண்டுள்ளது, இது " "காற்புள்ளிகளால் பிரிக்கப்பட்டுள்ளது. உதாரணமாக ::" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "ஒப்பீட்டு ஆபரேட்டர் பதிப்பு விதிமுறையை தீர்மானிக்கிறது:" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "`` ~ = ``: `இணக்கமான வெளியீடு`_ பிரிவு" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "`` == ``: `பதிப்பு பொருந்தும்`_ பிரிவு" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "``! = ``: `பதிப்பு விலக்கு`_ பிரிவு" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "`` <= ``, ``> = ``: `உள்ளடக்கிய உத்தரவிடப்பட்ட ஒப்பீடு`_ பிரிவு" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "`` <``, ``> ``: `பிரத்யேக உத்தரவிடப்பட்ட ஒப்பீடு`_ பிரிவு" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "`` === ``: `தன்னிச்சையான சமத்துவம்`_ பிரிவு." -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " @@ -31690,7 +31711,7 @@ msgstr "" "கமா (\",\") ஒரு தர்க்கரீதியான ** மற்றும் ** ஆபரேட்டருக்கு சமம்: ஒரு வேட்பாளர் பதிப்பு " "கொடுக்கப்பட்ட அனைத்து பதிப்பு உட்பிரிவுகளையும் பொருத்த வேண்டும்." -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." @@ -31698,7 +31719,7 @@ msgstr "" "ஒரு நிபந்தனை ஆபரேட்டருக்கும் பின்வரும் பதிப்பு அடையாளங்காட்டிக்கும் இடையிலான இடைவெளி " "விருப்பமானது, காற்புள்ளிகளைச் சுற்றியுள்ள இடைவெளி." -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -31712,7 +31733,7 @@ msgstr "" "கருதப்படுகிறதா இல்லையா என்பது `முன் வெளியீடுகளை கையாளுதல்`_ இல் விவரிக்கப்பட்டுள்ளபடி " "கையாளப்பட வேண்டும்." -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " @@ -31723,11 +31744,11 @@ msgstr "" "விவரக்குறிப்புடன் பொருந்துமா என்பதைச் சரிபார்க்கும்போது உள்ளக பதிப்பு லேபிள்கள் முற்றிலும் " "புறக்கணிக்கப்பட வேண்டும்." -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "இணக்கமான வெளியீடு" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " @@ -31737,7 +31758,7 @@ msgstr "" "அடையாளங்காட்டியைக் கொண்டுள்ளது. குறிப்பிட்ட பதிப்போடு இணக்கமாக இருக்கும் என்று " "எதிர்பார்க்கப்படும் எந்த வேட்பாளர் பதிப்பையும் இது பொருந்துகிறது." -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " @@ -31747,7 +31768,7 @@ msgstr "" "வடிவத்தில் இருக்க வேண்டும். இந்த பதிப்பு விவரக்குறிப்பில் உள்ளக பதிப்பு அடையாளங்காட்டிகள் " "அனுமதிக்கப்படவில்லை." -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" @@ -31755,18 +31776,18 @@ msgstr "" "கொடுக்கப்பட்ட வெளியீட்டு அடையாளங்காட்டிக்கு `` v.n`` க்கு, இணக்கமான வெளியீட்டு விதிமுறை " "ஒப்பீட்டு உட்பிரிவுகளின் சோடியுக்கு சமமானதாகும் ::" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" "இந்த ஆபரேட்டர் `` ~ = 1`` போன்ற ஒற்றை பிரிவு பதிப்பு எண்ணுடன் பயன்படுத்தப்படக்கூடாது." -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "எடுத்துக்காட்டாக, பதிப்பு உட்பிரிவுகளின் பின்வரும் குழுக்கள் சமமானவை ::" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " @@ -31776,7 +31797,7 @@ msgstr "" "`` v.n.suffix`` என பெயரிடப்பட்டால், தேவையான முன்னொட்டு பொருத்தத்தை தீர்மானிக்கும்போது " "பின்னொட்டு புறக்கணிக்கப்படுகிறது ::" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " @@ -31786,11 +31807,11 @@ msgstr "" "முன்னோக்கி பொருந்தக்கூடிய அளவைக் கருதுவதன் மூலம் கூடுதல் பூச்சியங்களை பதிப்பில் சேர்ப்பதன் " "மூலம் கட்டுப்படுத்த முடியும் ::" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "பதிப்பு பொருந்தும்" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." @@ -31798,7 +31819,7 @@ msgstr "" "ஒரு பதிப்பு பொருந்தும் பிரிவில் பதிப்பு பொருந்தும் ஆபரேட்டர் `` == `` மற்றும் பதிப்பு " "அடையாளங்காட்டி ஆகியவை அடங்கும்." -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " @@ -31808,7 +31829,7 @@ msgstr "" "வடிவத்தில் இருக்க வேண்டும், ஆனால் கீழே விவரிக்கப்பட்டுள்ளபடி பொது பதிப்பு " "அடையாளங்காட்டிகளில்` `." -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -31821,7 +31842,7 @@ msgstr "" "நீளத்துடன் ஒப்பிடப்படுவதை உறுதிசெய்ய வெளியீட்டு பிரிவின் சுழிய திணிப்பு * மட்டுமே " "செய்யப்படுகிறது." -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -31833,7 +31854,7 @@ msgstr "" "வழங்க வேண்டும், மேலும் கடுமையான பதிப்பு போட்டிகள் தகாத முறையில் பயன்படுத்தப்படும்போது " "அவற்றை முழுமையாக நிராகரிக்கலாம்." -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -31849,8 +31870,8 @@ msgstr "" "வெளியீட்டு பிரிவு மட்டுமே இருந்தால், வெளியீட்டு பிரிவில் உள்ள பின்வரும் கூறுகள் (அல்லது " "அதன் பற்றாக்குறை) புறக்கணிக்கப்படுகின்றன." -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" @@ -31858,7 +31879,7 @@ msgstr "" "எடுத்துக்காட்டாக, பதிப்பு `` 1.1.post1`` கொடுக்கப்பட்டால், பின்வரும் உட்பிரிவுகள் " "பொருந்தாது அல்லது காட்டப்பட்டுள்ளபடி இல்லை ::" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " @@ -31867,7 +31888,7 @@ msgstr "" "முன்னொட்டு பொருத்தத்தின் நோக்கங்களுக்காக, வெளியீட்டுக்கு முந்தைய பிரிவு `` .`` க்கு " "முந்தைய ஒரு மறைமுகத்தைக் கொண்டிருப்பதாகக் கருதப்படுகிறது, எனவே பதிப்பு `` 1.1a1```" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -31879,7 +31900,7 @@ msgstr "" "குறிக்கப்படுகிறது). பதிப்பு `` 1.1`` கொடுக்கப்பட்டால், பின்வரும் உட்பிரிவுகள் பொருந்தாது " "அல்லது காட்டப்பட்டுள்ளபடி இல்லை ::" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -31893,7 +31914,7 @@ msgstr "" "நோக்கங்களுக்காக புறக்கணிக்கப்படுகிறது, எனவே முன்னொட்டு போட்டியில் பயன்படுத்துவது எந்த " "அர்த்தமும் இல்லை." -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -31909,7 +31930,7 @@ msgstr "" "சார்புகளை வரையறுக்கும் போது கடுமையான பதிப்பு ஒப்பீட்டு ஆபரேட்டர் முதன்மையாக " "பயன்பாட்டிற்காக கருதப்படுகிறது." -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " @@ -31919,7 +31940,7 @@ msgstr "" "சிட்டை இல்லை) என்றால், எந்த வேட்பாளர் பதிப்புகளின் உள்ளக பதிப்பு சிட்டை பதிப்புகளுடன் " "பொருந்தும்போது புறக்கணிக்கப்பட வேண்டும்." -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -31933,11 +31954,11 @@ msgstr "" "உள்ளக பதிப்பு சிட்டை ஒரு கடுமையான சரம் சமத்துவ ஒப்பீட்டைப் பயன்படுத்தி சமநிலைக்கு " "சரிபார்க்கப்படுகிறது." -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "பதிப்பு விலக்கு" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." @@ -31945,7 +31966,7 @@ msgstr "" "பதிப்பு விலக்கு பிரிவில் பதிப்பு விலக்கு ஆபரேட்டர் ``! = `` மற்றும் பதிப்பு " "அடையாளங்காட்டி ஆகியவை அடங்கும்." -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " @@ -31954,11 +31975,11 @@ msgstr "" "அனுமதிக்கப்பட்ட பதிப்பு அடையாளங்காட்டிகள் மற்றும் ஒப்பீட்டு சொற்பொருள்கள் `பதிப்பு " "பொருத்துதல்`_ ஆபரேட்டருக்கு சமமானவை, தவிர எந்தவொரு போட்டியின் உணர்வும் தலைகீழாக உள்ளது." -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "உள்ளடக்கிய உத்தரவிட்ட ஒப்பீடு" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -31971,12 +31992,12 @@ msgstr "" "`பதிப்பு திட்டம்`_ ஆல் வரையறுக்கப்பட்ட நிலையான வரிசைப்படுத்தல் கொடுக்கப்பட்ட குறிப்பிட்ட " "பதிப்பின் அடிப்படையில் ஒப்பீடு சரியானதாக இருக்கும் எந்த பதிப்பையும் பொருத்துகிறது." -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "உள்ளடக்கிய உத்தரவிடப்பட்ட ஒப்பீட்டு ஆபரேட்டர்கள் `` <= `` மற்றும் ``> = ``." -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." @@ -31984,16 +32005,16 @@ msgstr "" "பதிப்பு பொருத்தத்தைப் போலவே, வெளியீட்டு பிரிவுகள் ஒரே நீளத்துடன் ஒப்பிடப்படுவதை " "உறுதிசெய்ய தேவையான அளவு பூச்சியத் துடுப்பு ஆகும்." -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "இந்த பதிப்பு விவரக்குறிப்பில் உள்ளக பதிப்பு அடையாளங்காட்டிகள் அனுமதிக்கப்படவில்லை." -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "பிரத்தியேக உத்தரவிடப்பட்ட ஒப்பீடு" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -32008,7 +32029,7 @@ msgstr "" "கொடுக்கப்பட்ட குறிப்பிட்ட பதிப்பாகும். இருப்பினும், அவை குறிப்பிட்ட பதிப்பின் முன் " "வெளியீடுகள், பிந்தைய வெளியீடுகள் மற்றும் உள்ளக பதிப்புகளை குறிப்பாக விலக்குகின்றன." -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -32024,7 +32045,7 @@ msgstr "" "`` 1.7.0.post1`` மற்றும் `> 1.7.post2`` ஐ அனுமதிக்கும்` `1.7.1``` மற்றும்` " "`1.7.0.post3`` அல்ல, ஆனால்` `1.7.0``." -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." @@ -32032,7 +32053,7 @@ msgstr "" "பிரத்யேக ஆர்டர் செய்யப்பட்ட ஒப்பீடு ``> v`` ** குறிப்பிட்ட பதிப்பின் உள்ளக பதிப்போடு " "பொருந்தக்கூடாது." -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " @@ -32317,7 +32346,7 @@ msgstr "" "`` முகவரி துண்டின் ஒரு பகுதியாக நுழைவு ஆகியவற்றைச் சேர்ப்பதன் மூலம் எதிர்பார்க்கப்படும் " "ஆச் மதிப்பு குறிப்பிடப்படலாம்." -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -32332,7 +32361,7 @@ msgstr "" "பதிப்பு கட்டுப்பாட்டு அமைப்புகளுக்கான ஆச்களைக் காணவில்லை என்ற எச்சரிக்கைகளை தானியங்கு " "கருவிகள் தவிர்க்கலாம்." -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -32343,7 +32372,7 @@ msgstr "" "அமைப்புகளைக் கையாள, அந்த செய்தி `` `<கமிட்-ஆச்>` அல்லது ``@<குறிச்சொல்>#<கமிட்-ஆச்> `` " "குறியீட்டைப் பயன்படுத்தி முகவரி இன் முடிவில் சேர்க்கப்படலாம்." -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -32361,15 +32390,15 @@ msgstr "" "குறிச்சொல்லுடன் தீங்கிழைக்கும் ரெப்போவை உருவாக்குவது எளிதானது, ஒரு குறிப்பிட்ட *ஆச் *உடன் " "ஒன்றை உருவாக்குகிறது, குறைவாக)." -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "தொலைநிலை முகவரி எடுத்துக்காட்டுகள் ::" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "கோப்பு முகவரி கள்" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -32381,7 +32410,7 @@ msgstr "" "தவிர்க்கப்பட்டாலும் கூட மூன்றாவது சாய்வு இன்னும் இருக்க வேண்டும். `` `` `அணுக " "வேண்டிய கோப்பு முறைமையின் கோப்பு பாதை என்ன என்பதை வரையறுக்கிறது." -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -32393,7 +32422,7 @@ msgstr "" "அதன் சொந்த ஓச்டுடன் பொருந்துகிறது. வேறு வார்த்தைகளில் கூறுவதானால், `` கோப்பு: // `` " "திட்டத்தை உள்ளக கணினியில் பாதைகளை அணுக மட்டுமே பயன்படுத்த முடியும்." -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -32412,11 +32441,11 @@ msgstr "" "தொகுதி/கோப்பு`` என முடிவடையும். சாளரங்களில் `` கோப்பு: // `` urls பற்றிய கூடுதல் " "தகவலுக்கு `msdtn _ _ திட்டம்):" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "ஆகச்ட் 2014: இந்த விவரக்குறிப்பு அங்கீகரிக்கப்பட்டது: PEP: `440`." -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "பைதான் மெய்நிகர் சூழல்கள்" @@ -34296,10 +34333,21 @@ msgstr "" "பார்க்கவும்." #: ../source/tutorials/packaging-projects.rst:222 +#, fuzzy +#| msgid "" +#| "This is a valid :term:`SPDX license expression ` " +#| "consisting of one or more :term:`license identifiers `. The full license list is available at the `SPDX license " +#| "list page `_. The supported list version is 3.17 or any " +#| "later compatible one." msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" +"இது செல்லுபடியாகும்: சொல்: `SPDX உரிம வெளிப்பாடு <உரிம வெளிப்பாடு>` ஒன்று அல்லது " +"அதற்கு மேற்பட்டவற்றைக் கொண்டது: கால: `உரிம அடையாளங்காட்டிகள் <உரிம அடையாளங்காட்டி>`. " +"முழு உரிம பட்டியல் `SPDX உரிம பட்டியல் பக்கத்தில் ` _ இல் " +"கிடைக்கிறது. ஆதரிக்கப்பட்ட பட்டியல் பதிப்பு 3.17 அல்லது பின்னர் இணக்கமான ஒன்றாகும்." #: ../source/tutorials/packaging-projects.rst:224 #, fuzzy @@ -34350,12 +34398,21 @@ msgid "Creating a LICENSE" msgstr "உரிமத்தை உருவாக்குதல்" #: ../source/tutorials/packaging-projects.rst:253 -msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +#, fuzzy +#| msgid "" +#| "It's important for every package uploaded to the Python Package Index to " +#| "include a license. This tells users who install your package the terms " +#| "under which they can use your package. For help picking a license, see " +#| "https://choosealicense.com/. Once you have chosen a license, " +#| "open :file:`LICENSE` and enter the license text. For example, if you had " +#| "chosen the MIT license:" +msgid "" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" "பைதான் தொகுப்பு குறியீட்டில் பதிவேற்றப்பட்ட ஒவ்வொரு தொகுப்புக்கும் உரிமம் சேர்க்க வேண்டியது " "தேவை. உங்கள் தொகுப்பைப் பயன்படுத்தக்கூடிய விதிமுறைகளை உங்கள் தொகுப்பை நிறுவும் " @@ -34707,6 +34764,172 @@ msgstr "" "மட்டுமே தொடங்கினால், * வழக்கமான தொகுப்புகள் * மற்றும் `__init __. பை`` (கோப்பு " "காலியாக இருந்தாலும் கூட) ஒட்டிக்கொள்ள பரிந்துரைக்கப்படுகிறது." +#~ msgid "" +#~ "This specification was originally defined in :pep:`518` and :pep:`621`." +#~ msgstr "" +#~ "இந்த விவரக்குறிப்பு முதலில் வரையறுக்கப்பட்டது: PEP: `518` மற்றும்: PEP:` 621`." + +#~ msgid "" +#~ "Refer to the `pkg_resources documentation `__ for more details." +#~ msgstr "" +#~ "மேலும் விவரங்களுக்கு `pkg_resources ஆவணங்கள் `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2781,41 +2783,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2824,7 +2826,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2833,12 +2835,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2848,7 +2850,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2860,11 +2862,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2872,20 +2874,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2893,7 +2895,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2904,7 +2906,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2913,13 +2915,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3202,11 +3204,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3405,9 +3407,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3580,54 +3582,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3635,11 +3637,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3648,11 +3650,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3660,26 +3662,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3691,38 +3693,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3731,21 +3733,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3754,11 +3756,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3766,15 +3768,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3782,21 +3784,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3949,7 +3951,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4305,17 +4307,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4627,7 +4640,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -4998,7 +5011,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6686,11 +6699,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6726,7 +6740,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6739,29 +6754,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6773,65 +6788,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6840,18 +6855,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6860,11 +6875,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6874,7 +6889,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6883,11 +6898,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6899,24 +6914,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6924,17 +6939,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6945,11 +6960,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6957,14 +6972,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7591,12 +7606,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8302,17 +8311,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8320,34 +8329,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8355,42 +8364,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8399,18 +8420,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8740,7 +8755,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9356,40 +9371,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9397,25 +9416,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9423,45 +9442,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9472,31 +9491,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9697,9 +9716,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9726,9 +9745,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9759,7 +9778,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9789,8 +9808,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9842,7 +9861,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9853,8 +9872,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9866,8 +9885,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9900,7 +9919,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -9974,8 +9993,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10005,90 +10024,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10097,26 +10116,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10124,28 +10143,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10153,33 +10172,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13230,86 +13249,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13318,116 +13333,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13437,51 +13381,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13489,7 +13393,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13497,18 +13401,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13517,7 +13421,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13528,7 +13432,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13546,7 +13450,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13555,7 +13459,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13567,26 +13471,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13594,24 +13498,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14365,11 +14273,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16201,17 +16109,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18219,7 +18133,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20562,95 +20476,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20673,10 +20597,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20727,7 +20647,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20735,24 +20655,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20762,139 +20682,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20908,7 +20828,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20917,7 +20837,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20929,30 +20849,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20961,21 +20881,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -20985,26 +20905,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21013,40 +20933,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21055,11 +20975,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21089,56 +21009,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21146,38 +21066,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21185,14 +21105,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21200,7 +21120,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21208,24 +21128,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21233,7 +21153,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21244,13 +21164,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21259,7 +21179,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21274,38 +21194,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21315,7 +21235,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21323,7 +21243,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21331,21 +21251,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21353,19 +21273,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21374,20 +21294,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21395,18 +21315,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21414,7 +21334,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21422,32 +21342,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22271,7 +22191,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22310,7 +22230,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22530,14 +22450,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22571,7 +22491,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22579,45 +22499,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22625,7 +22545,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22634,23 +22554,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22659,14 +22579,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22676,7 +22596,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22684,14 +22604,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22701,45 +22621,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22748,7 +22668,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22758,17 +22678,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22776,7 +22696,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22785,11 +22705,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22797,11 +22717,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22864,11 +22784,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22877,65 +22797,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22943,7 +22863,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22954,7 +22874,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22963,33 +22883,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -22999,7 +22919,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23009,7 +22929,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23017,7 +22937,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23028,22 +22948,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23052,25 +22972,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23078,13 +22998,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23094,18 +23014,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23113,7 +23033,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23123,7 +23043,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23131,7 +23051,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23139,7 +23059,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23148,18 +23068,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23167,13 +23087,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23182,23 +23102,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23207,79 +23127,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23557,7 +23477,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24084,11 +24004,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24096,22 +24038,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24120,11 +24062,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24134,11 +24076,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24148,11 +24090,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24160,11 +24102,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24175,11 +24117,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24187,11 +24129,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24199,11 +24141,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24213,11 +24155,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24225,11 +24167,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24237,11 +24179,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24249,11 +24191,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24262,11 +24204,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24275,11 +24217,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24289,7 +24231,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24297,69 +24239,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24367,48 +24309,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24419,7 +24361,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24429,17 +24371,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24448,14 +24390,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24466,7 +24408,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24474,30 +24416,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24505,30 +24447,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24536,60 +24478,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24598,79 +24540,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24679,7 +24621,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24687,7 +24629,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24697,21 +24639,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24719,7 +24661,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24728,7 +24670,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24738,14 +24680,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24754,28 +24696,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24784,27 +24726,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24814,7 +24756,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24824,13 +24766,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25050,7 +24994,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25058,7 +25002,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25069,15 +25013,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25085,7 +25029,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25093,7 +25037,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25105,43 +25049,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25150,29 +25094,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26538,7 +26490,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26577,11 +26529,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/tr/LC_MESSAGES/messages.po b/locales/tr/LC_MESSAGES/messages.po index 4c5ea9bb4..abef18066 100644 --- a/locales/tr/LC_MESSAGES/messages.po +++ b/locales/tr/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2025-09-29 04:02+0000\n" "Last-Translator: Rüzgar Hünerel \n" "Language-Team: Turkish `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2808,41 +2810,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2851,7 +2853,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2860,12 +2862,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2875,7 +2877,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2887,11 +2889,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2899,20 +2901,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2920,7 +2922,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2931,7 +2933,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2940,13 +2942,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3229,11 +3231,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3432,9 +3434,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3607,54 +3609,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3662,11 +3664,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3675,11 +3677,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3687,26 +3689,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3718,38 +3720,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3758,21 +3760,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3781,11 +3783,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3793,15 +3795,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3809,21 +3811,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -3976,7 +3978,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4332,17 +4334,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4654,7 +4667,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5025,7 +5038,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6713,11 +6726,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6753,7 +6767,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6766,29 +6781,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6800,65 +6815,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6867,18 +6882,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6887,11 +6902,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6901,7 +6916,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6910,11 +6925,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6926,24 +6941,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -6951,17 +6966,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -6972,11 +6987,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -6984,14 +6999,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7618,12 +7633,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8329,17 +8338,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8347,34 +8356,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8382,42 +8391,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8426,18 +8447,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8767,7 +8782,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9383,40 +9398,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9424,25 +9443,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9450,45 +9469,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9499,31 +9518,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9724,9 +9743,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9753,9 +9772,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9786,7 +9805,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9816,8 +9835,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9869,7 +9888,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9880,8 +9899,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9893,8 +9912,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -9927,7 +9946,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -10001,8 +10020,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10032,90 +10051,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10124,26 +10143,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10151,28 +10170,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10180,33 +10199,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13257,86 +13276,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13345,116 +13360,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13464,51 +13408,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13516,7 +13420,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13524,18 +13428,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13544,7 +13448,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13555,7 +13459,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13573,7 +13477,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13582,7 +13486,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13594,26 +13498,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13621,24 +13525,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14392,11 +14300,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16228,17 +16136,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18246,7 +18160,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20589,95 +20503,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20700,10 +20624,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20754,7 +20674,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20762,24 +20682,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20789,139 +20709,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -20935,7 +20855,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -20944,7 +20864,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -20956,30 +20876,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -20988,21 +20908,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -21012,26 +20932,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21040,40 +20960,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21082,11 +21002,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21116,56 +21036,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21173,38 +21093,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21212,14 +21132,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21227,7 +21147,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21235,24 +21155,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21260,7 +21180,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21271,13 +21191,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21286,7 +21206,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21301,38 +21221,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21342,7 +21262,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21350,7 +21270,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21358,21 +21278,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21380,19 +21300,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21401,20 +21321,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21422,18 +21342,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21441,7 +21361,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21449,32 +21369,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22298,7 +22218,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22337,7 +22257,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22557,14 +22477,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22598,7 +22518,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22606,45 +22526,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22652,7 +22572,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22661,23 +22581,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22686,14 +22606,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22703,7 +22623,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22711,14 +22631,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22728,45 +22648,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22775,7 +22695,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22785,17 +22705,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22803,7 +22723,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22812,11 +22732,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -22824,11 +22744,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -22891,11 +22811,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -22904,65 +22824,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -22970,7 +22890,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -22981,7 +22901,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -22990,33 +22910,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23026,7 +22946,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23036,7 +22956,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23044,7 +22964,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23055,22 +22975,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23079,25 +22999,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23105,13 +23025,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23121,18 +23041,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23140,7 +23060,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23150,7 +23070,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23158,7 +23078,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23166,7 +23086,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23175,18 +23095,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23194,13 +23114,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23209,23 +23129,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23234,79 +23154,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23584,7 +23504,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24111,11 +24031,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24123,22 +24065,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24147,11 +24089,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24161,11 +24103,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24175,11 +24117,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24187,11 +24129,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24202,11 +24144,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24214,11 +24156,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24226,11 +24168,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24240,11 +24182,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24252,11 +24194,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24264,11 +24206,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24276,11 +24218,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24289,11 +24231,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24302,11 +24244,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24316,7 +24258,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24324,69 +24266,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24394,48 +24336,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24446,7 +24388,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24456,17 +24398,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24475,14 +24417,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24493,7 +24435,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24501,30 +24443,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24532,30 +24474,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24563,60 +24505,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24625,79 +24567,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24706,7 +24648,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24714,7 +24656,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24724,21 +24666,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24746,7 +24688,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24755,7 +24697,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24765,14 +24707,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24781,28 +24723,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -24811,27 +24753,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -24841,7 +24783,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -24851,13 +24793,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25077,7 +25021,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25085,7 +25029,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25096,15 +25040,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25112,7 +25056,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25120,7 +25064,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25132,43 +25076,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25177,29 +25121,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26565,7 +26517,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26604,11 +26556,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/uk/LC_MESSAGES/messages.po b/locales/uk/LC_MESSAGES/messages.po index 2dd92aaf9..4f6c1a667 100644 --- a/locales/uk/LC_MESSAGES/messages.po +++ b/locales/uk/LC_MESSAGES/messages.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2024-03-01 20:00+0000\n" "Last-Translator: Sviatoslav Sydorenko \n" "Language-Team: Ukrainian `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -3141,44 +3143,44 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 #, fuzzy #| msgid "Serial versioning" msgid "Calendar versioning" msgstr "Порядкове версіонування" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 #, fuzzy msgid "Other schemes" msgstr "Version" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -3187,7 +3189,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -3196,12 +3198,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "Ідентифікатори місцевих версій" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -3211,7 +3213,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -3223,11 +3225,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -3235,20 +3237,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -3256,7 +3258,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -3267,7 +3269,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -3276,13 +3278,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3582,11 +3584,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3797,9 +3799,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3980,54 +3982,54 @@ msgstr "Управління з пакування Python (PyPA)" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "Реєстр Python-пакунків (PyPI)" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "pypi.org" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "pyproject.toml" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "Випуск" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -4035,11 +4037,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -4048,11 +4050,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "Специфікатор вимоги" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -4060,28 +4062,28 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 #, fuzzy #| msgid "Project name" msgid "Root License Directory" msgstr "Назва проєкту" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -4093,38 +4095,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "setup.py" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "setup.cfg" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "Вихідний архів" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -4133,21 +4135,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "Специфікатор версії" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -4156,11 +4158,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -4168,17 +4170,17 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 #, fuzzy #| msgid "Format::" msgid "Wheel Format" msgstr "Формат::" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "Колесо" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -4186,23 +4188,23 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 #, fuzzy #| msgid "Project" msgid "Wheel Project" msgstr "Проєкт" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -4357,7 +4359,7 @@ msgstr "Опис" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "Приклади" @@ -4719,17 +4721,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -5047,7 +5060,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5422,7 +5435,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "``scripts``" @@ -7170,11 +7183,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -7214,7 +7228,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -7227,31 +7242,33 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 #, fuzzy #| msgid "For example:" msgid "Advanced example" msgstr "Наприклад:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" -msgstr "" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +#, fuzzy +#| msgid "Here are some examples of compliant version numbers::" +msgid "The appropriate license expressions are:" +msgstr "Ось кілька прикладів сумісних номерів версій::" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -7263,67 +7280,67 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 #, fuzzy #| msgid "For example:" msgid "Expression examples" msgstr "Наприклад:" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -7332,18 +7349,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -7352,11 +7369,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -7366,7 +7383,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -7375,11 +7392,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -7391,24 +7408,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -7416,17 +7433,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -7437,11 +7454,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -7449,14 +7466,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -8095,12 +8112,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8810,17 +8821,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8828,34 +8839,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8863,42 +8874,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8907,18 +8930,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -9250,7 +9267,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9868,42 +9885,46 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 #, fuzzy #| msgid "Built Distribution" msgid "Building distributions" msgstr "Вбудований дистрибутив" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9911,27 +9932,27 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 #, fuzzy #| msgid "Using TestPyPI" msgid "Uploading to PyPI" msgstr "Використання TestPyPI" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9939,45 +9960,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9988,41 +10009,41 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 #, fuzzy #| msgid ":ref:`pip`" msgid ":ref:`Flit`," msgstr ":ref:`pip`" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 #, fuzzy #| msgid "pip, :ref:`bandersnatch`" msgid ":ref:`Hatch`," msgstr "pip, :ref:`bandersnatch`" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 #, fuzzy #| msgid ":ref:`pip`" msgid ":ref:`PDM`," msgstr ":ref:`pip`" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 #, fuzzy #| msgid ":ref:`pip`" msgid ":ref:`Pipenv`," msgstr ":ref:`pip`" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 #, fuzzy #| msgid ":ref:`pip`" msgid ":ref:`Poetry`," msgstr ":ref:`pip`" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -10225,9 +10246,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "``name``" @@ -10254,9 +10275,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "``version``" @@ -10289,7 +10310,7 @@ msgid "Dependencies and requirements" msgstr "install_requires проти файлів requirements" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "``dependencies``/``optional-dependencies``" @@ -10319,8 +10340,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "``requires-python``" @@ -10372,7 +10393,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "``authors``/``maintainers``" @@ -10383,8 +10404,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "``description``" @@ -10396,8 +10417,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "``readme``" @@ -10432,7 +10453,7 @@ msgid "``license`` and ``license-files``" msgstr "``license``" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -10514,8 +10535,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "``license``" @@ -10545,92 +10566,92 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 #, fuzzy #| msgid "``license``" msgid "``license-files``" msgstr "``license``" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "``keywords``" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "``classifiers``" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10639,26 +10660,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "``urls``" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10666,28 +10687,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10695,35 +10716,35 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 #, fuzzy #| msgid "For example:" msgid "A full example" msgstr "Наприклад:" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13791,94 +13812,90 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 #, fuzzy #| msgid "Project name" msgid "Subdirectory name" msgstr "Назва проєкту" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 #, fuzzy #| msgid "``license``" msgid "``licenses``" msgstr "``license``" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 #, fuzzy #| msgid "``license``" msgid "``license_files``" msgstr "``license``" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 #, fuzzy #| msgid "``LIB``" msgid "``LICENSES``" msgstr "``LIB``" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13887,119 +13904,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -#, fuzzy -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" -"https://self-issued.info/docs/draft-jones-jose-jws-json-serialization.html" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -#, fuzzy -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "https://self-issued.info/docs/draft-jones-jose-json-private-key.html" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "ЧаПи" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -14009,51 +13952,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -14061,7 +13964,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -14069,18 +13972,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -14089,7 +13992,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -14100,7 +14003,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -14118,7 +14021,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -14127,7 +14030,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -14139,26 +14042,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -14166,24 +14069,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "Додаток" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14972,11 +14879,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16837,17 +16744,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18880,7 +18793,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 #, fuzzy #| msgid "Packaging tool recommendations" msgid "Recommendations" @@ -21278,95 +21191,107 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +#, fuzzy +#| msgid "The :file:`.pypirc` file" +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "Файл :file:`.pypirc`" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -21391,10 +21316,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -21445,7 +21366,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -21453,24 +21374,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -21480,146 +21401,146 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 #, fuzzy msgid "``authors``" msgstr "``author``" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 #, fuzzy msgid "``dependencies``" msgstr "Перевизначення залежностей" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "``dynamic``" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 #, fuzzy msgid "``gui-scripts``" msgstr "``scripts``" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 #, fuzzy #| msgid "``name``" msgid "``import-names``" msgstr "``name``" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 #, fuzzy msgid "``maintainers``" msgstr "Доглядач" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 #, fuzzy msgid "``optional-dependencies``" msgstr "``dependencies``/``optional-dependencies``" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -21633,7 +21554,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -21642,7 +21563,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -21654,30 +21575,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -21686,23 +21607,23 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 #, fuzzy #| msgid "PyPA specifications" msgid "Legacy specification" msgstr "Специфікації PyPA" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -21712,26 +21633,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21740,40 +21661,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21782,11 +21703,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21816,56 +21737,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21873,38 +21794,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21912,14 +21833,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21927,7 +21848,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21935,24 +21856,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21960,7 +21881,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21971,13 +21892,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21986,7 +21907,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -22001,40 +21922,40 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 #, fuzzy #| msgid "Examples::" msgid "Examples:" msgstr "Приклади::" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -22044,7 +21965,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -22052,7 +21973,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -22060,23 +21981,23 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 #, fuzzy #| msgid "Example::" msgid "Example:" msgstr "Приклад::" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -22084,19 +22005,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -22105,20 +22026,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -22126,18 +22047,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -22145,7 +22066,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -22153,32 +22074,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -23018,7 +22939,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -23057,7 +22978,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -23278,14 +23199,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 #, fuzzy #| msgid "For example:" msgid "As an example:" @@ -23321,7 +23242,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -23329,45 +23250,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -23375,7 +23296,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -23384,23 +23305,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -23409,14 +23330,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -23426,7 +23347,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -23434,14 +23355,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -23451,45 +23372,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -23498,7 +23419,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -23508,17 +23429,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -23526,7 +23447,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -23535,11 +23456,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -23547,11 +23468,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -23616,13 +23537,13 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 #, fuzzy #| msgid "Version" msgid "Version + Format Selection" msgstr "Version" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -23631,65 +23552,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -23697,7 +23618,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -23708,7 +23629,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -23717,33 +23638,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23753,7 +23674,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23763,7 +23684,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23771,7 +23692,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23782,22 +23703,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23806,25 +23727,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23832,13 +23753,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23848,18 +23769,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23867,7 +23788,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23877,7 +23798,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23885,7 +23806,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23893,7 +23814,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23902,18 +23823,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23921,13 +23842,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23936,23 +23857,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23961,79 +23882,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -24311,7 +24232,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24848,12 +24769,34 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 #, fuzzy msgid "Normalization" msgstr "Переклади" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24861,23 +24804,23 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 #, fuzzy msgid "Integer Normalization" msgstr "Переклади" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24886,13 +24829,13 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 #, fuzzy #| msgid "Pre-release versioning" msgid "Pre-release separators" msgstr "Версіонування попередніх випусків" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24902,13 +24845,13 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 #, fuzzy #| msgid "Pre-release versioning" msgid "Pre-release spelling" msgstr "Версіонування попередніх випусків" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24918,11 +24861,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24930,11 +24873,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24945,13 +24888,13 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 #, fuzzy #| msgid "Pre-release versioning" msgid "Post release spelling" msgstr "Версіонування попередніх випусків" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24959,11 +24902,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24971,11 +24914,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24985,11 +24928,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24997,11 +24940,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -25009,13 +24952,13 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 #, fuzzy #| msgid "Local version identifiers" msgid "Local version segments" msgstr "Ідентифікатори місцевих версій" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -25023,11 +24966,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -25036,11 +24979,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -25049,13 +24992,13 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 #, fuzzy #| msgid "Here are some examples of compliant version numbers::" msgid "Examples of compliant version schemes" msgstr "Ось кілька прикладів сумісних номерів версій::" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -25065,7 +25008,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -25073,71 +25016,71 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 #, fuzzy #| msgid "Serial versioning" msgid "Simple \"major.minor\" versioning::" msgstr "Порядкове версіонування" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -25145,48 +25088,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -25197,7 +25140,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -25207,17 +25150,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -25226,14 +25169,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -25244,7 +25187,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -25252,32 +25195,32 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 #, fuzzy #| msgid "Date based versioning" msgid "DVCS based version labels" msgstr "Версіонування базоване на датах" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -25285,32 +25228,32 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 #, fuzzy #| msgid "Date based versioning" msgid "Olson database versioning" msgstr "Версіонування базоване на датах" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -25318,60 +25261,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -25380,81 +25323,81 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 #, fuzzy #| msgid "Version" msgid "Version matching" msgstr "Version" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -25463,7 +25406,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -25471,7 +25414,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -25481,21 +25424,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -25503,7 +25446,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -25512,7 +25455,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -25522,14 +25465,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -25538,30 +25481,30 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 #, fuzzy #| msgid "Version Specifier" msgid "Version exclusion" msgstr "Специфікатор версії" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -25570,27 +25513,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -25600,7 +25543,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -25610,13 +25553,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25836,7 +25781,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25844,7 +25789,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25855,17 +25800,17 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 #, fuzzy #| msgid "For example::" msgid "Remote URL examples::" msgstr "Наприклад::" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25873,7 +25818,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25881,7 +25826,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25893,43 +25838,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25938,29 +25883,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -27342,7 +27295,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -27381,11 +27334,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 @@ -27661,6 +27615,19 @@ msgid "" "the file is empty)." msgstr "" +#, fuzzy +#~ msgid "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" +#~ "serialization-01" +#~ msgstr "" +#~ "https://self-issued.info/docs/draft-jones-jose-jws-json-serialization.html" + +#, fuzzy +#~ msgid "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" +#~ msgstr "" +#~ "https://self-issued.info/docs/draft-jones-jose-json-private-key.html" + #~ msgid "`Vagrant `_" #~ msgstr "`Vagrant `_" diff --git a/locales/vi/LC_MESSAGES/messages.po b/locales/vi/LC_MESSAGES/messages.po index 6c5c000a4..1bf82d356 100644 --- a/locales/vi/LC_MESSAGES/messages.po +++ b/locales/vi/LC_MESSAGES/messages.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2025-09-23 05:02+0000\n" "Last-Translator: Lenny Tran \n" "Language-Team: Vietnamese `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2928,41 +2930,41 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2971,7 +2973,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2980,12 +2982,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2995,7 +2997,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -3007,11 +3009,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -3019,20 +3021,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -3040,7 +3042,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -3051,7 +3053,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -3060,13 +3062,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3349,11 +3351,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3552,9 +3554,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3727,54 +3729,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3782,11 +3784,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3795,11 +3797,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3807,26 +3809,26 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3838,38 +3840,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3878,21 +3880,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3901,11 +3903,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3913,15 +3915,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3929,21 +3931,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -4096,7 +4098,7 @@ msgstr "" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "" @@ -4452,17 +4454,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 -msgid "References" +msgid "``ClickPy``" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:339 msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 +msgid "References" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 +msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4774,7 +4787,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5145,7 +5158,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6833,11 +6846,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6873,7 +6887,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6886,29 +6901,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6920,65 +6935,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6987,18 +7002,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -7007,11 +7022,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -7021,7 +7036,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -7030,11 +7045,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -7046,24 +7061,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -7071,17 +7086,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -7092,11 +7107,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -7104,14 +7119,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7738,12 +7753,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8449,17 +8458,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8467,34 +8476,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8502,42 +8511,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8546,18 +8567,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8887,7 +8902,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9503,40 +9518,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9544,25 +9563,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9570,45 +9589,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9619,31 +9638,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr "" -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr "" -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr "" -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr "" -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr "" -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9844,9 +9863,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9873,9 +9892,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9906,7 +9925,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9936,8 +9955,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9989,7 +10008,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -10000,8 +10019,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -10013,8 +10032,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -10047,7 +10066,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -10121,8 +10140,8 @@ msgid "0.7.19" msgstr "0.7.19" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "``license`` (giấy phép)" @@ -10164,12 +10183,19 @@ msgstr "" "phần mềm có giấy phép không được chấp thuận." #: ../source/guides/writing-pyproject-toml.rst:353 -msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +#, fuzzy +#| msgid "" +#| "If your project is licensed with a license that doesn't have an existing " +#| "SPDX identifier, you can create a custom one in format ``LicenseRef-" +#| "[idstring]``. The custom identifiers must follow the SPDX specification, " +#| "`clause 10.1 `_ of the version 2.2 or any later " +#| "compatible one." +msgid "" +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" "Nếu dự án của bạn được cấp phép theo giấy phép chưa có mã định danh SPDX, " "bạn có thể tạo mã định danh tùy chỉnh theo định dạng ``LicenseRef-" @@ -10177,13 +10203,13 @@ msgstr "" "10.1 ``_ của phiên bản 2.2 hoặc bất kỳ phiên bản tương thích " "nào mới hơn." -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "``license-files`` (các tệp giấy phép)" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." @@ -10191,11 +10217,11 @@ msgstr "" "Đây là danh sách các tệp giấy phép và tệp chứa thông tin pháp lý khác mà bạn " "muốn phân phối cùng với gói của bạn." -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "Các mẫu glob phải tuân theo đặc tả sau:" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." @@ -10203,18 +10229,18 @@ msgstr "" "Các ký tự chữ và số, dấu gạch dưới (``_``), dấu gạch nối (``-``) và dấu chấm " "(``.``) sẽ được khớp nguyên văn." -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" "Các ký tự đặc biệt: ``*``, ``?``, ``**`` và phạm vi ký tự: [] được hỗ trợ." -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "Dấu phân cách đường dẫn phải là ký tự gạch chéo (``/``)." -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." @@ -10222,15 +10248,15 @@ msgstr "" "Các mẫu liên quan đến thư mục chứa :file:`pyproject.toml` và do đó không " "được bắt đầu bằng ký tự gạch chéo." -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "Không được sử dụng chỉ báo thư mục cha (``..``)." -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "Mỗi glob phải khớp với ít nhất một tệp." -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." @@ -10238,13 +10264,13 @@ msgstr "" "Đường dẫn theo nghĩa đen là các glob hợp lệ. Bất kỳ ký tự hoặc chuỗi ký tự " "nào không được đề cập trong đặc tả này đều không hợp lệ." -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "``keywords`` (các từ khóa)" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." @@ -10252,13 +10278,13 @@ msgstr "" "Điều này sẽ giúp hộp tìm kiếm của PyPI gợi ý dự án của bạn khi mọi người tìm " "kiếm các từ khóa này." -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "``classifiers`` (bộ phân loại)" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." @@ -10266,7 +10292,7 @@ msgstr "" "Danh sách các bộ phân loại PyPI áp dụng cho dự án của bạn. Kiểm tra trong " "`full list of possibilities `_." -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10280,7 +10306,7 @@ msgstr "" "chế các phiên bản Python mà một dự án có thể được cài đặt, hãy sử dụng đối " "số :ref:`requires-python`." -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " @@ -10290,13 +10316,13 @@ msgstr "" "``Private :: Do Not Upload``. PyPI sẽ luôn từ chối các gói có trình phân " "loại bắt đầu bằng ``Private ::``." -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "``urls`` (các đường dẫn)" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." @@ -10304,7 +10330,7 @@ msgstr "" "Danh sách các URL liên quan đến dự án của bạn, được hiển thị ở thanh bên " "trái của trang dự án PyPI." -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10316,7 +10342,7 @@ msgstr "" "`_ để biết cách xử lý " "URL cụ thể của PyPI." -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" @@ -10326,7 +10352,7 @@ msgstr "" "``Website = \"https://example.com\"`` nhưng ``\"Trang web chính thức\" = " "\"https://example.com\"``." -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " @@ -10336,7 +10362,7 @@ msgstr "" "của họ khi thích hợp, vì siêu dữ liệu người dùng (như chỉ mục gói) có thể " "chuyên biệt hóa cách trình bày của họ." -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " @@ -10345,7 +10371,7 @@ msgstr "" "Ví dụ, trong siêu dữ liệu sau, ``MyHomepage`` và ``\"Download Link\"`` không " "phải là nhãn được biết đến rộng rãi, do đó chúng sẽ được hiển thị nguyên văn:" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10357,11 +10383,11 @@ msgstr "" "trình bày theo ngữ nghĩa đó (lần lượt là trang chủ của dự án và vị trí tải " "xuống bên ngoài)." -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "Các plugin nâng cao" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " @@ -10371,15 +10397,15 @@ msgstr "" "Pygments_. Để tạo một plugin như vậy, bạn cần khai báo nó trong một bảng con " "của ``[project.entry-points]`` như sau:" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "Xem :ref:`Plugin guide ` để biết thêm thông tin" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "Một ví dụ đầy đủ" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " @@ -10389,7 +10415,7 @@ msgstr "" "= \"<= 3.10\"`` ở đây. `This blog post `_ chứa " "một số thông tin liên quan đến các vấn đề có thể xảy ra." -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13442,86 +13468,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13530,116 +13552,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13649,51 +13600,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13701,7 +13612,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13709,18 +13620,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13729,7 +13640,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13740,7 +13651,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13758,7 +13669,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13767,7 +13678,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13779,26 +13690,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13806,24 +13717,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14577,11 +14492,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16413,17 +16328,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18431,7 +18352,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20776,95 +20697,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20887,10 +20818,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20941,7 +20868,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20949,24 +20876,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20976,139 +20903,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -21122,7 +21049,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -21131,7 +21058,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -21143,30 +21070,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -21175,23 +21102,23 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 #, fuzzy #| msgid "Specifications" msgid "Legacy specification" msgstr "Các thông số kỹ thuật" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -21201,26 +21128,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21229,40 +21156,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21271,11 +21198,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21305,56 +21232,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21362,38 +21289,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21401,14 +21328,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21416,7 +21343,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21424,24 +21351,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21449,7 +21376,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21460,13 +21387,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21475,7 +21402,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21490,38 +21417,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21531,7 +21458,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21539,7 +21466,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21547,21 +21474,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21569,19 +21496,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21590,20 +21517,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21611,18 +21538,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21630,7 +21557,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21638,32 +21565,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22487,7 +22414,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22526,7 +22453,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22746,14 +22673,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22787,7 +22714,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22795,45 +22722,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22841,7 +22768,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22850,23 +22777,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22875,14 +22802,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22892,7 +22819,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22900,14 +22827,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22917,45 +22844,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22964,7 +22891,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22974,17 +22901,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22992,7 +22919,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -23001,11 +22928,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -23013,11 +22940,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -23080,11 +23007,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -23093,65 +23020,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -23159,7 +23086,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -23170,7 +23097,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -23179,33 +23106,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23215,7 +23142,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23225,7 +23152,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23233,7 +23160,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23244,22 +23171,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23268,25 +23195,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23294,13 +23221,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23310,18 +23237,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23329,7 +23256,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23339,7 +23266,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23347,7 +23274,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23355,7 +23282,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23364,18 +23291,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23383,13 +23310,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23398,23 +23325,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23423,79 +23350,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23773,7 +23700,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24300,11 +24227,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24312,22 +24261,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24336,11 +24285,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24350,11 +24299,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24364,11 +24313,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24376,11 +24325,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24391,11 +24340,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24403,11 +24352,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24415,11 +24364,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24429,11 +24378,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24441,11 +24390,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24453,11 +24402,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24465,11 +24414,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24478,11 +24427,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24491,11 +24440,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24505,7 +24454,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24513,69 +24462,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24583,48 +24532,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24635,7 +24584,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24645,17 +24594,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24664,14 +24613,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24682,7 +24631,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24690,30 +24639,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24721,30 +24670,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24752,60 +24701,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24814,79 +24763,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24895,7 +24844,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24903,7 +24852,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24913,21 +24862,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24935,7 +24884,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24944,7 +24893,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24954,14 +24903,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24970,28 +24919,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -25000,27 +24949,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -25030,7 +24979,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -25040,13 +24989,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25266,7 +25217,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25274,7 +25225,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25285,15 +25236,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25301,7 +25252,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25309,7 +25260,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25321,43 +25272,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25366,29 +25317,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26754,7 +26713,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26793,11 +26752,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 diff --git a/locales/zh_Hans/LC_MESSAGES/messages.po b/locales/zh_Hans/LC_MESSAGES/messages.po index e48e3277d..28cd87624 100644 --- a/locales/zh_Hans/LC_MESSAGES/messages.po +++ b/locales/zh_Hans/LC_MESSAGES/messages.po @@ -24,7 +24,7 @@ # Eric , 2023, 2024. # Autuamn End , 2023. # Thomas , 2023, 2024. -# 大王叫我来巡山 , 2024, 2025. +# 大王叫我来巡山 , 2024, 2025, 2026. # Peter Shen , 2024. # hello_wac , 2024. # Xianpeng Shen , 2024. @@ -41,8 +41,8 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" -"PO-Revision-Date: 2025-11-22 12:58+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" +"PO-Revision-Date: 2026-03-03 14:09+0000\n" "Last-Translator: 大王叫我来巡山 " "\n" "Language-Team: Chinese (Simplified Han script) `_." @@ -3342,7 +3345,7 @@ msgstr "" "采用语义版本控制的 Python 项目应遵守 `语义版本控制 2.0.0 规范 ` 的" "第 1-8 条。" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -3358,11 +3361,11 @@ msgstr "" "版本控制,其中递增次要版本可能包含向后不兼容的 API 更改( :doc:`NumPy " "versioning policy ` )。" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 msgid "Calendar versioning" msgstr "日历化版本(Calendar versioning)" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " @@ -3371,7 +3374,7 @@ msgstr "" "语义版本控制并不适用于所有项目,例如具有基于定期时间的发布节奏和弃用流程的项" "目,这些弃用流程会在删除某个功能之前为多个版本提供警告。" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " @@ -3380,24 +3383,24 @@ msgstr "" "基于日期的版本控制,或称为`calendar versioning `_ (CalVer) ,的一个" "主要优势是,通过版本号就可以直接判断特定版本的基础功能集已经有多旧。" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" "日历版本号通常采用 *year.month* 的形式(例如,2023 年 12 月为 23.12)。" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr ":doc:`Pip ` ,标准 Python 包安装程序,使用日历版本控制。" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 msgid "Other schemes" msgstr "其他模式" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -3409,7 +3412,7 @@ msgstr "" "组成。虽然序列版本控制对于开发者来说非常容易管理,但对于最终用户来说却是最难" "追踪的,因为序列版本号几乎不提供关于 API 向后兼容性的任何信息。" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -3421,12 +3424,12 @@ msgstr "" "本控制结合,创建一个 *年.序列(year.serial)* 的编号方案,这样既能直观地传达一" "个版本的发布大致年份,同时又不承诺在该年内的具体发布频率。" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "本地版本标识符" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -3440,7 +3443,7 @@ msgstr "" "identifiers>` 的概念,可以用来标识不打算公开发布的本地开发构建,或由重新分发" "者维护的已修改版本。" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -3457,11 +3460,11 @@ msgstr "" "提交的 Git 仓库中,setuptools-scm 会生成类似 \"0.5.dev1+gd00980f\" 的版本,或" "者如果仓库有未跟踪的更改,则生成类似 \"0.5.dev1+gd00980f.d20231217\" 的版本。" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "在运行时访问版本信息" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -3472,7 +3475,7 @@ msgstr "" "环境中本地可用的所有 :term:`distribution packages ` 的" "版本信息:" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" @@ -3480,7 +3483,7 @@ msgstr "" "许多项目还选择对其顶级 :term:`import packages ` 进行版本控" "制,方法是提供包级别 ``__version__`` 属性::" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " @@ -3489,7 +3492,7 @@ msgstr "" "对于希望确保版本查询调用(例如``pip -V``)尽快运行的 CLI 应用程序来说,此技术" "特别有价值。" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -3499,7 +3502,7 @@ msgstr "" "希望确保其报告的分发包和导入包版本彼此一致的包发布者可以查看 :ref:`single-" "source-version` 讨论,了解可能的实现方法。" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -3510,7 +3513,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -3519,13 +3522,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3816,11 +3819,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -4044,9 +4047,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -4241,23 +4244,22 @@ msgstr "Python 包装管理局 (PyPA)" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" "PyPA 是一个工作组,维护 Python 打包的许多重要项目。他们维护 :doc:`pypa.io " -"` 站点,在`GitHub `_ 和`Bitbucket " -"`_ 上托管项目,并在 `distutils-sig 邮件列表 " -"`_ 和 " -"`Python Discourse 论坛 `__ 上讨论问" -"题。" +"` 站点,在`GitHub `_ 上托管项目,并在 " +"`distutils-sig 邮件列表 `_ 和 `Python Discourse 论坛 `__ 上讨论问题。" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "Python 包索引 (PyPI)" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " @@ -4266,11 +4268,11 @@ msgstr "" "`PyPI `_ 是 Python 社区的默认 :term:`Package Index` 。所有 " "Python 开发人员都可以使用和分发他们的发行版。" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "pypi.org" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " @@ -4280,26 +4282,26 @@ msgstr "" "名。它在2017年取代了旧的索引域名, ``pypi.python.org`` ,并" "由 :ref:`warehouse` 提供支持。" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "pyproject.toml" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "发行版 (Release)" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -4307,11 +4309,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "要求 (Requirement)" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -4320,11 +4322,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "需求说明符" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -4332,11 +4334,11 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "需求文件" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " @@ -4346,15 +4348,15 @@ msgstr "" "使用 :ref:`pip` 来安装。更多信息,请参阅 :ref:`pip` 文档" "的 :ref:`pip:Requirements Files` 。" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 msgid "Root License Directory" msgstr "根许可证目录" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -4366,17 +4368,17 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "setup.py" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "setup.cfg" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." @@ -4384,22 +4386,22 @@ msgstr "" ":ref:`distutils` 和 :ref:`setuptools` 的项目规范文件。另" "见 :term:`pyproject.toml`。" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "源代码归档" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "源代码分发(或“sdist”)" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -4408,21 +4410,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "系统包 (System Package)" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "以操作系统本地格式提供的软件包,例如 rpm 或 dpkg 文件。" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "版本说明符 (Version Specifier)" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -4431,11 +4433,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "虚拟环境 (Virtual Environment)" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -4445,15 +4447,15 @@ msgstr "" "一个隔离的 Python 环境,允许安装软件包以供特定的应用程序使用,而不是在系统中" "安装。更多信息,请参见章节 :ref:`Creating and using Virtual Environments`." -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "Wheel" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -4461,21 +4463,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "Wheel 项目" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "工作集 (Working Set)" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -4648,7 +4650,7 @@ msgstr "描述" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "例子" @@ -5016,11 +5018,22 @@ msgid "" msgstr "`pandas-gbq`_ 项目允许通过 `Pandas`_ 来访问查询结果。" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 +msgid "``ClickPy``" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:339 +msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 msgid "References" msgstr "参考" -#: ../source/guides/analyzing-pypi-package-downloads.rst:339 +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 msgid "" "`PyPI Download Counts deprecation email `__" @@ -5028,7 +5041,7 @@ msgstr "" "`PyPI 下载计数的废弃电子邮件 `__" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -5361,7 +5374,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5771,7 +5784,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -7539,11 +7552,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -7579,7 +7593,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -7592,29 +7607,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "高级示例" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -7626,65 +7641,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "表达式示例" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -7693,18 +7708,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -7713,11 +7728,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -7727,7 +7742,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -7736,11 +7751,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -7752,24 +7767,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -7777,17 +7792,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -7798,11 +7813,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -7810,14 +7825,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -8467,15 +8482,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" -"有关更多详细信息,请参阅 `pkg_resources 文档 `__ 。" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -9181,17 +9187,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -9199,34 +9205,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -9234,42 +9240,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -9278,18 +9296,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -9407,10 +9419,8 @@ msgstr "" "workflows/`` 目录下。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:90 -#, fuzzy -#| msgid "Let's create a ``.github/workflows/publish-to-test-pypi.yml`` file." msgid "Let's create a ``.github/workflows/publish-to-pypi.yml`` file." -msgstr "让我们创建一个 ``.github/workflows/publish-to-test-pypi.yml`` 文件。" +msgstr "让我们创建一个 ``.github/workflows/publish-to-pypi.yml`` 文件。" #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:93 msgid "" @@ -9625,11 +9635,11 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" -"`Travis CI `_ 提供了一个 Linux 和一个 macOS 环境。" +"`Travis CI `_ 提供了一个 Linux 和一个 macOS 环境。" "Linux 环境是 Ubuntu 12.04 LTS 服务器版 64 位,而在撰写本文时 macOS 的版本是 " "10.9.2。" @@ -10248,40 +10258,44 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 msgid "Building distributions" msgstr "构建发行版" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -10289,25 +10303,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "上传到 PyPI" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -10315,45 +10329,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -10364,31 +10378,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr ":ref:`Flit`," -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr ":ref:`Hatch`," -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr ":ref:`PDM`," -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr ":ref:`Pipenv`," -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr ":ref:`Poetry`," -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -10591,9 +10605,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "``name``" @@ -10626,9 +10640,9 @@ msgstr "" "``CoOl__-.-__sTuFF``." #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -10659,7 +10673,7 @@ msgid "Dependencies and requirements" msgstr "依赖项和要求" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -10689,8 +10703,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -10742,7 +10756,7 @@ msgid "About your project" msgstr "关于您的项目" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -10753,8 +10767,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "``description``" @@ -10766,8 +10780,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -10800,7 +10814,7 @@ msgid "``license`` and ``license-files``" msgstr "``许可证`` 和 ``许可证文件``" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -10874,8 +10888,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "``license``" @@ -10905,84 +10919,84 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "``license-files``" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "``keywords``" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "``classifiers``" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." @@ -10990,7 +11004,7 @@ msgstr "" "应用到你的项目的 PyPI 分类器列表。查看 `full list of possibilities " "`_ 。" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10999,26 +11013,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -11026,28 +11040,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -11055,33 +11069,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "完整示例" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -14264,86 +14278,82 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "Subdirectory name" msgstr "子目录名称" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 msgid "``licenses``" msgstr "``licenses``" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "``license_files``" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "``LICENSES``" msgstr "``LICENSES``" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr ":file:`.dist-info/licenses/` 目录" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -14352,119 +14362,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr ":file:`.dist-info/sboms/` 目录" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr ".data 目录" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "见" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -14474,51 +14410,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -14526,7 +14422,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -14534,18 +14430,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -14554,7 +14450,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -14565,7 +14461,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -14583,7 +14479,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -14592,7 +14488,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -14604,26 +14500,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -14631,24 +14527,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -15402,11 +15302,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -17241,17 +17141,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -19262,7 +19168,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "建议" @@ -21605,95 +21511,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -21716,10 +21632,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -21770,7 +21682,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -21778,24 +21690,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -21805,139 +21717,139 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "``authors``" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "``dependencies``" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "``entry-points``" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "``gui-scripts``" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "``import-names``" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 msgid "``maintainers``" msgstr "``maintainers``" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -21951,7 +21863,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -21960,7 +21872,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -21972,30 +21884,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -22004,21 +21916,21 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 msgid "Legacy specification" msgstr "旧规范" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -22028,26 +21940,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -22056,40 +21968,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -22098,11 +22010,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -22132,56 +22044,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -22189,38 +22101,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -22228,14 +22140,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -22243,7 +22155,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -22251,24 +22163,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -22276,7 +22188,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -22287,13 +22199,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -22302,7 +22214,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -22317,38 +22229,38 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 msgid "Examples:" msgstr "例子:" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -22358,7 +22270,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -22366,7 +22278,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -22374,21 +22286,21 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 msgid "Example:" msgstr "例子:" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -22396,19 +22308,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -22417,20 +22329,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -22438,18 +22350,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -22457,7 +22369,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -22465,32 +22377,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -23314,7 +23226,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -23353,7 +23265,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -23573,14 +23485,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "示例:" @@ -23614,7 +23526,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -23622,45 +23534,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -23668,7 +23580,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -23677,23 +23589,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -23702,14 +23614,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -23719,7 +23631,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -23727,14 +23639,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -23744,45 +23656,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -23791,7 +23703,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -23801,17 +23713,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -23819,7 +23731,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -23828,11 +23740,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -23840,11 +23752,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -23907,11 +23819,11 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 msgid "Version + Format Selection" msgstr "版本+格式选择" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -23920,65 +23832,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -23986,7 +23898,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -23997,7 +23909,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -24006,33 +23918,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "``$type/$subtype``" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "``$type/*``" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "``*/*``" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -24042,7 +23954,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -24052,7 +23964,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -24060,7 +23972,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -24071,22 +23983,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -24095,25 +24007,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -24121,13 +24033,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -24137,18 +24049,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -24156,7 +24068,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -24166,7 +24078,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -24174,7 +24086,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -24182,7 +24094,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -24191,18 +24103,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -24210,13 +24122,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -24225,23 +24137,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -24250,79 +24162,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -24600,7 +24512,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -25127,11 +25039,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "规范化" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -25139,22 +25073,22 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 msgid "Integer Normalization" msgstr "整数规范化" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -25163,11 +25097,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -25177,11 +25111,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -25191,11 +25125,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -25203,11 +25137,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -25218,11 +25152,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -25230,11 +25164,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -25242,11 +25176,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -25256,11 +25190,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -25268,11 +25202,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -25280,11 +25214,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "本地版本部分" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -25292,11 +25226,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -25305,11 +25239,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -25318,11 +25252,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -25332,7 +25266,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -25340,69 +25274,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -25410,48 +25344,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -25462,7 +25396,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -25472,17 +25406,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -25491,14 +25425,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -25509,7 +25443,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -25517,30 +25451,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -25548,30 +25482,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -25579,60 +25513,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -25641,79 +25575,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "版本匹配" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -25722,7 +25656,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -25730,7 +25664,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -25740,21 +25674,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -25762,7 +25696,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -25771,7 +25705,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -25781,14 +25715,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -25797,28 +25731,28 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 msgid "Version exclusion" msgstr "版本排除" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -25827,27 +25761,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -25857,7 +25791,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -25867,13 +25801,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -26095,7 +26031,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -26103,7 +26039,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -26114,15 +26050,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "远程 URL 示例::" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -26130,7 +26066,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -26138,7 +26074,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -26150,43 +26086,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -26195,29 +26131,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "Python 虚拟环境" @@ -27587,7 +27531,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -27626,11 +27570,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 @@ -27888,6 +27833,30 @@ msgid "" "the file is empty)." msgstr "" +#~ msgid "" +#~ "Refer to the `pkg_resources documentation `__ for more details." +#~ msgstr "" +#~ "有关更多详细信息,请参阅 `pkg_resources 文档 `__ 。" + +#~ msgid "See" +#~ msgstr "见" + +#~ msgid "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" +#~ "serialization-01" +#~ msgstr "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" +#~ "serialization-01" + +#~ msgid "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" +#~ msgstr "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" + #~ msgid "**Inspiration**: :ref:` pyproject-tool-table`" #~ msgstr "**灵感**: :ref:` pyproject-tool-table`" diff --git a/locales/zh_Hant/LC_MESSAGES/messages.po b/locales/zh_Hant/LC_MESSAGES/messages.po index 82bbf0bc7..dbd224879 100644 --- a/locales/zh_Hant/LC_MESSAGES/messages.po +++ b/locales/zh_Hant/LC_MESSAGES/messages.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Python Packaging User Guide\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-24 00:10+0000\n" +"POT-Creation-Date: 2026-03-05 06:32+0000\n" "PO-Revision-Date: 2025-02-24 15:37+0000\n" "Last-Translator: toto6038 \n" "Language-Team: Chinese (Traditional Han script) `_." msgstr "" -#: ../source/discussions/versioning.rst:115 +#: ../source/discussions/versioning.rst:116 msgid "" "The popular :doc:`Sphinx ` documentation generator is an " "example project that uses strict semantic versioning (:doc:`Sphinx " @@ -2832,43 +2834,43 @@ msgid "" "versioning policy `)." msgstr "" -#: ../source/discussions/versioning.rst:124 +#: ../source/discussions/versioning.rst:125 #, fuzzy msgid "Calendar versioning" msgstr "翻譯" -#: ../source/discussions/versioning.rst:126 +#: ../source/discussions/versioning.rst:127 msgid "" "Semantic versioning is not a suitable choice for all projects, such as those " "with a regular time-based release cadence and a deprecation process that " "provides warnings for a number of releases prior to removal of a feature." msgstr "" -#: ../source/discussions/versioning.rst:130 +#: ../source/discussions/versioning.rst:131 msgid "" "A key advantage of date-based versioning, or `calendar versioning " "`_ (CalVer), is that it is straightforward to tell how old the base " "feature set of a particular release is given just the version number." msgstr "" -#: ../source/discussions/versioning.rst:134 +#: ../source/discussions/versioning.rst:135 msgid "" "Calendar version numbers typically take the form *year.month* (for example, " "23.12 for December 2023)." msgstr "" -#: ../source/discussions/versioning.rst:137 +#: ../source/discussions/versioning.rst:138 msgid "" ":doc:`Pip `, the standard Python package installer, uses calendar " "versioning." msgstr "" -#: ../source/discussions/versioning.rst:142 +#: ../source/discussions/versioning.rst:143 #, fuzzy msgid "Other schemes" msgstr "翻譯" -#: ../source/discussions/versioning.rst:144 +#: ../source/discussions/versioning.rst:145 msgid "" "Serial versioning refers to the simplest possible versioning scheme, which " "consists of a single number incremented every release. While serial " @@ -2877,7 +2879,7 @@ msgid "" "regarding API backwards compatibility." msgstr "" -#: ../source/discussions/versioning.rst:150 +#: ../source/discussions/versioning.rst:151 msgid "" "Combinations of the above schemes are possible. For example, a project may " "combine date-based versioning with serial versioning to create a " @@ -2886,12 +2888,12 @@ msgid "" "the year." msgstr "" -#: ../source/discussions/versioning.rst:157 +#: ../source/discussions/versioning.rst:158 #: ../source/specifications/version-specifiers.rst:114 msgid "Local version identifiers" msgstr "" -#: ../source/discussions/versioning.rst:159 +#: ../source/discussions/versioning.rst:160 msgid "" "Public version identifiers are designed to support distribution " "via :term:`PyPI `. Python packaging tools also " @@ -2901,7 +2903,7 @@ msgid "" "redistributor." msgstr "" -#: ../source/discussions/versioning.rst:165 +#: ../source/discussions/versioning.rst:166 msgid "" "A local version identifier takes the form of a public version identifier, " "followed by \"+\" and a local version label. For example, a package with " @@ -2913,11 +2915,11 @@ msgid "" "\"0.5.dev1+gd00980f.d20231217\"." msgstr "" -#: ../source/discussions/versioning.rst:177 +#: ../source/discussions/versioning.rst:178 msgid "Accessing version information at runtime" msgstr "" -#: ../source/discussions/versioning.rst:179 +#: ../source/discussions/versioning.rst:180 msgid "" "Version information for all :term:`distribution packages ` that are locally available in the current environment can be " @@ -2925,20 +2927,20 @@ msgid "" "library's :func:`importlib.metadata.version` function::" msgstr "" -#: ../source/discussions/versioning.rst:186 +#: ../source/discussions/versioning.rst:187 msgid "" "Many projects also choose to version their top level :term:`import packages " "` by providing a package level ``__version__`` attribute::" msgstr "" -#: ../source/discussions/versioning.rst:194 +#: ../source/discussions/versioning.rst:195 msgid "" "This technique can be particularly valuable for CLI applications which want " "to ensure that version query invocations (such as ``pip -V``) run as quickly " "as possible." msgstr "" -#: ../source/discussions/versioning.rst:198 +#: ../source/discussions/versioning.rst:199 msgid "" "Package publishers wishing to ensure their reported distribution package and " "import package versions are consistent with each other can review " @@ -2946,7 +2948,7 @@ msgid "" "doing so." msgstr "" -#: ../source/discussions/versioning.rst:202 +#: ../source/discussions/versioning.rst:203 msgid "" "As import packages and modules are not *required* to publish runtime version " "information in this way (see the withdrawn proposal in :pep:`PEP 396 " @@ -2957,7 +2959,7 @@ msgid "" "missing [#fallback-to-dist-version]_." msgstr "" -#: ../source/discussions/versioning.rst:210 +#: ../source/discussions/versioning.rst:211 msgid "" "Some projects may need to publish version information for external APIs that " "aren't the version of the module itself. Such projects should define their " @@ -2966,13 +2968,13 @@ msgid "" "to access the underlying OpenSSL library version::" msgstr "" -#: ../source/discussions/versioning.rst:225 +#: ../source/discussions/versioning.rst:226 msgid "" "Some more examples of unusual version numbers are given in a `blog post " "`_ by Seth Larson." msgstr "" -#: ../source/discussions/versioning.rst:228 +#: ../source/discussions/versioning.rst:229 msgid "" "For some personal viewpoints on this issue, see these blog posts: `by Hynek " "Schlawak `_, `by Donald Stufft `_. For a humoristic take, read about ZeroVer_." msgstr "" -#: ../source/discussions/versioning.rst:234 +#: ../source/discussions/versioning.rst:235 msgid "" "A full list mapping the top level names available for import to the " "distribution packages that provide those import packages and modules may be " @@ -3255,11 +3257,11 @@ msgstr "" #: ../source/glossary.rst:17 msgid "" -"A library that takes a source tree and builds a :term:`source distribution " -"` or :term:`built distribution ` from it. The build is delegated to the backend by " -"a :term:`frontend `. All backends offer a standardized " -"interface." +"A library that takes a :term:`source tree ` and builds " +"a :term:`source distribution ` " +"or :term:`built distribution ` from it. The build is " +"delegated to the backend by a :term:`frontend `. All " +"backends offer a standardized interface." msgstr "" #: ../source/glossary.rst:24 @@ -3459,9 +3461,9 @@ msgstr "" #: ../source/glossary.rst:161 msgid "" "A string with valid SPDX license expression syntax, including one or more " -"SPDX :term:`License Identifier`\\(s), which describes a :term:`Project`'s " -"license(s) and how they inter-relate. Examples: ``GPL-3.0-or-later``, ``MIT " -"AND (Apache-2.0 OR BSD-2-Clause)``" +"SPDX :term:`License Identifier`\\(s), which describes a :term:`Distribution " +"Archive`'s license(s) and how they inter-relate. Examples: ``GPL-3.0-or-" +"later``, ``MIT AND (Apache-2.0 OR BSD-2-Clause)``" msgstr "" #: ../source/glossary.rst:169 @@ -3640,54 +3642,54 @@ msgstr "" msgid "" "PyPA is a working group that maintains many of the relevant projects in " "Python packaging. They maintain a site at :doc:`pypa.io `, host " -"projects on `GitHub `_ and `Bitbucket `_, and discuss issues on the `distutils-sig mailing list " -"`_ and " -"`the Python Discourse forum `__." +"projects on `GitHub `_, and discuss issues on the " +"`distutils-sig mailing list `_ and `the Python Discourse forum `__." msgstr "" -#: ../source/glossary.rst:296 +#: ../source/glossary.rst:295 msgid "Python Package Index (PyPI)" msgstr "" -#: ../source/glossary.rst:299 +#: ../source/glossary.rst:298 msgid "" "`PyPI `_ is the default :term:`Package Index` for the " "Python community. It is open to all Python developers to consume and " "distribute their distributions." msgstr "" -#: ../source/glossary.rst:302 +#: ../source/glossary.rst:301 msgid "pypi.org" msgstr "pypi.org" -#: ../source/glossary.rst:305 +#: ../source/glossary.rst:304 msgid "" "`pypi.org `_ is the domain name for the :term:`Python " "Package Index (PyPI)`. It replaced the legacy index domain name, " "``pypi.python.org``, in 2017. It is powered by :ref:`warehouse`." msgstr "" -#: ../source/glossary.rst:309 +#: ../source/glossary.rst:308 msgid "pyproject.toml" msgstr "pyproject.toml" -#: ../source/glossary.rst:312 +#: ../source/glossary.rst:311 msgid "" "The tool-agnostic :term:`Project` specification file. Defined in :pep:`518`." msgstr "" -#: ../source/glossary.rst:314 +#: ../source/glossary.rst:313 msgid "Release" msgstr "發行版本" -#: ../source/glossary.rst:317 +#: ../source/glossary.rst:316 msgid "" "A snapshot of a :term:`Project` at a particular point in time, denoted by a " "version identifier." msgstr "" -#: ../source/glossary.rst:320 +#: ../source/glossary.rst:319 msgid "" "Making a release may entail the publishing of multiple :term:`Distributions " "`. For example, if version 1.0 of a project was " @@ -3695,11 +3697,11 @@ msgid "" "Windows installer distribution format." msgstr "" -#: ../source/glossary.rst:325 +#: ../source/glossary.rst:324 msgid "Requirement" msgstr "要求" -#: ../source/glossary.rst:328 +#: ../source/glossary.rst:327 msgid "" "A specification for a :term:`package ` to be " "installed. :ref:`pip`, the :term:`PYPA ` " @@ -3708,11 +3710,11 @@ msgid "" "install` reference." msgstr "" -#: ../source/glossary.rst:334 +#: ../source/glossary.rst:333 msgid "Requirement Specifier" msgstr "" -#: ../source/glossary.rst:337 +#: ../source/glossary.rst:336 msgid "" "A format used by :ref:`pip` to install packages from a :term:`Package " "Index`. For an EBNF diagram of the format, see :ref:`dependency-specifiers`. " @@ -3720,28 +3722,28 @@ msgid "" "project name, and the \">=1.3\" portion is the :term:`Version Specifier`" msgstr "" -#: ../source/glossary.rst:342 +#: ../source/glossary.rst:341 msgid "Requirements File" msgstr "" -#: ../source/glossary.rst:345 +#: ../source/glossary.rst:344 msgid "" "A file containing a list of :term:`Requirements ` that can be " "installed using :ref:`pip`. For more information, see the :ref:`pip` docs " "on :ref:`pip:Requirements Files`." msgstr "" -#: ../source/glossary.rst:349 +#: ../source/glossary.rst:348 #, fuzzy #| msgid "Project name" msgid "Root License Directory" msgstr "專案名稱" -#: ../source/glossary.rst:350 +#: ../source/glossary.rst:349 msgid "License Directory" msgstr "" -#: ../source/glossary.rst:353 +#: ../source/glossary.rst:352 msgid "" "The directory under which license files are stored in a :term:`Project " "Source Tree`, :term:`Distribution Archive` or :term:`Installed Project`. For " @@ -3753,38 +3755,38 @@ msgid "" "Metadata Field` are relative to." msgstr "" -#: ../source/glossary.rst:366 +#: ../source/glossary.rst:365 #: ../source/guides/distributing-packages-using-setuptools.rst:59 msgid "setup.py" msgstr "setup.py" -#: ../source/glossary.rst:367 +#: ../source/glossary.rst:366 #: ../source/guides/distributing-packages-using-setuptools.rst:80 msgid "setup.cfg" msgstr "setup.cfg" -#: ../source/glossary.rst:370 +#: ../source/glossary.rst:369 msgid "" "The project specification files for :ref:`distutils` and :ref:`setuptools`. " "See also :term:`pyproject.toml`." msgstr "" -#: ../source/glossary.rst:373 +#: ../source/glossary.rst:372 msgid "Source Archive" msgstr "" -#: ../source/glossary.rst:376 +#: ../source/glossary.rst:375 msgid "" "An archive containing the raw source code for a :term:`Release`, prior to " "creation of a :term:`Source Distribution ` or :term:`Built Distribution`." msgstr "" -#: ../source/glossary.rst:380 +#: ../source/glossary.rst:379 msgid "Source Distribution (or \"sdist\")" msgstr "" -#: ../source/glossary.rst:383 +#: ../source/glossary.rst:382 msgid "" "A :term:`distribution ` format (usually generated " "using ``python -m build --sdist``) that provides metadata and the essential " @@ -3793,21 +3795,21 @@ msgid "" "information." msgstr "" -#: ../source/glossary.rst:389 +#: ../source/glossary.rst:388 msgid "System Package" msgstr "" -#: ../source/glossary.rst:392 +#: ../source/glossary.rst:391 msgid "" "A package provided in a format native to the operating system, e.g. an rpm " "or dpkg file." msgstr "" -#: ../source/glossary.rst:395 +#: ../source/glossary.rst:394 msgid "Version Specifier" msgstr "" -#: ../source/glossary.rst:398 +#: ../source/glossary.rst:397 msgid "" "The version component of a :term:`Requirement Specifier`. For example, the " "\">=1.3\" portion of \"foo>=1.3\". Read the :ref:`Version specifier " @@ -3816,11 +3818,11 @@ msgid "" "was implemented in :ref:`setuptools` v8.0 and :ref:`pip` v6.0." msgstr "" -#: ../source/glossary.rst:403 +#: ../source/glossary.rst:402 msgid "Virtual Environment" msgstr "" -#: ../source/glossary.rst:406 +#: ../source/glossary.rst:405 msgid "" "An isolated Python environment that allows packages to be installed for use " "by a particular application, rather than being installed system wide. For " @@ -3828,15 +3830,15 @@ msgid "" "Environments`." msgstr "" -#: ../source/glossary.rst:411 +#: ../source/glossary.rst:410 msgid "Wheel Format" msgstr "" -#: ../source/glossary.rst:412 +#: ../source/glossary.rst:411 msgid "Wheel" msgstr "" -#: ../source/glossary.rst:415 +#: ../source/glossary.rst:414 msgid "" "The standard :term:`Built Distribution` format originally introduced " "in :pep:`427` and defined by the :ref:`binary-distribution-format` " @@ -3844,21 +3846,21 @@ msgid "" "confused with its reference implementation, the :term:`Wheel Project`." msgstr "" -#: ../source/glossary.rst:422 +#: ../source/glossary.rst:421 msgid "Wheel Project" msgstr "" -#: ../source/glossary.rst:425 +#: ../source/glossary.rst:424 msgid "" "The PyPA reference implementation of the :term:`Wheel Format`; " "see :ref:`wheel`." msgstr "" -#: ../source/glossary.rst:427 +#: ../source/glossary.rst:426 msgid "Working Set" msgstr "" -#: ../source/glossary.rst:430 +#: ../source/glossary.rst:429 msgid "" "A collection of :term:`distributions ` available for " "importing. These are the distributions that are on the `sys.path` variable. " @@ -4011,7 +4013,7 @@ msgstr "描述" #: ../source/specifications/dependency-groups.rst:23 #: ../source/specifications/dependency-specifiers.rst:29 #: ../source/specifications/direct-url-data-structure.rst:242 -#: ../source/specifications/version-specifiers.rst:1072 +#: ../source/specifications/version-specifiers.rst:1088 msgid "Examples" msgstr "例子" @@ -4367,17 +4369,28 @@ msgid "" msgstr "" #: ../source/guides/analyzing-pypi-package-downloads.rst:337 -#: ../source/specifications/dependency-specifiers.rst:535 +msgid "``ClickPy``" +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:339 +msgid "" +"The `ClickPy`_ project provides a public application to visualize download " +"statistics, with free direct SQL access to the underlying open-source " +"`ClickHouse`_ database, updated daily." +msgstr "" + +#: ../source/guides/analyzing-pypi-package-downloads.rst:345 +#: ../source/specifications/dependency-specifiers.rst:537 msgid "References" msgstr "參考" -#: ../source/guides/analyzing-pypi-package-downloads.rst:339 +#: ../source/guides/analyzing-pypi-package-downloads.rst:347 msgid "" "`PyPI Download Counts deprecation email `__" msgstr "" -#: ../source/guides/analyzing-pypi-package-downloads.rst:340 +#: ../source/guides/analyzing-pypi-package-downloads.rst:348 msgid "" "`PyPI BigQuery dataset announcement email `__" @@ -4695,7 +4708,7 @@ msgstr "" msgid "" "This syntax is a bit impractical, however; as the name of the entry point we " "defined above does not match the package name, we need to state explicitly " -"which executable script to run (even though there is only on in existence)." +"which executable script to run (even though there is only one in existence)." msgstr "" #: ../source/guides/creating-command-line-tools.rst:159 @@ -5069,7 +5082,7 @@ msgid "" msgstr "" #: ../source/guides/distributing-packages-using-setuptools.rst:281 -#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:151 msgid "``scripts``" msgstr "" @@ -6784,11 +6797,12 @@ msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:9 msgid "" -":pep:`639` has specified the way to declare a project's license and paths to " -"license files and other legally required information. This document aims to " -"provide clear guidance how to migrate from the legacy to the standardized " -"way of declaring licenses. Make sure your preferred build backend " -"supports :pep:`639` before trying to apply the newer guidelines." +":pep:`639` has specified the way to declare a :term:`Distribution Archive`'s " +"license and paths to license files and other legally required information. " +"This document aims to provide clear guidance how to migrate from the legacy " +"to the standardized way of declaring licenses. Make sure your preferred " +"build backend supports :pep:`639` before trying to apply the newer " +"guidelines." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:18 @@ -6826,7 +6840,8 @@ msgid "Or, if the project used :file:`setup.cfg`, in its ``[metadata]`` table:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:56 -msgid "The output Core Metadata for the distribution packages would then be:" +msgid "" +"The output Core Metadata for the :term:`Distribution Package` would then be:" msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:63 @@ -6839,29 +6854,29 @@ msgid "" "in the Core Metadata." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:73 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:74 msgid "Advanced example" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:75 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:76 msgid "" "Suppose Setuptools were to include the licenses of the third-party projects " "that are vendored in the :file:`setuptools/_vendor/` " "and :file:`pkg_resources/_vendor/` directories; specifically:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:86 -msgid "The license expressions for these projects are:" +#: ../source/guides/licensing-examples-and-user-scenarios.rst:87 +msgid "The appropriate license expressions are:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:95 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:96 msgid "" "A comprehensive license expression covering both Setuptools proper and its " "vendored dependencies would contain these metadata, combining all the " "license expressions into one. Such an expression might be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:103 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:104 msgid "" "In addition, per the requirements of the licenses, the relevant license " "files must be included in the package. Suppose the :file:`LICENSE` file " @@ -6873,65 +6888,65 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:111 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:112 msgid "" "Specifically, we assume the license files are located at the following paths " "in the project source tree (relative to the project root " "and :file:`pyproject.toml`):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:122 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:123 msgid "Putting it all together, our :file:`pyproject.toml` would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:133 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:134 msgid "" "Or alternatively, the license files can be specified explicitly (paths will " "be interpreted as glob patterns):" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:147 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:148 msgid "If our project used :file:`setup.cfg`, we could define this in :" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:159 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:160 msgid "" "With either approach, the output Core Metadata in the distribution would be:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:170 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:171 msgid "" "In the resulting sdist, with :file:`/` as the root of the archive and " "``{VERSION}`` the version of the Setuptools release specified in the Core " "Metadata, the license files would be located at the paths:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:181 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:182 msgid "" "In the built wheel, with :file:`/` being the root of the archive and " "``{VERSION}`` as the previous, the license files would be stored at:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:191 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:192 msgid "" "Finally, in the installed project, with :file:`site-packages/` being the " "site dir and ``{VERSION}`` as the previous, the license files would be " "installed to:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:203 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:204 msgid "Expression examples" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:205 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:206 msgid "Some additional examples of valid ``License-Expression`` values:" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:220 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:221 msgid "User Scenarios" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:222 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:223 msgid "" "The following covers the range of common use cases from a user perspective, " "providing guidance for each. Do note that the following should **not** be " @@ -6940,18 +6955,18 @@ msgid "" "for their situation." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:230 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:231 msgid "I have a private package that won't be distributed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:232 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:233 msgid "" "If your package isn't shared publicly, i.e. outside your company, " "organization or household, it *usually* isn't strictly necessary to include " "a formal license, so you wouldn't necessarily have to do anything extra here." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:236 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:237 msgid "" "However, it is still a good idea to include ``LicenseRef-Proprietary`` as a " "license expression in your package configuration, and/or a copyright " @@ -6960,11 +6975,11 @@ msgid "" "tools." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:244 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:245 msgid "I just want to share my own work without legal restrictions" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:246 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:247 msgid "" "While you aren't required to include a license, if you don't, no one has " "`any permission to download, use or improve your work " @@ -6974,7 +6989,7 @@ msgid "" "want with your work (other than sue you, which you probably also don't want)." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:253 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:254 msgid "" "To apply it, just paste `the text `__ into a file " "named :file:`LICENSE.txt` at the root of your repo, and add the year and " @@ -6983,11 +6998,11 @@ msgid "" "it, or in its config file/section. You're done!" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:261 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:262 msgid "I want to distribute my project under a specific license" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:263 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:264 msgid "" "To use a particular license, simply paste its text into " "a :file:`LICENSE.txt` file at the root of your repo, if you don't have it in " @@ -6999,24 +7014,24 @@ msgid "" "`__." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:272 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:273 msgid "" "Many popular code hosts, project templates and packaging tools can add the " "license file for you, and may support the expression as well in the future." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:277 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:278 msgid "I maintain an existing package that's already licensed" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:279 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:280 msgid "" "If you already have license files and metadata in your project, you should " "only need to make a couple of tweaks to take advantage of the new " "functionality." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:283 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:284 msgid "" "In your project config file, enter your license expression under ``license`` " "(``[project]`` table in :file:`pyproject.toml`), or the equivalent for your " @@ -7024,17 +7039,17 @@ msgid "" "or ``License ::`` classifiers. Your existing ``license`` value may already " "be valid as one (e.g. ``MIT``, ``Apache-2.0 OR BSD-2-Clause``, etc); " "otherwise, check the `SPDX license list `__ for the identifier " -"that matches the license used in your project." +"that matches the license used." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:292 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:293 msgid "" "Make sure to list your license files under ``license-files`` under " "``[project]`` in :file:`pyproject.toml` or else in your tool's configuration " "file." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:296 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:297 msgid "" "See the :ref:`licensing-example-basic` for a simple but complete real-world " "demo of how this works in practice. See also the best-effort guidance on how " @@ -7045,11 +7060,11 @@ msgid "" "more information." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:306 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:307 msgid "My package includes other code under different licenses" msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:308 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:309 msgid "" "If your project includes code from others covered by different licenses, " "such as vendored dependencies or files copied from other open source " @@ -7057,14 +7072,14 @@ msgid "" "involved and the relationship between them." msgstr "" -#: ../source/guides/licensing-examples-and-user-scenarios.rst:314 +#: ../source/guides/licensing-examples-and-user-scenarios.rst:315 msgid "" -"In short, ``License-1 AND License-2`` mean that *both* licenses apply to " -"your project, or parts of it (for example, you included a file under another " -"license), and ``License-1 OR License-2`` means that *either* of the licenses " -"can be used, at the user's option (for example, you want to allow users a " -"choice of multiple licenses). You can use parenthesis (``()``) for grouping " -"to form expressions that cover even the most complex situations." +"In short, ``License-1 AND License-2`` mean that *both* licenses apply (for " +"example, you included a file under another license), and ``License-1 OR " +"License-2`` means that *either* of the licenses can be used, at the user's " +"option (for example, you want to allow users a choice of multiple licenses). " +"You can use parenthesis (``()``) for grouping to form expressions that cover " +"even the most complex situations." msgstr "" #: ../source/guides/licensing-examples-and-user-scenarios.rst:322 @@ -7693,12 +7708,6 @@ msgid "" "entry point directly." msgstr "" -#: ../source/guides/multi-version-installs.rst:41 -msgid "" -"Refer to the `pkg_resources documentation `__ for more details." -msgstr "" - #: ../source/guides/packaging-binary-extensions.rst:5 msgid "Packaging binary extensions" msgstr "" @@ -8404,17 +8413,17 @@ msgstr "" msgid "" "These two methods, that were used to create namespace packages prior " "to :pep:`420`, are now considered to be obsolete and should not be used " -"unless you need compatibility with packages already using this method. " -"Also, :doc:`pkg_resources ` has been deprecated." +"unless you need compatibility with packages already using one of these " +"methods." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:165 +#: ../source/guides/packaging-namespace-packages.rst:164 msgid "" "To migrate an existing package, all packages sharing the namespace must be " "migrated simultaneously." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:167 +#: ../source/guides/packaging-namespace-packages.rst:166 msgid "" "While native namespace packages and pkgutil-style namespace packages are " "largely compatible, pkg_resources-style namespace packages are not " @@ -8422,34 +8431,34 @@ msgid "" "in different distributions that provide packages to the same namespace." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:174 +#: ../source/guides/packaging-namespace-packages.rst:173 msgid "pkgutil-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:176 +#: ../source/guides/packaging-namespace-packages.rst:175 msgid "" "Python 2.3 introduced the :doc:`pkgutil ` module and " "the :py:func:`python:pkgutil.extend_path` function. This can be used to " "declare namespace packages that need to be compatible with both Python 2.3+ " -"and Python 3. This is the recommended approach for the highest level of " +"and Python 3. This was the recommended approach for the highest level of " "compatibility." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:181 +#: ../source/guides/packaging-namespace-packages.rst:180 msgid "" "To create a pkgutil-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:195 -#: ../source/guides/packaging-namespace-packages.rst:242 +#: ../source/guides/packaging-namespace-packages.rst:194 +#: ../source/guides/packaging-namespace-packages.rst:249 msgid "" "The :file:`__init__.py` file for the namespace package needs to contain the " "following:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:202 -#: ../source/guides/packaging-namespace-packages.rst:249 +#: ../source/guides/packaging-namespace-packages.rst:201 +#: ../source/guides/packaging-namespace-packages.rst:256 msgid "" "**Every** distribution that uses the namespace package must include such " "an :file:`__init__.py`. If any distribution does not, it will cause the " @@ -8457,42 +8466,54 @@ msgid "" "Any additional code in :file:`__init__.py` will be inaccessible." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:207 +#: ../source/guides/packaging-namespace-packages.rst:206 msgid "" "A complete working example of two pkgutil-style namespace packages can be " "found in the `pkgutil namespace example project`_." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:217 +#: ../source/guides/packaging-namespace-packages.rst:216 msgid "pkg_resources-style namespace packages" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:219 +#: ../source/guides/packaging-namespace-packages.rst:220 msgid "" -":doc:`Setuptools ` provides the " -"`pkg_resources.declare_namespace`_ function and the ``namespace_packages`` " -"argument to :func:`~setuptools.setup`. Together these can be used to declare " -"namespace packages. While this approach is no longer recommended, it is " -"widely present in most existing namespace packages. If you are creating a " -"new distribution within an existing namespace package that uses this method " -"then it's recommended to continue using this as the different methods are " -"not cross-compatible and it's not advisable to try to migrate an existing " -"package." +"The information in this section is obsolete and is no longer functional (as " +"of Setuptools 82.0.0). It is only retained for historical reference." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:223 +msgid "" +"``pkg_resources`` has been deprecated and was fully removed in Setuptools " +"82.0.0." +msgstr "" + +#: ../source/guides/packaging-namespace-packages.rst:225 +msgid "" +":doc:`Setuptools ` previously provided the " +"``pkg_resources.declare_namespace`` function and the ``namespace_packages`` " +"argument to :func:`~setuptools.setup`. Together these could be used to " +"declare namespace packages. While this approach is no longer supported, it " +"may still be encountered in environments using older ``setuptools`` " +"versions. If you are creating a new distribution within an existing " +"namespace package that uses this method then it's recommended to continue " +"using this as the different methods are not cross-compatible and it's not " +"advisable to try to migrate an existing package." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:228 +#: ../source/guides/packaging-namespace-packages.rst:235 msgid "" "To create a pkg_resources-style namespace package, you need to provide " "an :file:`__init__.py` file for the namespace package:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:254 +#: ../source/guides/packaging-namespace-packages.rst:261 msgid "" "Some older recommendations advise the following in the namespace " "package :file:`__init__.py`:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:264 +#: ../source/guides/packaging-namespace-packages.rst:271 msgid "" "The idea behind this was that in the rare case that setuptools isn't " "available packages would fall-back to the pkgutil-style packages. This isn't " @@ -8501,18 +8522,12 @@ msgid "" "package should just explicitly depend on setuptools via ``install_requires``." msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:271 +#: ../source/guides/packaging-namespace-packages.rst:278 msgid "" "Finally, every distribution must provide the ``namespace_packages`` argument " "to :func:`~setuptools.setup` in :file:`setup.py`. For example:" msgstr "" -#: ../source/guides/packaging-namespace-packages.rst:285 -msgid "" -"A complete working example of two pkg_resources-style namespace packages can " -"be found in the `pkg_resources namespace example project`_." -msgstr "" - #: ../source/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows.rst:5 msgid "" "Publishing package distribution releases using GitHub Actions CI/CD workflows" @@ -8844,7 +8859,7 @@ msgstr "" #: ../source/guides/supporting-multiple-python-versions.rst:65 msgid "" -"`Travis CI `_ provides both a Linux and a macOS " +"`Travis CI `_ provides both a Linux and a macOS " "environment. The Linux environment is Ubuntu 12.04 LTS Server Edition 64 bit " "while the macOS is 10.9.2 at the time of writing." msgstr "" @@ -9462,42 +9477,46 @@ msgid "" "available from setuptools." msgstr "" -#: ../source/guides/tool-recommendations.rst:112 +#: ../source/guides/tool-recommendations.rst:115 +msgid "Build backends for extension modules" +msgstr "" + +#: ../source/guides/tool-recommendations.rst:117 msgid "" "For packages with :term:`extension modules `, it is best " "to use a build system with dedicated support for the language the extension " "is written in, for example:" msgstr "" -#: ../source/guides/tool-recommendations.rst:116 +#: ../source/guides/tool-recommendations.rst:121 msgid "" ":ref:`setuptools` -- natively supports C and C++ (with third-party plugins " "for Go and Rust)," msgstr "" -#: ../source/guides/tool-recommendations.rst:117 +#: ../source/guides/tool-recommendations.rst:122 msgid "" ":ref:`meson-python` -- C, C++, Fortran, Rust, and other languages supported " "by Meson," msgstr "" -#: ../source/guides/tool-recommendations.rst:118 +#: ../source/guides/tool-recommendations.rst:123 msgid "" ":ref:`scikit-build-core` -- C, C++, Fortran, and other languages supported " "by CMake," msgstr "" -#: ../source/guides/tool-recommendations.rst:119 +#: ../source/guides/tool-recommendations.rst:124 msgid ":ref:`maturin` -- Rust, via Cargo." msgstr "" -#: ../source/guides/tool-recommendations.rst:123 +#: ../source/guides/tool-recommendations.rst:128 #, fuzzy #| msgid "Reviewing new contributions" msgid "Building distributions" msgstr "審查新的貢獻" -#: ../source/guides/tool-recommendations.rst:125 +#: ../source/guides/tool-recommendations.rst:130 msgid "" "The standard tool to build :term:`source distributions ` and :term:`wheels ` for uploading to PyPI " @@ -9505,25 +9524,25 @@ msgid "" "` in :file:`pyproject.toml`." msgstr "" -#: ../source/guides/tool-recommendations.rst:130 +#: ../source/guides/tool-recommendations.rst:135 msgid "" "Do **not** use ``python setup.py sdist`` and ``python setup.py bdist_wheel`` " "for this task. All direct invocations of :file:`setup.py` " "are :ref:`deprecated `." msgstr "" -#: ../source/guides/tool-recommendations.rst:134 +#: ../source/guides/tool-recommendations.rst:139 msgid "" "If you have :term:`extension modules ` and want to " "distribute wheels for multiple platforms, use :ref:`cibuildwheel` as part of " "your CI setup to build distributable wheels." msgstr "" -#: ../source/guides/tool-recommendations.rst:140 +#: ../source/guides/tool-recommendations.rst:145 msgid "Uploading to PyPI" msgstr "" -#: ../source/guides/tool-recommendations.rst:142 +#: ../source/guides/tool-recommendations.rst:147 msgid "" "For projects hosted on or published via supported CI/CD platforms, it is " "recommended to use the :ref:`Trusted Publishing `, which " @@ -9531,45 +9550,45 @@ msgid "" "without a manually configured API token." msgstr "" -#: ../source/guides/tool-recommendations.rst:147 +#: ../source/guides/tool-recommendations.rst:152 msgid "" "As of November 2024, PyPI supports the following platforms as Trusted " "Publishing providers:" msgstr "" -#: ../source/guides/tool-recommendations.rst:150 +#: ../source/guides/tool-recommendations.rst:155 msgid "GitHub Actions (on ``https://github.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:151 +#: ../source/guides/tool-recommendations.rst:156 msgid "GitLab CI/CD (on ``https://gitlab.com``)" msgstr "" -#: ../source/guides/tool-recommendations.rst:152 +#: ../source/guides/tool-recommendations.rst:157 msgid "ActiveState" msgstr "" -#: ../source/guides/tool-recommendations.rst:153 +#: ../source/guides/tool-recommendations.rst:158 msgid "Google Cloud" msgstr "" -#: ../source/guides/tool-recommendations.rst:155 +#: ../source/guides/tool-recommendations.rst:160 msgid "" "The other available method is to upload the package manually " "using :ref:`twine`." msgstr "" -#: ../source/guides/tool-recommendations.rst:159 +#: ../source/guides/tool-recommendations.rst:164 msgid "" "**Never** use ``python setup.py upload`` for this task. In addition to " "being :ref:`deprecated `, it is insecure." msgstr "" -#: ../source/guides/tool-recommendations.rst:164 +#: ../source/guides/tool-recommendations.rst:169 msgid "Workflow tools" msgstr "" -#: ../source/guides/tool-recommendations.rst:166 +#: ../source/guides/tool-recommendations.rst:171 msgid "" "These tools are environment managers that automatically manage virtual " "environments for a project. They also act as \"task runners\", allowing you " @@ -9580,31 +9599,31 @@ msgid "" "alphabetical order:" msgstr "" -#: ../source/guides/tool-recommendations.rst:174 +#: ../source/guides/tool-recommendations.rst:179 msgid ":ref:`Flit`," msgstr ":ref:`Flit`," -#: ../source/guides/tool-recommendations.rst:175 +#: ../source/guides/tool-recommendations.rst:180 msgid ":ref:`Hatch`," msgstr ":ref:`Hatch`," -#: ../source/guides/tool-recommendations.rst:176 +#: ../source/guides/tool-recommendations.rst:181 msgid ":doc:`nox `," msgstr "" -#: ../source/guides/tool-recommendations.rst:177 +#: ../source/guides/tool-recommendations.rst:182 msgid ":ref:`PDM`," msgstr ":ref:`PDM`," -#: ../source/guides/tool-recommendations.rst:178 +#: ../source/guides/tool-recommendations.rst:183 msgid ":ref:`Pipenv`," msgstr ":ref:`Pipenv`," -#: ../source/guides/tool-recommendations.rst:179 +#: ../source/guides/tool-recommendations.rst:184 msgid ":ref:`Poetry`," msgstr ":ref:`Poetry`," -#: ../source/guides/tool-recommendations.rst:180 +#: ../source/guides/tool-recommendations.rst:185 msgid ":doc:`tox `." msgstr "" @@ -9805,9 +9824,9 @@ msgid "Basic information" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:93 -#: ../source/specifications/pyproject-toml.rst:124 -#: ../source/specifications/pyproject-toml.rst:149 -#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:147 +#: ../source/specifications/pyproject-toml.rst:159 msgid "``name``" msgstr "" @@ -9834,9 +9853,9 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:115 -#: ../source/specifications/pyproject-toml.rst:129 -#: ../source/specifications/pyproject-toml.rst:155 -#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:127 +#: ../source/specifications/pyproject-toml.rst:153 +#: ../source/specifications/pyproject-toml.rst:174 msgid "``version``" msgstr "" @@ -9869,7 +9888,7 @@ msgid "Dependencies and requirements" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:455 +#: ../source/specifications/pyproject-toml.rst:453 msgid "``dependencies``/``optional-dependencies``" msgstr "" @@ -9899,8 +9918,8 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:183 #: ../source/specifications/pylock-toml.rst:95 -#: ../source/specifications/pyproject-toml.rst:152 -#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:243 msgid "``requires-python``" msgstr "" @@ -9952,7 +9971,7 @@ msgid "About your project" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:233 -#: ../source/specifications/pyproject-toml.rst:332 +#: ../source/specifications/pyproject-toml.rst:330 msgid "``authors``/``maintainers``" msgstr "" @@ -9963,8 +9982,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:255 -#: ../source/specifications/pyproject-toml.rst:139 -#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:137 +#: ../source/specifications/pyproject-toml.rst:189 msgid "``description``" msgstr "" @@ -9976,8 +9995,8 @@ msgid "" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:268 -#: ../source/specifications/pyproject-toml.rst:151 -#: ../source/specifications/pyproject-toml.rst:204 +#: ../source/specifications/pyproject-toml.rst:149 +#: ../source/specifications/pyproject-toml.rst:202 msgid "``readme``" msgstr "" @@ -10010,7 +10029,7 @@ msgid "``license`` and ``license-files``" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:299 -msgid "As per :pep:`639` licenses should be declared with two fields:" +msgid "As per :pep:`639`, licenses should be declared with two fields:" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:301 @@ -10088,8 +10107,8 @@ msgid "0.7.19" msgstr "" #: ../source/guides/writing-pyproject-toml.rst:329 -#: ../source/specifications/pyproject-toml.rst:146 -#: ../source/specifications/pyproject-toml.rst:257 +#: ../source/specifications/pyproject-toml.rst:144 +#: ../source/specifications/pyproject-toml.rst:255 msgid "``license``" msgstr "" @@ -10119,90 +10138,90 @@ msgstr "" #: ../source/guides/writing-pyproject-toml.rst:353 msgid "" -"If your project is licensed with a license that doesn't have an existing " -"SPDX identifier, you can create a custom one in format ``LicenseRef-" -"[idstring]``. The custom identifiers must follow the SPDX specification, " -"`clause 10.1 `_ of the version 2.2 or any later compatible " -"one." +"If your :term:`Distribution Archive` is licensed with a license that doesn't " +"have an existing SPDX identifier, you can create a custom one in format " +"``LicenseRef-[idstring]``. The custom identifiers must follow the SPDX " +"specification, `clause 10.1 `_ of the version 2.2 or any " +"later compatible one." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:367 -#: ../source/specifications/pyproject-toml.rst:147 -#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/guides/writing-pyproject-toml.rst:368 +#: ../source/specifications/pyproject-toml.rst:145 +#: ../source/specifications/pyproject-toml.rst:291 msgid "``license-files``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:369 +#: ../source/guides/writing-pyproject-toml.rst:370 msgid "" "This is a list of license files and files containing other legal information " "you want to distribute with your package." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:377 +#: ../source/guides/writing-pyproject-toml.rst:378 msgid "The glob patterns must follow the specification:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:379 +#: ../source/guides/writing-pyproject-toml.rst:380 msgid "" "Alphanumeric characters, underscores (``_``), hyphens (``-``) and dots " "(``.``) will be matched verbatim." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:381 +#: ../source/guides/writing-pyproject-toml.rst:382 msgid "" "Special characters: ``*``, ``?``, ``**`` and character ranges: [] are " "supported." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:382 +#: ../source/guides/writing-pyproject-toml.rst:383 msgid "Path delimiters must be the forward slash character (``/``)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:383 +#: ../source/guides/writing-pyproject-toml.rst:384 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`, " "and thus may not start with a slash character." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:385 +#: ../source/guides/writing-pyproject-toml.rst:386 msgid "Parent directory indicators (``..``) must not be used." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:386 +#: ../source/guides/writing-pyproject-toml.rst:387 msgid "Each glob must match at least one file." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:389 msgid "" "Literal paths are valid globs. Any characters or character sequences not " "covered by this specification are invalid." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:394 -#: ../source/specifications/pyproject-toml.rst:145 -#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/guides/writing-pyproject-toml.rst:395 +#: ../source/specifications/pyproject-toml.rst:143 +#: ../source/specifications/pyproject-toml.rst:374 msgid "``keywords``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:396 +#: ../source/guides/writing-pyproject-toml.rst:397 msgid "" "This will help PyPI's search box to suggest your project when people search " "for these keywords." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:408 -#: ../source/specifications/pyproject-toml.rst:137 -#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/guides/writing-pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:135 +#: ../source/specifications/pyproject-toml.rst:386 msgid "``classifiers``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:410 +#: ../source/guides/writing-pyproject-toml.rst:411 msgid "" "A list of PyPI classifiers that apply to your project. Check the `full list " "of possibilities `_." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:434 +#: ../source/guides/writing-pyproject-toml.rst:436 msgid "" "Although the list of classifiers is often used to declare what Python " "versions a project supports, this information is only used for searching and " @@ -10211,26 +10230,26 @@ msgid "" "python` argument." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:439 +#: ../source/guides/writing-pyproject-toml.rst:441 msgid "" "To prevent a package from being uploaded to PyPI, use the special " "``Private :: Do Not Upload`` classifier. PyPI will always reject packages " "with classifiers beginning with ``Private ::``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:446 -#: ../source/specifications/pyproject-toml.rst:154 -#: ../source/specifications/pyproject-toml.rst:406 +#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/specifications/pyproject-toml.rst:152 +#: ../source/specifications/pyproject-toml.rst:404 msgid "``urls``" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:448 +#: ../source/guides/writing-pyproject-toml.rst:450 msgid "" "A list of URLs associated with your project, displayed on the left sidebar " "of your PyPI project page." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:453 +#: ../source/guides/writing-pyproject-toml.rst:455 msgid "" "See :ref:`well-known-labels` for a listing of labels that PyPI and other " "packaging tools are specifically aware of, and `PyPI's project metadata docs " @@ -10238,28 +10257,28 @@ msgid "" "URL processing." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:467 +#: ../source/guides/writing-pyproject-toml.rst:469 msgid "" "Note that if the label contains spaces, it needs to be quoted, e.g., " "``Website = \"https://example.com\"`` but ``\"Official Website\" = \"https://" "example.com\"``." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:471 +#: ../source/guides/writing-pyproject-toml.rst:473 msgid "" "Users are advised to use :ref:`well-known-labels` for their project URLs " "where appropriate, since consumers of metadata (like package indices) can " "specialize their presentation." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:475 +#: ../source/guides/writing-pyproject-toml.rst:477 msgid "" "For example in the following metadata, neither ``MyHomepage`` nor " "``\"Download Link\"`` is a well-known label, so they will be rendered " "verbatim:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:485 +#: ../source/guides/writing-pyproject-toml.rst:487 msgid "" "Whereas in this metadata ``HomePage`` and ``DOWNLOAD`` both have well-known " "equivalents (``homepage`` and ``download``), and can be presented with those " @@ -10267,33 +10286,33 @@ msgid "" "location, respectively)." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:497 +#: ../source/guides/writing-pyproject-toml.rst:499 msgid "Advanced plugins" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:499 +#: ../source/guides/writing-pyproject-toml.rst:501 msgid "" "Some packages can be extended through plugins. Examples include Pytest_ and " "Pygments_. To create such a plugin, you need to declare it in a subtable of " "``[project.entry-points]`` like this:" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:508 +#: ../source/guides/writing-pyproject-toml.rst:510 msgid "See the :ref:`Plugin guide ` for more information." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:513 +#: ../source/guides/writing-pyproject-toml.rst:515 msgid "A full example" msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:576 +#: ../source/guides/writing-pyproject-toml.rst:578 msgid "" "Think twice before applying an upper bound like ``requires-python = \"<= " "3.10\"`` here. `This blog post `_ contains some " "information regarding possible problems." msgstr "" -#: ../source/guides/writing-pyproject-toml.rst:580 +#: ../source/guides/writing-pyproject-toml.rst:582 msgid "" "flit-core `does not yet `_ support WITH in SPDX license " "expressions." @@ -13345,92 +13364,88 @@ msgid "" "RECORD is a list of (almost) all the files in the wheel and their secure " "hashes. Unlike PEP 376, every file except RECORD, which cannot contain a " "hash of itself, must include its hash. The hash algorithm must be sha256 or " -"better; specifically, md5 and sha1 are not permitted, as signed wheel files " -"rely on the strong hashes in RECORD to validate the integrity of the archive." +"better; specifically, md5 and sha1 are not permitted." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:245 +#: ../source/specifications/binary-distribution-format.rst:244 msgid "PEP 376's INSTALLER and REQUESTED are not included in the archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:246 -msgid "" -"RECORD.jws is used for digital signatures. It is not mentioned in RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:248 +#: ../source/specifications/binary-distribution-format.rst:245 msgid "" -"RECORD.p7s is allowed as a courtesy to anyone who would prefer to use S/MIME " -"signatures to secure their wheel files. It is not mentioned in RECORD." +"RECORD.jws and RECORD.p7s are deprecated. Where they are still used, " +"neither RECORD.jws nor RECORD.p7s are mentioned in RECORD. Build backends " +"and other tools must not add them to wheels anymore, installers should be " +"aware that these files may still be part of some wheels." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:251 +#: ../source/specifications/binary-distribution-format.rst:250 msgid "" "During extraction, wheel installers verify all the hashes in RECORD against " -"the file contents. Apart from RECORD and its signatures, installation will " -"fail if any file in the archive is not both mentioned and correctly hashed " -"in RECORD." +"the file contents. Apart from RECORD, RECORD.jws and RECORD.p7s, " +"installation will fail if any file in the archive is not both mentioned and " +"correctly hashed in RECORD." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:257 +#: ../source/specifications/binary-distribution-format.rst:256 msgid "Subdirectories in :file:`.dist-info/`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:259 +#: ../source/specifications/binary-distribution-format.rst:258 msgid "" "Subdirectories under :file:`.dist-info/` are reserved for future use. The " "following subdirectory names under :file:`.dist-info/` are reserved for " "specific usage:" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 #, fuzzy #| msgid "Project name" msgid "Subdirectory name" msgstr "專案名稱" -#: ../source/specifications/binary-distribution-format.rst:263 +#: ../source/specifications/binary-distribution-format.rst:262 msgid "PEP / Standard" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:265 +#: ../source/specifications/binary-distribution-format.rst:264 #, fuzzy #| msgid "License" msgid "``licenses``" msgstr "許可證" +#: ../source/specifications/binary-distribution-format.rst:264 #: ../source/specifications/binary-distribution-format.rst:265 -#: ../source/specifications/binary-distribution-format.rst:266 msgid ":pep:`639`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:266 +#: ../source/specifications/binary-distribution-format.rst:265 msgid "``license_files``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 #, fuzzy #| msgid "``LIB``" msgid "``LICENSES``" msgstr "``LIB``" -#: ../source/specifications/binary-distribution-format.rst:267 +#: ../source/specifications/binary-distribution-format.rst:266 msgid "`REUSE licensing framework `__" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid "``sboms``" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:268 +#: ../source/specifications/binary-distribution-format.rst:267 msgid ":pep:`770`" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:272 +#: ../source/specifications/binary-distribution-format.rst:271 msgid "The :file:`.dist-info/licenses/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:274 +#: ../source/specifications/binary-distribution-format.rst:273 msgid "" "If the metadata version is 2.4 or greater and one or more ``License-File`` " "fields is specified, the :file:`.dist-info/` directory MUST contain " @@ -13439,118 +13454,45 @@ msgid "" "paths relative to the :file:`licenses/` directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:281 +#: ../source/specifications/binary-distribution-format.rst:280 msgid "The :file:`.dist-info/sboms/` directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:283 +#: ../source/specifications/binary-distribution-format.rst:282 msgid "" "All files contained within the :file:`.dist-info/sboms/` directory MUST be " "Software Bill-of-Materials (SBOM) files that describe software contained " "within the distribution archive." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:288 +#: ../source/specifications/binary-distribution-format.rst:287 msgid "The .data directory" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:290 +#: ../source/specifications/binary-distribution-format.rst:289 msgid "" "Any file that is not normally installed inside site-packages goes into " "the .data directory, named as the .dist-info directory but with the .data/ " "extension::" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:298 +#: ../source/specifications/binary-distribution-format.rst:297 msgid "" "The .data directory contains subdirectories with the scripts, headers, " "documentation and so forth from the distribution. During installation the " "contents of these subdirectories are moved onto their destination paths." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:304 -msgid "Signed wheel files" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:306 -msgid "" -"Wheel files include an extended RECORD that enables digital signatures. PEP " -"376's RECORD is altered to include a secure hash " -"``digestname=urlsafe_b64encode_nopad(digest)`` (urlsafe base64 encoding with " -"no trailing = characters) as the second column instead of an md5sum. All " -"possible entries are hashed, including any generated files such as .pyc " -"files, but not RECORD which cannot contain its own hash. For example::" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:317 -msgid "" -"The signature file(s) RECORD.jws and RECORD.p7s are not mentioned in RECORD " -"at all since they can only be added after RECORD is generated. Every other " -"file in the archive must have a correct hash in RECORD or the installation " -"will fail." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:322 -msgid "" -"If JSON web signatures are used, one or more JSON Web Signature JSON " -"Serialization (JWS-JS) signatures is stored in a file RECORD.jws adjacent to " -"RECORD. JWS is used to sign RECORD by including the SHA-256 hash of RECORD " -"as the signature's JSON payload:" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:331 -msgid "(The hash value is the same format used in RECORD.)" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:333 -msgid "" -"If RECORD.p7s is used, it must contain a detached S/MIME format signature of " -"RECORD." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:336 -msgid "" -"A wheel installer is not required to understand digital signatures but MUST " -"verify the hashes in RECORD against the extracted file contents. When the " -"installer checks file hashes against RECORD, a separate signature checker " -"only needs to establish that RECORD matches the signature." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:341 -msgid "See" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:343 -msgid "https://datatracker.ietf.org/doc/html/rfc7515" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:344 -#, fuzzy -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" -"serialization-01" -msgstr "http://self-issued.info/docs/draft-jones-jose-json-private-key.html" - -#: ../source/specifications/binary-distribution-format.rst:345 -msgid "https://datatracker.ietf.org/doc/html/rfc7517" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:346 -#, fuzzy -msgid "" -"https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" -msgstr "http://self-issued.info/docs/draft-jones-jose-json-private-key.html" - -#: ../source/specifications/binary-distribution-format.rst:350 +#: ../source/specifications/binary-distribution-format.rst:303 #: ../source/specifications/platform-compatibility-tags.rst:376 msgid "FAQ" msgstr "常見問題" -#: ../source/specifications/binary-distribution-format.rst:354 +#: ../source/specifications/binary-distribution-format.rst:307 msgid "Wheel defines a .data directory. Should I put all my data there?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:356 +#: ../source/specifications/binary-distribution-format.rst:309 msgid "" "This specification does not have an opinion on how you should organize your " "code. The .data directory is just a place for any files that are not " @@ -13560,51 +13502,11 @@ msgid "" "directory." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:365 -msgid "Why does wheel include attached signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:367 -msgid "" -"Attached signatures are more convenient than detached signatures because " -"they travel with the archive. Since only the individual files are signed, " -"the archive can be recompressed without invalidating the signature or " -"individual files can be verified without having to download the whole " -"archive." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:375 -msgid "Why does wheel allow JWS signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:377 -msgid "" -"The JOSE specifications of which JWS is a part are designed to be easy to " -"implement, a feature that is also one of wheel's primary design goals. JWS " -"yields a useful, concise pure-Python implementation." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:383 -msgid "Why does wheel also allow S/MIME signatures?" -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:385 -msgid "" -"S/MIME signatures are allowed for users who need or want to use existing " -"public key infrastructure with wheel." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:388 -msgid "" -"Signed packages are only a basic building block in a secure package update " -"system. Wheel only provides the building block." -msgstr "" - -#: ../source/specifications/binary-distribution-format.rst:393 +#: ../source/specifications/binary-distribution-format.rst:318 msgid "What's the deal with \"purelib\" vs. \"platlib\"?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:395 +#: ../source/specifications/binary-distribution-format.rst:320 msgid "" "Wheel preserves the \"purelib\" vs. \"platlib\" distinction, which is " "significant on some platforms. For example, Fedora installs pure Python " @@ -13612,7 +13514,7 @@ msgid "" "packages to '/usr/lib64/pythonX.Y/site-packages'." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:400 +#: ../source/specifications/binary-distribution-format.rst:325 msgid "" "A wheel with \"Root-Is-Purelib: false\" with all its files in ``{name}-" "{version}.data/purelib`` is equivalent to a wheel with \"Root-Is-Purelib: " @@ -13620,18 +13522,18 @@ msgid "" "both the \"purelib\" and \"platlib\" categories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:405 +#: ../source/specifications/binary-distribution-format.rst:330 msgid "" "In practice a wheel should have only one of \"purelib\" or \"platlib\" " "depending on whether it is pure Python or not and those files should be at " "the root with the appropriate setting given for \"Root-is-purelib\"." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:413 +#: ../source/specifications/binary-distribution-format.rst:338 msgid "Is it possible to import Python code directly from a wheel file?" msgstr "" -#: ../source/specifications/binary-distribution-format.rst:415 +#: ../source/specifications/binary-distribution-format.rst:340 msgid "" "Technically, due to the combination of supporting installation via simple " "extraction and using an archive format that is compatible with " @@ -13640,7 +13542,7 @@ msgid "" "format design, actually relying on it is generally discouraged." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:421 +#: ../source/specifications/binary-distribution-format.rst:346 msgid "" "Firstly, wheel *is* designed primarily as a distribution format, so skipping " "the installation step also means deliberately avoiding any reliance on " @@ -13651,7 +13553,7 @@ msgid "" "extensions by publishing header files in the appropriate place)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:430 +#: ../source/specifications/binary-distribution-format.rst:355 msgid "" "Secondly, while some Python software is written to support running directly " "from a zip archive, it is still common for code to be written assuming it " @@ -13669,7 +13571,7 @@ msgid "" "components may still require the availability of an actual on-disk file." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:447 +#: ../source/specifications/binary-distribution-format.rst:372 msgid "" "Like metaclasses, monkeypatching and metapath importers, if you're not " "already sure you need to take advantage of this feature, you almost " @@ -13678,7 +13580,7 @@ msgid "" "package before accepting it as a genuine bug." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:455 +#: ../source/specifications/binary-distribution-format.rst:380 #: ../source/specifications/core-metadata.rst:1035 #: ../source/specifications/dependency-groups.rst:250 #: ../source/specifications/dependency-specifiers.rst:516 @@ -13690,26 +13592,26 @@ msgstr "" #: ../source/specifications/name-normalization.rst:50 #: ../source/specifications/platform-compatibility-tags.rst:440 #: ../source/specifications/pylock-toml.rst:826 -#: ../source/specifications/pyproject-toml.rst:634 +#: ../source/specifications/pyproject-toml.rst:632 #: ../source/specifications/recording-installed-packages.rst:278 -#: ../source/specifications/simple-repository-api.rst:972 +#: ../source/specifications/simple-repository-api.rst:974 #: ../source/specifications/source-distribution-format.rst:153 -#: ../source/specifications/version-specifiers.rst:1269 +#: ../source/specifications/version-specifiers.rst:1285 #: ../source/specifications/virtual-environments.rst:54 msgid "History" msgstr "歷史" -#: ../source/specifications/binary-distribution-format.rst:457 +#: ../source/specifications/binary-distribution-format.rst:382 msgid "February 2013: This specification was approved through :pep:`427`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:458 +#: ../source/specifications/binary-distribution-format.rst:383 msgid "" "February 2021: The rules on escaping in wheel filenames were revised, to " "bring them into line with what popular tools actually do." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:460 +#: ../source/specifications/binary-distribution-format.rst:385 msgid "" "December 2024: Clarified that the ``scripts`` folder should only contain " "regular files (the expected behaviour of consuming tools when encountering " @@ -13717,24 +13619,28 @@ msgid "" "may vary between tools)." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:464 +#: ../source/specifications/binary-distribution-format.rst:389 #: ../source/specifications/recording-installed-packages.rst:288 msgid "" "December 2024: The :file:`.dist-info/licenses/` directory was specified " "through :pep:`639`." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:466 +#: ../source/specifications/binary-distribution-format.rst:391 msgid "" "January 2025: Clarified that name and version needs to be normalized for " "``.dist-info`` and ``.data`` directories." msgstr "" -#: ../source/specifications/binary-distribution-format.rst:471 +#: ../source/specifications/binary-distribution-format.rst:393 +msgid "January 2026: Deprecate RECORD.jws and RECORD.p7s :pep:`815`." +msgstr "" + +#: ../source/specifications/binary-distribution-format.rst:397 msgid "Appendix" msgstr "附錄" -#: ../source/specifications/binary-distribution-format.rst:473 +#: ../source/specifications/binary-distribution-format.rst:399 msgid "Example urlsafe-base64-nopad implementation::" msgstr "" @@ -14513,11 +14419,11 @@ msgstr "" #: ../source/specifications/core-metadata.rst:55 msgid "" -"Automated tools consuming metadata SHOULD warn if ``metadata_version`` is " -"greater than the highest version they support, and MUST fail if " -"``metadata_version`` has a greater major version than the highest version " -"they support (as described in the :ref:`Version specifier specification " -"`, the major version is the value before the first dot)." +"Automated tools consuming metadata SHOULD warn if ``metadata-version`` is " +"greater than the highest version they support, and MUST fail if ``metadata-" +"version`` has a greater major version than the highest version they support " +"(as described in the :ref:`Version specifier specification `, the major version is the value before the first dot)." msgstr "" #: ../source/specifications/core-metadata.rst:62 @@ -16359,17 +16265,23 @@ msgid "" "incorrectly permitting trailing newlines)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:537 +#: ../source/specifications/dependency-specifiers.rst:532 +msgid "" +"December 2025: Ensure ``===`` before ``==`` in grammar, to allow arbitrary " +"equality comparisons to be parsed." +msgstr "" + +#: ../source/specifications/dependency-specifiers.rst:539 msgid "" "pip, the recommended installer for Python packages (http://" "pip.readthedocs.org/en/stable/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:540 +#: ../source/specifications/dependency-specifiers.rst:542 msgid "The parsley PEG library. (https://pypi.python.org/pypi/parsley/)" msgstr "" -#: ../source/specifications/dependency-specifiers.rst:543 +#: ../source/specifications/dependency-specifiers.rst:545 msgid "" "Future Python versions might be problematic with the definition of " "Environment Marker Variable ``python_version`` (https://github.com/python/" @@ -18384,7 +18296,7 @@ msgid "" msgstr "" #: ../source/specifications/inline-script-metadata.rst:205 -#: ../source/specifications/simple-repository-api.rst:914 +#: ../source/specifications/simple-repository-api.rst:916 msgid "Recommendations" msgstr "" @@ -20755,95 +20667,105 @@ msgid "" msgstr "" #: ../source/specifications/pypirc.rst:13 +msgid "The :file:`.pypirc` file **SHOULD** be UTF-8 encoded." +msgstr "" + +#: ../source/specifications/pypirc.rst:15 +msgid "" +"Tools that read or write :file:`.pypirc` files may not function correctly if " +"another character encoding is used." +msgstr "" + +#: ../source/specifications/pypirc.rst:18 msgid "The format (originally defined by the :ref:`distutils` package) is:" msgstr "" -#: ../source/specifications/pypirc.rst:32 +#: ../source/specifications/pypirc.rst:37 msgid "" "The ``distutils`` section defines an ``index-servers`` field that lists the " "name of all sections describing a repository." msgstr "" -#: ../source/specifications/pypirc.rst:35 +#: ../source/specifications/pypirc.rst:40 msgid "Each section describing a repository defines three fields:" msgstr "" -#: ../source/specifications/pypirc.rst:37 +#: ../source/specifications/pypirc.rst:42 msgid "``repository``: The URL of the repository." msgstr "" -#: ../source/specifications/pypirc.rst:38 +#: ../source/specifications/pypirc.rst:43 msgid "``username``: The registered username on the repository." msgstr "" -#: ../source/specifications/pypirc.rst:39 +#: ../source/specifications/pypirc.rst:44 msgid "``password``: The password that will used to authenticate the username." msgstr "" -#: ../source/specifications/pypirc.rst:43 +#: ../source/specifications/pypirc.rst:48 msgid "" "Be aware that this stores your password in plain text. For better security, " "consider an alternative like `keyring`_, setting environment variables, or " "providing the password on the command line." msgstr "" -#: ../source/specifications/pypirc.rst:47 +#: ../source/specifications/pypirc.rst:52 msgid "" "Otherwise, set the permissions on :file:`.pypirc` so that only you can view " "or modify it. For example, on Linux or macOS, run:" msgstr "" -#: ../source/specifications/pypirc.rst:57 +#: ../source/specifications/pypirc.rst:62 msgid "Common configurations" msgstr "" -#: ../source/specifications/pypirc.rst:61 +#: ../source/specifications/pypirc.rst:66 msgid "" "These examples apply to :ref:`twine`. Other projects (e.g. :ref:`flit`) also " "use :file:`.pypirc`, but with different defaults. Please refer to each " "project's documentation for more details and usage instructions." msgstr "" -#: ../source/specifications/pypirc.rst:65 +#: ../source/specifications/pypirc.rst:70 msgid "" "Twine's default configuration mimics a :file:`.pypirc` with repository " "sections for PyPI and TestPyPI:" msgstr "" -#: ../source/specifications/pypirc.rst:81 +#: ../source/specifications/pypirc.rst:86 msgid "" "Twine will add additional configuration from :file:`$HOME/.pypirc`, the " "command line, and environment variables to this default configuration." msgstr "" -#: ../source/specifications/pypirc.rst:85 +#: ../source/specifications/pypirc.rst:90 msgid "Using a PyPI token" msgstr "" -#: ../source/specifications/pypirc.rst:87 +#: ../source/specifications/pypirc.rst:92 msgid "" "To set your `API token`_ for PyPI, you can create a :file:`$HOME/.pypirc` " "similar to:" msgstr "" -#: ../source/specifications/pypirc.rst:96 +#: ../source/specifications/pypirc.rst:101 msgid "" "For :ref:`TestPyPI `, add a ``[testpypi]`` section, using " "the API token from your TestPyPI account." msgstr "" -#: ../source/specifications/pypirc.rst:102 +#: ../source/specifications/pypirc.rst:107 msgid "Using another package index" msgstr "" -#: ../source/specifications/pypirc.rst:104 +#: ../source/specifications/pypirc.rst:109 msgid "" "To configure an additional repository, you'll need to redefine the ``index-" "servers`` field to include the repository name. Here is a complete example " "of a :file:`$HOME/.pypirc` for PyPI, TestPyPI, and a private repository:" msgstr "" -#: ../source/specifications/pypirc.rst:131 +#: ../source/specifications/pypirc.rst:136 msgid "" "Instead of using the ``password`` field, consider saving your API tokens and " "passwords securely using `keyring`_ (which is installed by Twine):" @@ -20866,10 +20788,6 @@ msgid "" msgstr "" #: ../source/specifications/pyproject-toml.rst:17 -msgid "This specification was originally defined in :pep:`518` and :pep:`621`." -msgstr "" - -#: ../source/specifications/pyproject-toml.rst:19 msgid "" "The ``pyproject.toml`` file is written in `TOML `_. Three " "tables are currently specified, namely :ref:`[build-system] `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:44 +#: ../source/specifications/pyproject-toml.rst:42 msgid "" "An example ``[build-system]`` table for a project built with ``setuptools`` " "is:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:53 +#: ../source/specifications/pyproject-toml.rst:51 msgid "" "Build tools are expected to use the example configuration file above as " "their default semantics when a ``pyproject.toml`` file is not present." msgstr "" -#: ../source/specifications/pyproject-toml.rst:56 +#: ../source/specifications/pyproject-toml.rst:54 msgid "" "Tools should not require the existence of the ``[build-system]`` table. A " "``pyproject.toml`` file may be used to store configuration details other " @@ -20920,7 +20838,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:64 +#: ../source/specifications/pyproject-toml.rst:62 msgid "" "Tools may choose to present an error to the user if the file exists, " "``[build-system]`` table is missing, and there is no clear indication that " @@ -20928,24 +20846,24 @@ msgid "" "configuration files, and no ``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:69 +#: ../source/specifications/pyproject-toml.rst:67 msgid "" "To provide a type-specific representation of the resulting data from the " "TOML file for illustrative purposes only, the following `JSON Schema " "`_ would match the data format:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:107 +#: ../source/specifications/pyproject-toml.rst:105 msgid "Declaring project metadata: the ``[project]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:109 +#: ../source/specifications/pyproject-toml.rst:107 msgid "" "The ``[project]`` table specifies the project's :ref:`core metadata `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:111 +#: ../source/specifications/pyproject-toml.rst:109 msgid "" "There are two kinds of metadata: *static* and *dynamic*. Static metadata is " "specified in the ``pyproject.toml`` file directly and cannot be specified or " @@ -20955,140 +20873,140 @@ msgid "" "represents metadata that a tool will later provide." msgstr "" -#: ../source/specifications/pyproject-toml.rst:119 +#: ../source/specifications/pyproject-toml.rst:117 msgid "" "The lack of a ``[project]`` table implicitly means the :term:`build backend " "` will dynamically provide all keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:122 +#: ../source/specifications/pyproject-toml.rst:120 msgid "The only keys required to be statically defined are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:126 +#: ../source/specifications/pyproject-toml.rst:124 msgid "" "The keys which are required but may be specified *either* statically or " "listed as dynamic are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:131 +#: ../source/specifications/pyproject-toml.rst:129 msgid "" "All other keys are considered optional and may be specified statically, " "listed as dynamic, or left unspecified." msgstr "" -#: ../source/specifications/pyproject-toml.rst:134 +#: ../source/specifications/pyproject-toml.rst:132 msgid "The complete list of keys allowed in the ``[project]`` table are:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:136 +#: ../source/specifications/pyproject-toml.rst:134 msgid "``authors``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:136 msgid "``dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:140 -#: ../source/specifications/pyproject-toml.rst:576 +#: ../source/specifications/pyproject-toml.rst:138 +#: ../source/specifications/pyproject-toml.rst:574 msgid "``dynamic``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:139 msgid "``entry-points``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:140 msgid "``gui-scripts``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:143 -#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:141 +#: ../source/specifications/pyproject-toml.rst:482 msgid "``import-names``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:144 -#: ../source/specifications/pyproject-toml.rst:535 +#: ../source/specifications/pyproject-toml.rst:142 +#: ../source/specifications/pyproject-toml.rst:533 msgid "``import-namespaces``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:148 +#: ../source/specifications/pyproject-toml.rst:146 #, fuzzy msgid "``maintainers``" msgstr "維護者" -#: ../source/specifications/pyproject-toml.rst:150 +#: ../source/specifications/pyproject-toml.rst:148 msgid "``optional-dependencies``" msgstr "" -#: ../source/specifications/pyproject-toml.rst:163 -#: ../source/specifications/pyproject-toml.rst:178 -#: ../source/specifications/pyproject-toml.rst:193 -#: ../source/specifications/pyproject-toml.rst:247 -#: ../source/specifications/pyproject-toml.rst:259 +#: ../source/specifications/pyproject-toml.rst:161 +#: ../source/specifications/pyproject-toml.rst:176 +#: ../source/specifications/pyproject-toml.rst:191 +#: ../source/specifications/pyproject-toml.rst:245 +#: ../source/specifications/pyproject-toml.rst:257 msgid "TOML_ type: string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:164 +#: ../source/specifications/pyproject-toml.rst:162 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Name `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:167 +#: ../source/specifications/pyproject-toml.rst:165 msgid "The name of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:169 +#: ../source/specifications/pyproject-toml.rst:167 msgid "" "Tools SHOULD :ref:`normalize ` this name, as soon as it " "is read for internal consistency." msgstr "" -#: ../source/specifications/pyproject-toml.rst:179 +#: ../source/specifications/pyproject-toml.rst:177 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Version " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:182 +#: ../source/specifications/pyproject-toml.rst:180 msgid "" "The version of the project, as defined in the :ref:`Version specifier " "specification `." msgstr "" -#: ../source/specifications/pyproject-toml.rst:185 +#: ../source/specifications/pyproject-toml.rst:183 msgid "Users SHOULD prefer to specify already-normalized versions." msgstr "" -#: ../source/specifications/pyproject-toml.rst:194 +#: ../source/specifications/pyproject-toml.rst:192 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Summary " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:197 +#: ../source/specifications/pyproject-toml.rst:195 msgid "" "The summary description of the project in one line. Tools MAY error if this " "includes multiple lines." msgstr "" -#: ../source/specifications/pyproject-toml.rst:206 +#: ../source/specifications/pyproject-toml.rst:204 msgid "TOML_ type: string or table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:207 +#: ../source/specifications/pyproject-toml.rst:205 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Description " "` and :ref:`Description-Content-Type `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:211 +#: ../source/specifications/pyproject-toml.rst:209 msgid "The full description of the project (i.e. the README)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:213 +#: ../source/specifications/pyproject-toml.rst:211 msgid "" "The key accepts either a string or a table. If it is a string then it is a " "path relative to ``pyproject.toml`` to a text file containing the full " @@ -21102,7 +21020,7 @@ msgid "" "MUST raise an error." msgstr "" -#: ../source/specifications/pyproject-toml.rst:224 +#: ../source/specifications/pyproject-toml.rst:222 msgid "" "The ``readme`` key may also take a table. The ``file`` key has a string " "value representing a path relative to ``pyproject.toml`` to a file " @@ -21111,7 +21029,7 @@ msgid "" "raise an error if the metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:231 +#: ../source/specifications/pyproject-toml.rst:229 msgid "" "A table specified in the ``readme`` key also has a ``content-type`` key " "which takes a string specifying the content-type of the full description. A " @@ -21123,30 +21041,30 @@ msgid "" "Otherwise tools MUST raise an error for unsupported content-types." msgstr "" -#: ../source/specifications/pyproject-toml.rst:248 +#: ../source/specifications/pyproject-toml.rst:246 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Python `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:251 +#: ../source/specifications/pyproject-toml.rst:249 msgid "The Python version requirements of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:260 +#: ../source/specifications/pyproject-toml.rst:258 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-" "Expression `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:263 +#: ../source/specifications/pyproject-toml.rst:261 msgid "" "Text string that is a valid SPDX :term:`license expression `, as specified in :doc:`/specifications/license-expression`. " "Tools SHOULD validate and perform case normalization of the expression." msgstr "" -#: ../source/specifications/pyproject-toml.rst:268 +#: ../source/specifications/pyproject-toml.rst:266 msgid "" "This key should **only** be specified if the license expression for any and " "all distribution files created by a build backend using " @@ -21155,23 +21073,23 @@ msgid "" "set at all." msgstr "" -#: ../source/specifications/pyproject-toml.rst:275 +#: ../source/specifications/pyproject-toml.rst:273 #, fuzzy #| msgid "Specification" msgid "Legacy specification" msgstr "規格" -#: ../source/specifications/pyproject-toml.rst:277 +#: ../source/specifications/pyproject-toml.rst:275 msgid "TOML_ type: table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:278 +#: ../source/specifications/pyproject-toml.rst:276 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:281 +#: ../source/specifications/pyproject-toml.rst:279 msgid "" "The table may have one of two keys. The ``file`` key has a string value that " "is a file path relative to :file:`pyproject.toml` to the file which contains " @@ -21181,26 +21099,26 @@ msgid "" "metadata specifies both keys." msgstr "" -#: ../source/specifications/pyproject-toml.rst:288 +#: ../source/specifications/pyproject-toml.rst:286 msgid "" "The table subkeys were deprecated by :pep:`639` in favor of the string value." msgstr "" -#: ../source/specifications/pyproject-toml.rst:295 -#: ../source/specifications/pyproject-toml.rst:378 -#: ../source/specifications/pyproject-toml.rst:390 -#: ../source/specifications/pyproject-toml.rst:486 -#: ../source/specifications/pyproject-toml.rst:537 +#: ../source/specifications/pyproject-toml.rst:293 +#: ../source/specifications/pyproject-toml.rst:376 +#: ../source/specifications/pyproject-toml.rst:388 +#: ../source/specifications/pyproject-toml.rst:484 +#: ../source/specifications/pyproject-toml.rst:535 msgid "TOML_ type: array of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:296 +#: ../source/specifications/pyproject-toml.rst:294 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`License-File " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:299 +#: ../source/specifications/pyproject-toml.rst:297 msgid "" "An array specifying paths in the project source tree relative to the project " "root directory (i.e. directory containing :file:`pyproject.toml` or legacy " @@ -21209,40 +21127,40 @@ msgid "" "with the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:305 +#: ../source/specifications/pyproject-toml.rst:303 msgid "" "The strings MUST contain valid glob patterns, as specified in :doc:`/" "specifications/glob-patterns`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:308 +#: ../source/specifications/pyproject-toml.rst:306 msgid "" "Patterns are relative to the directory containing :file:`pyproject.toml`," msgstr "" -#: ../source/specifications/pyproject-toml.rst:310 +#: ../source/specifications/pyproject-toml.rst:308 msgid "" "Tools MUST assume that license file content is valid UTF-8 encoded text, and " "SHOULD validate this and raise an error if it is not." msgstr "" -#: ../source/specifications/pyproject-toml.rst:313 +#: ../source/specifications/pyproject-toml.rst:311 msgid "Build tools:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:315 +#: ../source/specifications/pyproject-toml.rst:313 msgid "" "MUST include all files matched by a listed pattern in all distribution " "archives." msgstr "" -#: ../source/specifications/pyproject-toml.rst:317 +#: ../source/specifications/pyproject-toml.rst:315 msgid "" "MUST list each matched file path under a License-File field in the Core " "Metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:320 +#: ../source/specifications/pyproject-toml.rst:318 msgid "" "If the ``license-files`` key is present and is set to a value of an empty " "array, then tools MUST NOT include any license files and MUST NOT raise an " @@ -21251,11 +21169,11 @@ msgid "" "or use their own logic to discover the appropriate files in the distribution." msgstr "" -#: ../source/specifications/pyproject-toml.rst:334 +#: ../source/specifications/pyproject-toml.rst:332 msgid "TOML_ type: Array of inline tables with string keys and values" msgstr "" -#: ../source/specifications/pyproject-toml.rst:335 +#: ../source/specifications/pyproject-toml.rst:333 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Author `, :ref:`Author-email `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:341 +#: ../source/specifications/pyproject-toml.rst:339 msgid "" "The people or organizations considered to be the \"authors\" of the project. " "The exact meaning is open to interpretation — it may list the original or " "primary authors, current maintainers, or owners of the package." msgstr "" -#: ../source/specifications/pyproject-toml.rst:346 +#: ../source/specifications/pyproject-toml.rst:344 msgid "" "The \"maintainers\" key is similar to \"authors\" in that its exact meaning " "is open to interpretation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:349 +#: ../source/specifications/pyproject-toml.rst:347 msgid "" "These keys accept an array of tables with 2 keys: ``name`` and ``email``. " "Both values must be strings. The ``name`` value MUST be a valid email name " @@ -21285,56 +21203,56 @@ msgid "" "are optional, but at least one of the keys must be specified in the table." msgstr "" -#: ../source/specifications/pyproject-toml.rst:356 +#: ../source/specifications/pyproject-toml.rst:354 msgid "" "Using the data to fill in :ref:`core metadata ` is as follows:" msgstr "" -#: ../source/specifications/pyproject-toml.rst:359 +#: ../source/specifications/pyproject-toml.rst:357 msgid "" "If only ``name`` is provided, the value goes in :ref:`Author ` or :ref:`Maintainer ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:362 +#: ../source/specifications/pyproject-toml.rst:360 msgid "" "If only ``email`` is provided, the value goes in :ref:`Author-email ` or :ref:`Maintainer-email ` as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:366 +#: ../source/specifications/pyproject-toml.rst:364 msgid "" "If both ``email`` and ``name`` are provided, the value goes in :ref:`Author-" "email ` or :ref:`Maintainer-email ` as appropriate, with the format ``{name} <{email}>``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:370 +#: ../source/specifications/pyproject-toml.rst:368 msgid "Multiple values should be separated by commas." msgstr "" -#: ../source/specifications/pyproject-toml.rst:379 +#: ../source/specifications/pyproject-toml.rst:377 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Keywords " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:382 +#: ../source/specifications/pyproject-toml.rst:380 msgid "The keywords for the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:391 +#: ../source/specifications/pyproject-toml.rst:389 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Classifier " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:394 +#: ../source/specifications/pyproject-toml.rst:392 msgid "Trove classifiers which apply to the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:396 +#: ../source/specifications/pyproject-toml.rst:394 msgid "" "The use of ``License ::`` classifiers is deprecated and tools MAY issue a " "warning informing users about that. Build tools MAY raise an error if both " @@ -21342,38 +21260,38 @@ msgid "" "field) and the ``License ::`` classifiers are used." msgstr "" -#: ../source/specifications/pyproject-toml.rst:408 +#: ../source/specifications/pyproject-toml.rst:406 msgid "TOML_ type: table with keys and values of strings" msgstr "" -#: ../source/specifications/pyproject-toml.rst:409 +#: ../source/specifications/pyproject-toml.rst:407 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Project-URL " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:412 +#: ../source/specifications/pyproject-toml.rst:410 msgid "" "A table of URLs where the key is the URL label and the value is the URL " "itself. See :ref:`well-known-project-urls` for normalization rules and well-" "known rules when processing metadata for presentation." msgstr "" -#: ../source/specifications/pyproject-toml.rst:422 +#: ../source/specifications/pyproject-toml.rst:420 msgid "Entry points" msgstr "" -#: ../source/specifications/pyproject-toml.rst:424 +#: ../source/specifications/pyproject-toml.rst:422 msgid "" "TOML_ type: table (``[project.scripts]``, ``[project.gui-scripts]``, and " "``[project.entry-points]``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:426 +#: ../source/specifications/pyproject-toml.rst:424 msgid ":ref:`Entry points specification `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:428 +#: ../source/specifications/pyproject-toml.rst:426 msgid "" "There are three tables related to entry points. The ``[project.scripts]`` " "table corresponds to the ``console_scripts`` group in the :ref:`entry points " @@ -21381,14 +21299,14 @@ msgid "" "point and the value is the object reference." msgstr "" -#: ../source/specifications/pyproject-toml.rst:434 +#: ../source/specifications/pyproject-toml.rst:432 msgid "" "The ``[project.gui-scripts]`` table corresponds to the ``gui_scripts`` group " "in the :ref:`entry points specification `. Its format is the " "same as ``[project.scripts]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:438 +#: ../source/specifications/pyproject-toml.rst:436 msgid "" "The ``[project.entry-points]`` table is a collection of tables. Each sub-" "table's name is an entry point group. The key and value semantics are the " @@ -21396,7 +21314,7 @@ msgid "" "instead keep the entry point groups to only one level deep." msgstr "" -#: ../source/specifications/pyproject-toml.rst:444 +#: ../source/specifications/pyproject-toml.rst:442 msgid "" "Build back-ends MUST raise an error if the metadata defines a " "``[project.entry-points.console_scripts]`` or ``[project.entry-" @@ -21404,24 +21322,24 @@ msgid "" "``[project.scripts]`` and ``[project.gui-scripts]``, respectively." msgstr "" -#: ../source/specifications/pyproject-toml.rst:457 +#: ../source/specifications/pyproject-toml.rst:455 msgid "" "TOML_ type: Array of :pep:`508` strings (``dependencies``), and a table with " "values of arrays of :pep:`508` strings (``optional-dependencies``)" msgstr "" -#: ../source/specifications/pyproject-toml.rst:460 +#: ../source/specifications/pyproject-toml.rst:458 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Requires-" "Dist ` and :ref:`Provides-Extra `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:464 +#: ../source/specifications/pyproject-toml.rst:462 msgid "The (optional) dependencies of the project." msgstr "" -#: ../source/specifications/pyproject-toml.rst:466 +#: ../source/specifications/pyproject-toml.rst:464 msgid "" "For ``dependencies``, it is a key whose value is an array of strings. Each " "string represents a dependency of the project and MUST be formatted as a " @@ -21429,7 +21347,7 @@ msgid "" "` entry." msgstr "" -#: ../source/specifications/pyproject-toml.rst:471 +#: ../source/specifications/pyproject-toml.rst:469 msgid "" "For ``optional-dependencies``, it is a table where each key specifies an " "extra and whose value is an array of strings. The strings of the arrays must " @@ -21440,13 +21358,13 @@ msgid "" "provides-extra>` metadata." msgstr "" -#: ../source/specifications/pyproject-toml.rst:487 +#: ../source/specifications/pyproject-toml.rst:485 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-Name " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:490 +#: ../source/specifications/pyproject-toml.rst:488 msgid "" "An array of strings specifying the import names that the project exclusively " "provides when installed. Each string MUST be a valid Python identifier or " @@ -21455,7 +21373,7 @@ msgid "" "surrounding the semicolon." msgstr "" -#: ../source/specifications/pyproject-toml.rst:495 +#: ../source/specifications/pyproject-toml.rst:493 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21470,40 +21388,40 @@ msgid "" "using the ``; private`` modifier as appropriate." msgstr "" -#: ../source/specifications/pyproject-toml.rst:507 -#: ../source/specifications/pyproject-toml.rst:556 +#: ../source/specifications/pyproject-toml.rst:505 +#: ../source/specifications/pyproject-toml.rst:554 msgid "" "If a project lists the same name in both ``import-names`` and ``import-" "namespaces``, then tools MUST raise an error due to ambiguity." msgstr "" -#: ../source/specifications/pyproject-toml.rst:510 +#: ../source/specifications/pyproject-toml.rst:508 msgid "" "Projects MAY set ``import-names`` to an empty array to represent a project " "with no import names (i.e. there are no Python modules of any kind in the " "distribution file)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:514 -#: ../source/specifications/pyproject-toml.rst:559 +#: ../source/specifications/pyproject-toml.rst:512 +#: ../source/specifications/pyproject-toml.rst:557 msgid "" "Build back-ends MAY support dynamically calculating the value if the user " "declares the key in ``project.dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:517 +#: ../source/specifications/pyproject-toml.rst:515 #, fuzzy #| msgid "Examples::" msgid "Examples:" msgstr "例子::" -#: ../source/specifications/pyproject-toml.rst:538 +#: ../source/specifications/pyproject-toml.rst:536 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Import-" "Namespace `" msgstr "" -#: ../source/specifications/pyproject-toml.rst:541 +#: ../source/specifications/pyproject-toml.rst:539 msgid "" "An array of strings specifying the import names that the project provides " "when installed, but not exclusively. Each string MUST be a valid Python " @@ -21513,7 +21431,7 @@ msgid "" "namespaces`` CANNOT be an empty array." msgstr "" -#: ../source/specifications/pyproject-toml.rst:547 +#: ../source/specifications/pyproject-toml.rst:545 msgid "" "Projects SHOULD list all the shortest import names that are exclusively " "provided by the project. If any of the shortest names are dotted names, all " @@ -21521,7 +21439,7 @@ msgid "" "appropriately in ``import-names`` and/or ``import-namespaces``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:552 +#: ../source/specifications/pyproject-toml.rst:550 msgid "" "This field is used for namespace packages where multiple projects can " "contribute to the same import namespace. Projects all listing the same " @@ -21529,23 +21447,23 @@ msgid "" "shadowing each other." msgstr "" -#: ../source/specifications/pyproject-toml.rst:562 +#: ../source/specifications/pyproject-toml.rst:560 #, fuzzy #| msgid "Example::" msgid "Example:" msgstr "例子::" -#: ../source/specifications/pyproject-toml.rst:578 +#: ../source/specifications/pyproject-toml.rst:576 msgid "TOML_ type: array of string" msgstr "" -#: ../source/specifications/pyproject-toml.rst:579 +#: ../source/specifications/pyproject-toml.rst:577 msgid "" "Corresponding :ref:`core metadata ` field: :ref:`Dynamic " "`" msgstr "" -#: ../source/specifications/pyproject-toml.rst:582 +#: ../source/specifications/pyproject-toml.rst:580 msgid "" "Specifies which keys listed by this PEP were intentionally unspecified so " "another tool can/will provide such metadata dynamically. This clearly " @@ -21553,19 +21471,19 @@ msgid "" "unspecified compared to being provided via tooling later on." msgstr "" -#: ../source/specifications/pyproject-toml.rst:588 +#: ../source/specifications/pyproject-toml.rst:586 msgid "" "A build back-end MUST honour statically-specified metadata (which means the " "metadata did not list the key in ``dynamic``)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:590 +#: ../source/specifications/pyproject-toml.rst:588 msgid "" "A build back-end MUST raise an error if the metadata specifies ``name`` in " "``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:592 +#: ../source/specifications/pyproject-toml.rst:590 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Required\", then the metadata MUST specify the key statically or list it " @@ -21574,20 +21492,20 @@ msgid "" "``[project]`` table)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:597 +#: ../source/specifications/pyproject-toml.rst:595 msgid "" "If the :ref:`core metadata ` specification lists a field as " "\"Optional\", the metadata MAY list it in ``dynamic`` if the expectation is " "a build back-end will provide the data for the key later." msgstr "" -#: ../source/specifications/pyproject-toml.rst:601 +#: ../source/specifications/pyproject-toml.rst:599 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key " "statically as well as being listed in ``dynamic``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:603 +#: ../source/specifications/pyproject-toml.rst:601 msgid "" "If the metadata does not list a key in ``dynamic``, then a build back-end " "CANNOT fill in the requisite metadata on behalf of the user (i.e. " @@ -21595,18 +21513,18 @@ msgid "" "must opt into the filling in)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:607 +#: ../source/specifications/pyproject-toml.rst:605 msgid "" "Build back-ends MUST raise an error if the metadata specifies a key in " "``dynamic`` but the build back-end was unable to determine the data for it " "(omitting the data, if determined to be the accurate value, is acceptable)." msgstr "" -#: ../source/specifications/pyproject-toml.rst:617 +#: ../source/specifications/pyproject-toml.rst:615 msgid "Arbitrary tool configuration: the ``[tool]`` table" msgstr "" -#: ../source/specifications/pyproject-toml.rst:619 +#: ../source/specifications/pyproject-toml.rst:617 msgid "" "The ``[tool]`` table is where any tool related to your Python project, not " "just build tools, can have users specify configuration data as long as they " @@ -21614,7 +21532,7 @@ msgid "" "pypi/flit>`_ tool would store its configuration in ``[tool.flit]``." msgstr "" -#: ../source/specifications/pyproject-toml.rst:625 +#: ../source/specifications/pyproject-toml.rst:623 msgid "" "A mechanism is needed to allocate names within the ``tool.*`` namespace, to " "make sure that different projects do not attempt to use the same sub-table " @@ -21622,32 +21540,32 @@ msgid "" "if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI." msgstr "" -#: ../source/specifications/pyproject-toml.rst:636 +#: ../source/specifications/pyproject-toml.rst:634 msgid "" "May 2016: The initial specification of the ``pyproject.toml`` file, with " "just a ``[build-system]`` containing a ``requires`` key and a ``[tool]`` " "table, was approved through :pep:`518`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:640 +#: ../source/specifications/pyproject-toml.rst:638 msgid "" "November 2020: The specification of the ``[project]`` table was approved " "through :pep:`621`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:643 +#: ../source/specifications/pyproject-toml.rst:641 msgid "" "December 2024: The ``license`` key was redefined, the ``license-files`` key " "was added and ``License::`` classifiers were deprecated through :pep:`639`." msgstr "" -#: ../source/specifications/pyproject-toml.rst:646 +#: ../source/specifications/pyproject-toml.rst:644 msgid "" "September 2025: Clarity that the ``license`` key applies to all distribution " "files generated from the :file:`pyproject.toml` file." msgstr "" -#: ../source/specifications/pyproject-toml.rst:649 +#: ../source/specifications/pyproject-toml.rst:647 msgid "" "October 2025: The ``import-names`` and ``import-namespaces`` keys were added " "through :pep:`794`." @@ -22481,7 +22399,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:258 -#: ../source/specifications/simple-repository-api.rst:601 +#: ../source/specifications/simple-repository-api.rst:603 msgid "" "The semantics of how tools should handle yanked files is described " "in :ref:`file-yanking`." @@ -22520,7 +22438,7 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:283 -#: ../source/specifications/simple-repository-api.rst:493 +#: ../source/specifications/simple-repository-api.rst:489 msgid "" "The set of valid project status markers and their semantics is described " "in :ref:`project-status-markers`." @@ -22741,14 +22659,14 @@ msgid "" msgstr "" #: ../source/specifications/simple-repository-api.rst:434 -#: ../source/specifications/simple-repository-api.rst:484 +#: ../source/specifications/simple-repository-api.rst:508 msgid "" "``meta``: The general response metadata as `described earlier `__." msgstr "" #: ../source/specifications/simple-repository-api.rst:436 -#: ../source/specifications/simple-repository-api.rst:632 +#: ../source/specifications/simple-repository-api.rst:634 msgid "As an example:" msgstr "" @@ -22782,7 +22700,7 @@ msgstr "" #: ../source/specifications/simple-repository-api.rst:480 msgid "" -"This URL must respond with a JSON encoded dictionary that has four keys:" +"This URL must respond with a JSON encoded dictionary that has five keys:" msgstr "" #: ../source/specifications/simple-repository-api.rst:482 @@ -22790,45 +22708,45 @@ msgid "``name``: The normalized name of the project." msgstr "" #: ../source/specifications/simple-repository-api.rst:483 -msgid "" -"``files``: A list of dictionaries, each one representing an individual file." +msgid "``project-status``: An optional dictionary, containing the following:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:486 -msgid "" -"In addition to the general response metadata, the project detail ``meta`` " -"dictionary **MAY** also include the following:" +#: ../source/specifications/simple-repository-api.rst:485 +msgid "``status``: If present, this **MUST** be a valid project status marker." msgstr "" -#: ../source/specifications/simple-repository-api.rst:489 -msgid "" -"``project-status``: If present, this **MUST** be a valid project status " -"marker." +#: ../source/specifications/simple-repository-api.rst:494 +msgid "The ``status`` key was added with API version 1.4." msgstr "" -#: ../source/specifications/simple-repository-api.rst:498 -msgid "The ``project-status`` key was added with API version 1.4." +#: ../source/specifications/simple-repository-api.rst:496 +msgid "" +"``reason``: If present, this **MUST** be an arbitrary string description of " +"the project status." msgstr "" -#: ../source/specifications/simple-repository-api.rst:500 -msgid "" -"``project-status-reason``: If present, this **MUST** be an arbitrary string " -"description of the project status." +#: ../source/specifications/simple-repository-api.rst:501 +msgid "The ``reason`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:505 -msgid "The ``project-status-reason`` key was added with API version 1.4." +msgid "The ``project-status`` key was added with API version 1.4." msgstr "" #: ../source/specifications/simple-repository-api.rst:507 msgid "" +"``files``: A list of dictionaries, each one representing an individual file." +msgstr "" + +#: ../source/specifications/simple-repository-api.rst:509 +msgid "" "``versions``: A list of version strings specifying all of the project " "versions uploaded for this project. The value of ``versions`` is logically a " "set, and as such may not contain duplicates, and the order of the versions " "is not significant." msgstr "" -#: ../source/specifications/simple-repository-api.rst:514 +#: ../source/specifications/simple-repository-api.rst:516 msgid "" "All of the files listed in the ``files`` key MUST be associated with one of " "the versions in the ``versions`` key. The ``versions`` key MAY contain " @@ -22836,7 +22754,7 @@ msgid "" "uploaded, if the server has such a concept)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:521 +#: ../source/specifications/simple-repository-api.rst:523 msgid "" "Because servers may hold \"legacy\" data from before the adoption " "of :ref:`the version specifiers specification (VSS) `, " @@ -22845,23 +22763,23 @@ msgid "" "servers **SHOULD** use normalized VSS versions where possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:529 +#: ../source/specifications/simple-repository-api.rst:531 msgid "The ``versions`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:531 +#: ../source/specifications/simple-repository-api.rst:533 msgid "Each individual file dictionary has the following keys:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:533 +#: ../source/specifications/simple-repository-api.rst:535 msgid "``filename``: The filename that is being represented." msgstr "" -#: ../source/specifications/simple-repository-api.rst:534 +#: ../source/specifications/simple-repository-api.rst:536 msgid "``url``: The URL that the file can be fetched from." msgstr "" -#: ../source/specifications/simple-repository-api.rst:535 +#: ../source/specifications/simple-repository-api.rst:537 msgid "" "``hashes``: A dictionary mapping a hash name to a hex encoded digest of the " "file. Multiple hashes can be included, and it is up to the client to decide " @@ -22870,14 +22788,14 @@ msgid "" "to be lowercase." msgstr "" -#: ../source/specifications/simple-repository-api.rst:540 +#: ../source/specifications/simple-repository-api.rst:542 msgid "" "The ``hashes`` dictionary **MUST** be present, even if no hashes are " "available for the file, however it is **HIGHLY** recommended that at least " "one secure, guaranteed-to-be-available hash is always included." msgstr "" -#: ../source/specifications/simple-repository-api.rst:544 +#: ../source/specifications/simple-repository-api.rst:546 msgid "" "By default, any hash algorithm available via :py:mod:`hashlib` (specifically " "any that can be passed to :py:func:`hashlib.new()` and do not require " @@ -22887,7 +22805,7 @@ msgid "" "specifically is recommended." msgstr "" -#: ../source/specifications/simple-repository-api.rst:549 +#: ../source/specifications/simple-repository-api.rst:551 msgid "" "``requires-python``: An **optional** key that exposes the :ref:`core-" "metadata-requires-python` metadata field. Where this is present, installer " @@ -22895,14 +22813,14 @@ msgid "" "that doesn't satisfy the requirement." msgstr "" -#: ../source/specifications/simple-repository-api.rst:555 +#: ../source/specifications/simple-repository-api.rst:557 msgid "" "Unlike ``data-requires-python`` in :ref:`the base HTML API specification " "`, the ``requires-python`` key does not require " "any special escaping other than anything JSON does naturally." msgstr "" -#: ../source/specifications/simple-repository-api.rst:558 +#: ../source/specifications/simple-repository-api.rst:560 msgid "" "``core-metadata``: An **optional** key that indicates that metadata for this " "file is available, via the same location as specified in :ref:`the API " @@ -22912,45 +22830,45 @@ msgid "" "dictionary mapping hash names to a hex encoded digest of the metadata's hash." msgstr "" -#: ../source/specifications/simple-repository-api.rst:566 +#: ../source/specifications/simple-repository-api.rst:568 msgid "" "When this is a dictionary of hashes instead of a boolean, then all the same " "requirements and recommendations as the ``hashes`` key hold true for this " "key as well." msgstr "" -#: ../source/specifications/simple-repository-api.rst:570 +#: ../source/specifications/simple-repository-api.rst:572 msgid "" "If this key is missing then the metadata file may or may not exist. If the " "key value is truthy, then the metadata file is present, and if it is falsey " "then it is not." msgstr "" -#: ../source/specifications/simple-repository-api.rst:574 +#: ../source/specifications/simple-repository-api.rst:576 msgid "" "It is recommended that servers make the hashes of the metadata file " "available if possible." msgstr "" -#: ../source/specifications/simple-repository-api.rst:577 +#: ../source/specifications/simple-repository-api.rst:579 msgid "" "``dist-info-metadata``: An **optional**, deprecated alias for ``core-" "metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:579 +#: ../source/specifications/simple-repository-api.rst:581 msgid "" "Index clients **MAY** consume this key if present, as a legacy fallback for " "``core-metadata``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:584 +#: ../source/specifications/simple-repository-api.rst:586 msgid "" "``dist-info-metadata`` was standardized with :pep:`658` and renamed to " "``core-metadata`` with :pep:`714`." msgstr "" -#: ../source/specifications/simple-repository-api.rst:587 +#: ../source/specifications/simple-repository-api.rst:589 msgid "" "``gpg-sig``: An **optional** key that acts a boolean to indicate if the file " "has an associated GPG signature or not. The URL for the signature file " @@ -22959,7 +22877,7 @@ msgid "" "the signature may or may not exist." msgstr "" -#: ../source/specifications/simple-repository-api.rst:593 +#: ../source/specifications/simple-repository-api.rst:595 msgid "" "``yanked``: An **optional** key which may be either a boolean to indicate if " "the file has been yanked, or a non empty, but otherwise arbitrary, string to " @@ -22969,17 +22887,17 @@ msgid "" "been \"Yanked\"." msgstr "" -#: ../source/specifications/simple-repository-api.rst:604 +#: ../source/specifications/simple-repository-api.rst:606 msgid "" "``size``: A **mandatory** key. It **MUST** contain an integer which is the " "file size in bytes." msgstr "" -#: ../source/specifications/simple-repository-api.rst:608 +#: ../source/specifications/simple-repository-api.rst:610 msgid "The ``size`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:610 +#: ../source/specifications/simple-repository-api.rst:612 msgid "" "``upload-time``: An **optional** key that, if present, **MUST** contain a " "valid ISO 8601 date/time string in the format ``yyyy-mm-" @@ -22987,7 +22905,7 @@ msgid "" "index." msgstr "" -#: ../source/specifications/simple-repository-api.rst:614 +#: ../source/specifications/simple-repository-api.rst:616 msgid "" "As indicated by the ``Z`` suffix, the upload time **MUST** use the UTC " "timezone. The fractional seconds part of the timestamp (the ``.ffffff`` " @@ -22996,11 +22914,11 @@ msgid "" "omit the ``upload-time`` key." msgstr "" -#: ../source/specifications/simple-repository-api.rst:621 +#: ../source/specifications/simple-repository-api.rst:623 msgid "The ``upload-time`` key was added with API version 1.1." msgstr "" -#: ../source/specifications/simple-repository-api.rst:623 +#: ../source/specifications/simple-repository-api.rst:625 msgid "" "``provenance``: An **optional** key which, if present **MUST** be either a " "JSON string or ``null``. If not ``null``, it **MUST** be a URL to the file's " @@ -23008,11 +22926,11 @@ msgid "" "the :ref:`base HTML API specification `." msgstr "" -#: ../source/specifications/simple-repository-api.rst:630 +#: ../source/specifications/simple-repository-api.rst:632 msgid "The ``provenance`` field was added with API version 1.3." msgstr "" -#: ../source/specifications/simple-repository-api.rst:668 +#: ../source/specifications/simple-repository-api.rst:670 msgid "" "While the ``files`` key is an array, and thus is required to be in some kind " "of an order, neither :ref:`the base HTML API specification ` API responses to use the " @@ -23077,12 +22995,12 @@ msgid "" "alias for the ``application/vnd.pypi.simple.v1+html`` content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:711 +#: ../source/specifications/simple-repository-api.rst:713 #, fuzzy msgid "Version + Format Selection" msgstr "翻譯" -#: ../source/specifications/simple-repository-api.rst:713 +#: ../source/specifications/simple-repository-api.rst:715 msgid "" "Now that there is multiple possible serializations, we need a mechanism to " "allow clients to indicate what serialization formats they're able to " @@ -23091,65 +23009,65 @@ msgid "" "expecting the previous API version." msgstr "" -#: ../source/specifications/simple-repository-api.rst:718 +#: ../source/specifications/simple-repository-api.rst:720 msgid "" "To enable this, this spec standardizes on the use of HTTP's `Server-Driven " "Content Negotiation `_." msgstr "" -#: ../source/specifications/simple-repository-api.rst:721 +#: ../source/specifications/simple-repository-api.rst:723 msgid "" "While this spec won't fully describe the entirety of server-driven content " "negotiation, the flow is roughly:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:724 +#: ../source/specifications/simple-repository-api.rst:726 msgid "" "The client makes an HTTP request containing an ``Accept`` header listing all " "of the version+format content types that they are able to understand." msgstr "" -#: ../source/specifications/simple-repository-api.rst:726 +#: ../source/specifications/simple-repository-api.rst:728 msgid "" "The server inspects that header, selects one of the listed content types, " "then returns a response using that content type (treating the absence of an " "``Accept`` header as ``Accept: */*``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:729 +#: ../source/specifications/simple-repository-api.rst:731 msgid "" "If the server does not support any of the content types in the ``Accept`` " "header then they are able to choose between 3 different options for how to " "respond:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:733 +#: ../source/specifications/simple-repository-api.rst:735 msgid "" "Select a default content type other than what the client has requested and " "return a response with that." msgstr "" -#: ../source/specifications/simple-repository-api.rst:735 +#: ../source/specifications/simple-repository-api.rst:737 msgid "" "Return a HTTP ``406 Not Acceptable`` response to indicate that none of the " "requested content types were available, and the server was unable or " "unwilling to select a default content type to respond with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:738 +#: ../source/specifications/simple-repository-api.rst:740 msgid "" "Return a HTTP ``300 Multiple Choices`` response that contains a list of all " "of the possible responses that could have been chosen." msgstr "" -#: ../source/specifications/simple-repository-api.rst:740 +#: ../source/specifications/simple-repository-api.rst:742 msgid "" "The client interprets the response, handling the different types of " "responses that the server may have responded with." msgstr "" -#: ../source/specifications/simple-repository-api.rst:743 +#: ../source/specifications/simple-repository-api.rst:745 msgid "" "This spec does not specify which choices the server makes in regards to " "handling a content type that it isn't able to return, and clients **SHOULD** " @@ -23157,7 +23075,7 @@ msgid "" "the most sense for that client." msgstr "" -#: ../source/specifications/simple-repository-api.rst:748 +#: ../source/specifications/simple-repository-api.rst:750 msgid "" "However, as there is no standard format for how a ``300 Multiple Choices`` " "response can be interpreted, this spec highly discourages servers from " @@ -23168,7 +23086,7 @@ msgid "" "error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:755 +#: ../source/specifications/simple-repository-api.rst:757 msgid "" "This spec **does** require that if the meta version ``latest`` is being " "used, the server **MUST** respond with the content type for the actual " @@ -23177,33 +23095,33 @@ msgid "" "should have a ``Content-Type`` of ``application/vnd.pypi.simple.v1+json``)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:762 +#: ../source/specifications/simple-repository-api.rst:764 msgid "" "The ``Accept`` header is a comma separated list of content types that the " "client understands and is able to process. It supports three different " "formats for each content type that is being requested:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:766 +#: ../source/specifications/simple-repository-api.rst:768 msgid "``$type/$subtype``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:767 +#: ../source/specifications/simple-repository-api.rst:769 msgid "``$type/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:768 +#: ../source/specifications/simple-repository-api.rst:770 msgid "``*/*``" msgstr "" -#: ../source/specifications/simple-repository-api.rst:770 +#: ../source/specifications/simple-repository-api.rst:772 msgid "" "For the use of selecting a version+format, the most useful of these is " "``$type/$subtype``, as that is the only way to actually specify the version " "and format you want." msgstr "" -#: ../source/specifications/simple-repository-api.rst:774 +#: ../source/specifications/simple-repository-api.rst:776 msgid "" "The order of the content types listed in the ``Accept`` header does not have " "any specific meaning, and the server **SHOULD** consider all of them to be " @@ -23213,7 +23131,7 @@ msgid "" "Quality_values>`_ syntax." msgstr "" -#: ../source/specifications/simple-repository-api.rst:781 +#: ../source/specifications/simple-repository-api.rst:783 msgid "" "This allows a client to specify a priority for a specific entry in their " "``Accept`` header, by appending a ``;q=`` followed by a value between ``0`` " @@ -23223,7 +23141,7 @@ msgid "" "quality of ``1``." msgstr "" -#: ../source/specifications/simple-repository-api.rst:787 +#: ../source/specifications/simple-repository-api.rst:789 msgid "" "However, clients should keep in mind that a server is free to select **any** " "of the content types they've asked for, regardless of their requested " @@ -23231,7 +23149,7 @@ msgid "" "for." msgstr "" -#: ../source/specifications/simple-repository-api.rst:791 +#: ../source/specifications/simple-repository-api.rst:793 msgid "" "To aid clients in determining the content type of the response that they " "have received from an API request, this spec requires that servers always " @@ -23242,22 +23160,22 @@ msgid "" "collector.py#L123-L150>`_ so the risks for actual breakages is low." msgstr "" -#: ../source/specifications/simple-repository-api.rst:798 +#: ../source/specifications/simple-repository-api.rst:800 msgid "An example of how a client can operate would look like:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:849 +#: ../source/specifications/simple-repository-api.rst:851 msgid "" "If a client wishes to only support HTML or only support JSON, then they " "would just remove the content types that they do not want from the " "``Accept`` header, and turn receiving them into an error." msgstr "" -#: ../source/specifications/simple-repository-api.rst:855 +#: ../source/specifications/simple-repository-api.rst:857 msgid "Alternative Negotiation Mechanisms" msgstr "" -#: ../source/specifications/simple-repository-api.rst:857 +#: ../source/specifications/simple-repository-api.rst:859 msgid "" "While using HTTP's Content negotiation is considered the standard way for a " "client and server to coordinate to ensure that the client is getting an HTTP " @@ -23266,25 +23184,25 @@ msgid "" "negotiation mechanisms that may *optionally* be used instead." msgstr "" -#: ../source/specifications/simple-repository-api.rst:865 +#: ../source/specifications/simple-repository-api.rst:867 msgid "URL Parameter" msgstr "" -#: ../source/specifications/simple-repository-api.rst:867 +#: ../source/specifications/simple-repository-api.rst:869 msgid "" "Servers that implement the Simple API may choose to support a URL parameter " "named ``format`` to allow the clients to request a specific version of the " "URL." msgstr "" -#: ../source/specifications/simple-repository-api.rst:870 +#: ../source/specifications/simple-repository-api.rst:872 msgid "" "The value of the ``format`` parameter should be **one** of the valid content " "types. Passing multiple content types, wild cards, quality values, etc... is " "**not** supported." msgstr "" -#: ../source/specifications/simple-repository-api.rst:874 +#: ../source/specifications/simple-repository-api.rst:876 msgid "" "Supporting this parameter is optional, and clients **SHOULD NOT** rely on it " "for interacting with the API. This negotiation mechanism is intended to " @@ -23292,13 +23210,13 @@ msgid "" "allow documentation or notes to link to a specific version+format." msgstr "" -#: ../source/specifications/simple-repository-api.rst:879 +#: ../source/specifications/simple-repository-api.rst:881 msgid "" "Servers that do not support this parameter may choose to return an error " "when it is present, or they may simple ignore its presence." msgstr "" -#: ../source/specifications/simple-repository-api.rst:882 +#: ../source/specifications/simple-repository-api.rst:884 msgid "" "When a server does implement this parameter, it **SHOULD** take precedence " "over any values in the client's ``Accept`` header, and if the server does " @@ -23308,18 +23226,18 @@ msgid "" "``303 Multiple Choices``, or selecting a default type to return)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:891 +#: ../source/specifications/simple-repository-api.rst:893 msgid "Endpoint Configuration" msgstr "" -#: ../source/specifications/simple-repository-api.rst:893 +#: ../source/specifications/simple-repository-api.rst:895 msgid "" "This option technically is not a special option at all, it is just a natural " "consequence of using content negotiation and allowing servers to select " "which of the available content types is their default." msgstr "" -#: ../source/specifications/simple-repository-api.rst:897 +#: ../source/specifications/simple-repository-api.rst:899 msgid "" "If a server is unwilling or unable to implement the server-driven content " "negotiation, and would instead rather require users to explicitly configure " @@ -23327,7 +23245,7 @@ msgid "" "configuration." msgstr "" -#: ../source/specifications/simple-repository-api.rst:901 +#: ../source/specifications/simple-repository-api.rst:903 msgid "" "To enable this, a server should make multiple endpoints (for instance, ``/" "simple/v1+html/`` and/or ``/simple/v1+json/``) for each version+format that " @@ -23337,7 +23255,7 @@ msgid "" "and return the content type that corresponds to that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:908 +#: ../source/specifications/simple-repository-api.rst:910 msgid "" "For clients that wish to require specific configuration, they can keep track " "of which version+format a specific repository URL was configured for, and " @@ -23345,7 +23263,7 @@ msgid "" "includes the correct content type." msgstr "" -#: ../source/specifications/simple-repository-api.rst:916 +#: ../source/specifications/simple-repository-api.rst:918 msgid "" "This section is non-normative, and represents what the spec authors believe " "to be the best default implementation decisions for something implementing " @@ -23353,7 +23271,7 @@ msgid "" "these decisions." msgstr "" -#: ../source/specifications/simple-repository-api.rst:920 +#: ../source/specifications/simple-repository-api.rst:922 msgid "" "These decisions have been chosen to maximize the number of requests that can " "be moved onto the newest version of an API, while maintaining the greatest " @@ -23362,18 +23280,18 @@ msgid "" "choices it can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:925 +#: ../source/specifications/simple-repository-api.rst:927 msgid "It is recommended that servers:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:927 +#: ../source/specifications/simple-repository-api.rst:929 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can, or at least as long " "as they're receiving non trivial traffic that uses the HTML responses." msgstr "" -#: ../source/specifications/simple-repository-api.rst:931 +#: ../source/specifications/simple-repository-api.rst:933 msgid "" "When encountering an ``Accept`` header that does not contain any content " "types that it knows how to work with, the server should not ever return a " @@ -23381,13 +23299,13 @@ msgid "" "Acceptable`` response." msgstr "" -#: ../source/specifications/simple-repository-api.rst:936 +#: ../source/specifications/simple-repository-api.rst:938 msgid "" "However, if choosing to use the endpoint configuration, you should prefer to " "return a ``200 OK`` response in the expected content type for that endpoint." msgstr "" -#: ../source/specifications/simple-repository-api.rst:939 +#: ../source/specifications/simple-repository-api.rst:941 msgid "" "When selecting an acceptable version, the server should choose the highest " "version that the client supports, with the most expressive/featureful " @@ -23396,23 +23314,23 @@ msgid "" "should only use the ``text/html`` content type as a last resort." msgstr "" -#: ../source/specifications/simple-repository-api.rst:945 +#: ../source/specifications/simple-repository-api.rst:947 msgid "It is recommended that clients:" msgstr "" -#: ../source/specifications/simple-repository-api.rst:947 +#: ../source/specifications/simple-repository-api.rst:949 msgid "" "Support all 3 content types described in this spec, using server-driven " "content negotiation, for as long as they reasonably can." msgstr "" -#: ../source/specifications/simple-repository-api.rst:950 +#: ../source/specifications/simple-repository-api.rst:952 msgid "" "When constructing an ``Accept`` header, include all of the content types " "that you support." msgstr "" -#: ../source/specifications/simple-repository-api.rst:953 +#: ../source/specifications/simple-repository-api.rst:955 msgid "" "You should generally *not* include a quality priority value for your content " "types, unless you have implementation specific reasons that you want the " @@ -23421,79 +23339,79 @@ msgid "" "responses that you're unable to parse in some edge cases)." msgstr "" -#: ../source/specifications/simple-repository-api.rst:959 +#: ../source/specifications/simple-repository-api.rst:961 msgid "" "The one exception to this recommendation is that it is recommended that you " "*should* include a ``;q=0.01`` value on the legacy ``text/html`` content " "type, unless it is the only content type that you are requesting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:963 +#: ../source/specifications/simple-repository-api.rst:965 msgid "" "Explicitly select what versions they are looking for, rather than using the " "``latest`` meta version during normal operation." msgstr "" -#: ../source/specifications/simple-repository-api.rst:966 +#: ../source/specifications/simple-repository-api.rst:968 msgid "" "Check the ``Content-Type`` of the response and ensure it matches something " "that you were expecting." msgstr "" -#: ../source/specifications/simple-repository-api.rst:974 +#: ../source/specifications/simple-repository-api.rst:976 msgid "September 2015: initial form of the HTML format, in :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:975 +#: ../source/specifications/simple-repository-api.rst:977 msgid "July 2016: Requires-Python metadata, in an update to :pep:`503`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:976 +#: ../source/specifications/simple-repository-api.rst:978 msgid "May 2019: \"yank\" support, in :pep:`592`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:977 +#: ../source/specifications/simple-repository-api.rst:979 msgid "" "July 2020: API versioning convention and metadata, and declaring the HTML " "format as API v1, in :pep:`629`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:979 +#: ../source/specifications/simple-repository-api.rst:981 msgid "" "May 2021: providing package metadata independently from a package, " "in :pep:`658`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:981 +#: ../source/specifications/simple-repository-api.rst:983 msgid "" "May 2022: initial form of the JSON format, with a mechanism for clients to " "choose between them, and declaring both formats as API v1, in :pep:`691`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:983 +#: ../source/specifications/simple-repository-api.rst:985 msgid "" "October 2022: project versions and file size and upload-time in the JSON " "format, in :pep:`700`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:985 +#: ../source/specifications/simple-repository-api.rst:987 msgid "" "June 2023: renaming the field which provides package metadata independently " "from a package, in :pep:`714`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:987 +#: ../source/specifications/simple-repository-api.rst:989 msgid "" "November 2024: provenance metadata in the HTML and JSON formats, " "in :pep:`740`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:988 +#: ../source/specifications/simple-repository-api.rst:990 msgid "" "July 2025: project status markers in the HTML and JSON formats, in :pep:`792`" msgstr "" -#: ../source/specifications/simple-repository-api.rst:989 +#: ../source/specifications/simple-repository-api.rst:991 msgid "" "July 2025: layout changes (dedicated page for file yanking, introduce " "concepts before API details)" @@ -23771,7 +23689,7 @@ msgid "" msgstr "" #: ../source/specifications/version-specifiers.rst:7 -#: ../source/specifications/version-specifiers.rst:785 +#: ../source/specifications/version-specifiers.rst:800 msgid "Version specifiers" msgstr "" @@ -24300,11 +24218,33 @@ msgid "" "from an earlier epoch::" msgstr "" -#: ../source/specifications/version-specifiers.rst:401 +#: ../source/specifications/version-specifiers.rst:399 +msgid "" +"Use of nonzero epochs is discouraged. They are often not supported or " +"discouraged by downstream packaging where Python packages may need to be " +"consumed, and due to their scarce use they may also not be well supported by " +"Python packaging tools." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:404 +msgid "" +"When version scheme needs to be changed, it is preferable to continue with " +"monotonically increasing numbers in epoch zero. For example, the version " +"2026.x could be unambiguously followed by 3000.x." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:408 +msgid "" +"See `Discouraging use of epoch segments in versions `__ for the relevant discussion." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:416 msgid "Normalization" msgstr "正規化" -#: ../source/specifications/version-specifiers.rst:403 +#: ../source/specifications/version-specifiers.rst:418 msgid "" "In order to maintain better compatibility with existing versions there are a " "number of \"alternative\" syntaxes that MUST be taken into account when " @@ -24312,23 +24252,23 @@ msgid "" "however they should be \"normalized\" to the standard syntax defined above." msgstr "" -#: ../source/specifications/version-specifiers.rst:410 +#: ../source/specifications/version-specifiers.rst:425 msgid "Case sensitivity" msgstr "" -#: ../source/specifications/version-specifiers.rst:412 +#: ../source/specifications/version-specifiers.rst:427 msgid "" "All ascii letters should be interpreted case insensitively within a version " "and the normal form is lowercase. This allows versions such as ``1.1RC1`` " "which would be normalized to ``1.1rc1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:418 +#: ../source/specifications/version-specifiers.rst:433 #, fuzzy msgid "Integer Normalization" msgstr "翻譯" -#: ../source/specifications/version-specifiers.rst:420 +#: ../source/specifications/version-specifiers.rst:435 msgid "" "All integers are interpreted via the ``int()`` built in and normalize to the " "string form of the output. This means that an integer version of ``00`` " @@ -24337,11 +24277,11 @@ msgid "" "version such as ``1.0+foo0100`` which is already in its normalized form." msgstr "" -#: ../source/specifications/version-specifiers.rst:428 +#: ../source/specifications/version-specifiers.rst:443 msgid "Pre-release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:430 +#: ../source/specifications/version-specifiers.rst:445 msgid "" "Pre-releases should allow a ``.``, ``-``, or ``_`` separator between the " "release segment and the pre-release segment. The normal form for this is " @@ -24351,11 +24291,11 @@ msgid "" "versions such as ``1.0a.1`` which would be normalized to ``1.0a1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:439 +#: ../source/specifications/version-specifiers.rst:454 msgid "Pre-release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:441 +#: ../source/specifications/version-specifiers.rst:456 msgid "" "Pre-releases allow the additional spellings of ``alpha``, ``beta``, ``c``, " "``pre``, and ``preview`` for ``a``, ``b``, ``rc``, ``rc``, and ``rc`` " @@ -24365,11 +24305,11 @@ msgid "" "forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:450 +#: ../source/specifications/version-specifiers.rst:465 msgid "Implicit pre-release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:452 +#: ../source/specifications/version-specifiers.rst:467 msgid "" "Pre releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24377,11 +24317,11 @@ msgid "" "``1.2a0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:458 +#: ../source/specifications/version-specifiers.rst:473 msgid "Post release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:460 +#: ../source/specifications/version-specifiers.rst:475 msgid "" "Post releases allow a ``.``, ``-``, or ``_`` separator as well as omitting " "the separator all together. The normal form of this is with the ``.`` " @@ -24392,11 +24332,11 @@ msgid "" "``1.2.post2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:469 +#: ../source/specifications/version-specifiers.rst:484 msgid "Post release spelling" msgstr "" -#: ../source/specifications/version-specifiers.rst:471 +#: ../source/specifications/version-specifiers.rst:486 msgid "" "Post-releases allow the additional spellings of ``rev`` and ``r``. This " "allows versions such as ``1.0-r4`` which normalizes to ``1.0.post4``. As " @@ -24404,11 +24344,11 @@ msgid "" "equivalent to their normal forms." msgstr "" -#: ../source/specifications/version-specifiers.rst:478 +#: ../source/specifications/version-specifiers.rst:493 msgid "Implicit post release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:480 +#: ../source/specifications/version-specifiers.rst:495 msgid "" "Post releases allow omitting the numeral in which case it is implicitly " "assumed to be ``0``. The normal form for this is to include the ``0`` " @@ -24416,11 +24356,11 @@ msgid "" "``1.2.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:486 +#: ../source/specifications/version-specifiers.rst:501 msgid "Implicit post releases" msgstr "" -#: ../source/specifications/version-specifiers.rst:488 +#: ../source/specifications/version-specifiers.rst:503 msgid "" "Post releases allow omitting the ``post`` signifier all together. When using " "this form the separator MUST be ``-`` and no other form is allowed. This " @@ -24430,11 +24370,11 @@ msgid "" "and it does *not* normalize to ``1.0.post0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:497 +#: ../source/specifications/version-specifiers.rst:512 msgid "Development release separators" msgstr "" -#: ../source/specifications/version-specifiers.rst:499 +#: ../source/specifications/version-specifiers.rst:514 msgid "" "Development releases allow a ``.``, ``-``, or a ``_`` separator as well as " "omitting the separator all together. The normal form of this is with the " @@ -24442,11 +24382,11 @@ msgid "" "which normalize to ``1.2.dev2``." msgstr "" -#: ../source/specifications/version-specifiers.rst:506 +#: ../source/specifications/version-specifiers.rst:521 msgid "Implicit development release number" msgstr "" -#: ../source/specifications/version-specifiers.rst:508 +#: ../source/specifications/version-specifiers.rst:523 msgid "" "Development releases allow omitting the numeral in which case it is " "implicitly assumed to be ``0``. The normal form for this is to include the " @@ -24454,11 +24394,11 @@ msgid "" "normalized to ``1.2.dev0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:515 +#: ../source/specifications/version-specifiers.rst:530 msgid "Local version segments" msgstr "" -#: ../source/specifications/version-specifiers.rst:517 +#: ../source/specifications/version-specifiers.rst:532 msgid "" "With a local version, in addition to the use of ``.`` as a separator of " "segments, the use of ``-`` and ``_`` is also acceptable. The normal form is " @@ -24466,11 +24406,11 @@ msgid "" "be normalized to ``1.0+ubuntu.1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:524 +#: ../source/specifications/version-specifiers.rst:539 msgid "Preceding v character" msgstr "" -#: ../source/specifications/version-specifiers.rst:526 +#: ../source/specifications/version-specifiers.rst:541 msgid "" "In order to support the common version notation of ``v1.0`` versions may be " "preceded by a single literal ``v`` character. This character MUST be ignored " @@ -24479,11 +24419,11 @@ msgid "" "equivalent." msgstr "" -#: ../source/specifications/version-specifiers.rst:533 +#: ../source/specifications/version-specifiers.rst:548 msgid "Leading and Trailing Whitespace" msgstr "" -#: ../source/specifications/version-specifiers.rst:535 +#: ../source/specifications/version-specifiers.rst:550 msgid "" "Leading and trailing whitespace must be silently ignored and removed from " "all normalized forms of a version. This includes ``\" \"``, ``\\t``, " @@ -24492,11 +24432,11 @@ msgid "" "``1.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:542 +#: ../source/specifications/version-specifiers.rst:557 msgid "Examples of compliant version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:544 +#: ../source/specifications/version-specifiers.rst:559 msgid "" "The standard version scheme is designed to encompass a wide range of " "identification practices across public and private Python projects. In " @@ -24506,7 +24446,7 @@ msgid "" "ensure all compliant tools will order them consistently." msgstr "" -#: ../source/specifications/version-specifiers.rst:551 +#: ../source/specifications/version-specifiers.rst:566 msgid "" "The following examples illustrate a small selection of the different " "approaches projects may choose to identify their releases, while still " @@ -24514,69 +24454,69 @@ msgid "" "be easily determined, both by human users and automated tools." msgstr "" -#: ../source/specifications/version-specifiers.rst:556 +#: ../source/specifications/version-specifiers.rst:571 msgid "Simple \"major.minor\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:565 +#: ../source/specifications/version-specifiers.rst:580 msgid "Simple \"major.minor.micro\" versioning::" msgstr "" -#: ../source/specifications/version-specifiers.rst:573 +#: ../source/specifications/version-specifiers.rst:588 msgid "" "\"major.minor\" versioning with alpha, beta and candidate pre-releases::" msgstr "" -#: ../source/specifications/version-specifiers.rst:585 +#: ../source/specifications/version-specifiers.rst:600 msgid "" "\"major.minor\" versioning with developmental releases, release candidates " "and post-releases for minor corrections::" msgstr "" -#: ../source/specifications/version-specifiers.rst:600 +#: ../source/specifications/version-specifiers.rst:615 msgid "" "Date based releases, using an incrementing serial within each year, skipping " "zero::" msgstr "" -#: ../source/specifications/version-specifiers.rst:614 +#: ../source/specifications/version-specifiers.rst:629 msgid "Summary of permitted suffixes and relative ordering" msgstr "" -#: ../source/specifications/version-specifiers.rst:618 +#: ../source/specifications/version-specifiers.rst:633 msgid "" "This section is intended primarily for authors of tools that automatically " "process distribution metadata, rather than developers of Python " "distributions deciding on a versioning scheme." msgstr "" -#: ../source/specifications/version-specifiers.rst:622 +#: ../source/specifications/version-specifiers.rst:637 msgid "" "The epoch segment of version identifiers MUST be sorted according to the " "numeric value of the given epoch. If no epoch segment is present, the " "implicit numeric value is ``0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:626 +#: ../source/specifications/version-specifiers.rst:641 msgid "" "The release segment of version identifiers MUST be sorted in the same order " "as Python's tuple sorting when the normalized release segment is parsed as " "follows::" msgstr "" -#: ../source/specifications/version-specifiers.rst:632 +#: ../source/specifications/version-specifiers.rst:647 msgid "" "All release segments involved in the comparison MUST be converted to a " "consistent length by padding shorter segments with zeros as needed." msgstr "" -#: ../source/specifications/version-specifiers.rst:635 +#: ../source/specifications/version-specifiers.rst:650 msgid "" "Within a numeric release (``1.0``, ``2.7.3``), the following suffixes are " "permitted and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:640 +#: ../source/specifications/version-specifiers.rst:655 msgid "" "Note that ``c`` is considered to be semantically equivalent to ``rc`` and " "must be sorted as if it were ``rc``. Tools MAY reject the case of having the " @@ -24584,48 +24524,48 @@ msgid "" "ambiguous and remain in compliance with the specification." msgstr "" -#: ../source/specifications/version-specifiers.rst:645 +#: ../source/specifications/version-specifiers.rst:660 msgid "" "Within an alpha (``1.0a1``), beta (``1.0b1``), or release candidate " "(``1.0rc1``, ``1.0c1``), the following suffixes are permitted and MUST be " "ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:651 +#: ../source/specifications/version-specifiers.rst:666 msgid "" "Within a post-release (``1.0.post1``), the following suffixes are permitted " "and MUST be ordered as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:656 +#: ../source/specifications/version-specifiers.rst:671 msgid "" "Note that ``devN`` and ``postN`` MUST always be preceded by a dot, even when " "used immediately following a numeric version (e.g. ``1.0.dev456``, " "``1.0.post1``)." msgstr "" -#: ../source/specifications/version-specifiers.rst:660 +#: ../source/specifications/version-specifiers.rst:675 msgid "" "Within a pre-release, post-release or development release segment with a " "shared prefix, ordering MUST be by the value of the numeric component." msgstr "" -#: ../source/specifications/version-specifiers.rst:663 +#: ../source/specifications/version-specifiers.rst:678 msgid "The following example covers many of the possible combinations::" msgstr "" -#: ../source/specifications/version-specifiers.rst:688 +#: ../source/specifications/version-specifiers.rst:703 msgid "Version ordering across different metadata versions" msgstr "" -#: ../source/specifications/version-specifiers.rst:690 +#: ../source/specifications/version-specifiers.rst:705 msgid "" "Metadata v1.0 (:pep:`241`) and metadata v1.1 (:pep:`314`) do not specify a " "standard version identification or ordering scheme. However metadata v1.2 " "(:pep:`345`) does specify a scheme which is defined in :pep:`386`." msgstr "" -#: ../source/specifications/version-specifiers.rst:694 +#: ../source/specifications/version-specifiers.rst:709 msgid "" "Due to the nature of the simple installer API it is not possible for an " "installer to be aware of which metadata version a particular distribution " @@ -24636,7 +24576,7 @@ msgid "" "be used for all versions of a project." msgstr "" -#: ../source/specifications/version-specifiers.rst:702 +#: ../source/specifications/version-specifiers.rst:717 msgid "" "Due to the above, this specification MUST be used for all versions of " "metadata and supersedes :pep:`386` even for metadata v1.2. Tools SHOULD " @@ -24646,17 +24586,17 @@ msgid "" "available." msgstr "" -#: ../source/specifications/version-specifiers.rst:708 +#: ../source/specifications/version-specifiers.rst:723 msgid "" "Distribution users may wish to explicitly remove non-compliant versions from " "any private package indexes they control." msgstr "" -#: ../source/specifications/version-specifiers.rst:713 +#: ../source/specifications/version-specifiers.rst:728 msgid "Compatibility with other version schemes" msgstr "" -#: ../source/specifications/version-specifiers.rst:715 +#: ../source/specifications/version-specifiers.rst:730 msgid "" "Some projects may choose to use a version scheme which requires translation " "in order to comply with the public version scheme defined in this " @@ -24665,14 +24605,14 @@ msgid "" "field." msgstr "" -#: ../source/specifications/version-specifiers.rst:720 +#: ../source/specifications/version-specifiers.rst:735 msgid "" "This allows automated distribution tools to provide consistently correct " "ordering of published releases, while still allowing developers to use the " "internal versioning scheme they prefer for their projects." msgstr "" -#: ../source/specifications/version-specifiers.rst:728 +#: ../source/specifications/version-specifiers.rst:743 msgid "" "`Semantic versioning`_ is a popular version identification scheme that is " "more prescriptive than this specification regarding the significance of " @@ -24683,7 +24623,7 @@ msgid "" "on." msgstr "" -#: ../source/specifications/version-specifiers.rst:735 +#: ../source/specifications/version-specifiers.rst:750 msgid "" "The \"Major.Minor.Patch\" (described in this specification as " "\"major.minor.micro\") aspects of semantic versioning (clauses 1-8 in the " @@ -24691,30 +24631,30 @@ msgid "" "this specification, and abiding by these aspects is encouraged." msgstr "" -#: ../source/specifications/version-specifiers.rst:740 +#: ../source/specifications/version-specifiers.rst:755 msgid "" "Semantic versions containing a hyphen (pre-releases - clause 10) or a plus " "sign (builds - clause 11) are *not* compatible with this specification and " "are not permitted in the public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:744 +#: ../source/specifications/version-specifiers.rst:759 msgid "" "One possible mechanism to translate such semantic versioning based source " "labels to compatible public versions is to use the ``.devN`` suffix to " "specify the appropriate version order." msgstr "" -#: ../source/specifications/version-specifiers.rst:748 +#: ../source/specifications/version-specifiers.rst:763 msgid "" "Specific build information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:754 +#: ../source/specifications/version-specifiers.rst:769 msgid "DVCS based version labels" msgstr "" -#: ../source/specifications/version-specifiers.rst:756 +#: ../source/specifications/version-specifiers.rst:771 msgid "" "Many build tools integrate with distributed version control systems like Git " "and Mercurial in order to add an identifying hash to the version identifier. " @@ -24722,30 +24662,30 @@ msgid "" "public version field." msgstr "" -#: ../source/specifications/version-specifiers.rst:761 +#: ../source/specifications/version-specifiers.rst:776 msgid "" "As with semantic versioning, the public ``.devN`` suffix may be used to " "uniquely identify such releases for publication, while the original DVCS " "based label can be stored in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:765 +#: ../source/specifications/version-specifiers.rst:780 msgid "" "Identifying hash information may also be included in local version labels." msgstr "" -#: ../source/specifications/version-specifiers.rst:769 +#: ../source/specifications/version-specifiers.rst:784 msgid "Olson database versioning" msgstr "" -#: ../source/specifications/version-specifiers.rst:771 +#: ../source/specifications/version-specifiers.rst:786 msgid "" "The ``pytz`` project inherits its versioning scheme from the corresponding " "Olson timezone database versioning scheme: the year followed by a lowercase " "character indicating the version of the database within that year." msgstr "" -#: ../source/specifications/version-specifiers.rst:775 +#: ../source/specifications/version-specifiers.rst:790 msgid "" "This can be translated to a compliant public version identifier as ``." "``, where the serial starts at zero or one (for the 'a' " @@ -24753,60 +24693,60 @@ msgid "" "year." msgstr "" -#: ../source/specifications/version-specifiers.rst:780 +#: ../source/specifications/version-specifiers.rst:795 msgid "" "As with other translated version identifiers, the corresponding Olson " "database version could be recorded in the project metadata." msgstr "" -#: ../source/specifications/version-specifiers.rst:787 +#: ../source/specifications/version-specifiers.rst:802 msgid "" "A version specifier consists of a series of version clauses, separated by " "commas. For example::" msgstr "" -#: ../source/specifications/version-specifiers.rst:792 +#: ../source/specifications/version-specifiers.rst:807 msgid "The comparison operator determines the kind of version clause:" msgstr "" -#: ../source/specifications/version-specifiers.rst:794 +#: ../source/specifications/version-specifiers.rst:809 msgid "``~=``: `Compatible release`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:795 +#: ../source/specifications/version-specifiers.rst:810 msgid "``==``: `Version matching`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:796 +#: ../source/specifications/version-specifiers.rst:811 msgid "``!=``: `Version exclusion`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:797 +#: ../source/specifications/version-specifiers.rst:812 msgid "``<=``, ``>=``: `Inclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:798 +#: ../source/specifications/version-specifiers.rst:813 msgid "``<``, ``>``: `Exclusive ordered comparison`_ clause" msgstr "" -#: ../source/specifications/version-specifiers.rst:799 +#: ../source/specifications/version-specifiers.rst:814 msgid "``===``: `Arbitrary equality`_ clause." msgstr "" -#: ../source/specifications/version-specifiers.rst:801 +#: ../source/specifications/version-specifiers.rst:816 msgid "" "The comma (\",\") is equivalent to a logical **and** operator: a candidate " "version must match all given version clauses in order to match the specifier " "as a whole." msgstr "" -#: ../source/specifications/version-specifiers.rst:805 +#: ../source/specifications/version-specifiers.rst:820 msgid "" "Whitespace between a conditional operator and the following version " "identifier is optional, as is the whitespace around the commas." msgstr "" -#: ../source/specifications/version-specifiers.rst:808 +#: ../source/specifications/version-specifiers.rst:823 msgid "" "When multiple candidate versions match a version specifier, the preferred " "version SHOULD be the latest version as determined by the consistent " @@ -24815,79 +24755,79 @@ msgid "" "in `Handling of pre-releases`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:814 +#: ../source/specifications/version-specifiers.rst:829 msgid "" "Except where specifically noted below, local version identifiers MUST NOT be " "permitted in version specifiers, and local version labels MUST be ignored " "entirely when checking if candidate versions match a given version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:823 +#: ../source/specifications/version-specifiers.rst:838 msgid "Compatible release" msgstr "" -#: ../source/specifications/version-specifiers.rst:825 +#: ../source/specifications/version-specifiers.rst:840 msgid "" "A compatible release clause consists of the compatible release operator " "``~=`` and a version identifier. It matches any candidate version that is " "expected to be compatible with the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:829 +#: ../source/specifications/version-specifiers.rst:844 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_. Local version identifiers are NOT permitted in this " "version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:833 +#: ../source/specifications/version-specifiers.rst:848 msgid "" "For a given release identifier ``V.N``, the compatible release clause is " "approximately equivalent to the pair of comparison clauses::" msgstr "" -#: ../source/specifications/version-specifiers.rst:838 +#: ../source/specifications/version-specifiers.rst:853 msgid "" "This operator MUST NOT be used with a single segment version number such as " "``~=1``." msgstr "" -#: ../source/specifications/version-specifiers.rst:841 +#: ../source/specifications/version-specifiers.rst:856 msgid "For example, the following groups of version clauses are equivalent::" msgstr "" -#: ../source/specifications/version-specifiers.rst:849 +#: ../source/specifications/version-specifiers.rst:864 msgid "" "If a pre-release, post-release or developmental release is named in a " "compatible release clause as ``V.N.suffix``, then the suffix is ignored when " "determining the required prefix match::" msgstr "" -#: ../source/specifications/version-specifiers.rst:859 +#: ../source/specifications/version-specifiers.rst:874 msgid "" "The padding rules for release segment comparisons means that the assumed " "degree of forward compatibility in a compatible release clause can be " "controlled by appending additional zeros to the version specifier::" msgstr "" -#: ../source/specifications/version-specifiers.rst:871 +#: ../source/specifications/version-specifiers.rst:886 msgid "Version matching" msgstr "" -#: ../source/specifications/version-specifiers.rst:873 +#: ../source/specifications/version-specifiers.rst:888 msgid "" "A version matching clause includes the version matching operator ``==`` and " "a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:876 +#: ../source/specifications/version-specifiers.rst:891 msgid "" "The specified version identifier must be in the standard format described in " "`Version scheme`_, but a trailing ``.*`` is permitted on public version " "identifiers as described below." msgstr "" -#: ../source/specifications/version-specifiers.rst:880 +#: ../source/specifications/version-specifiers.rst:895 msgid "" "By default, the version matching operator is based on a strict equality " "comparison: the specified version must be exactly the same as the requested " @@ -24896,7 +24836,7 @@ msgid "" "length." msgstr "" -#: ../source/specifications/version-specifiers.rst:886 +#: ../source/specifications/version-specifiers.rst:901 msgid "" "Whether or not strict version matching is appropriate depends on the " "specific use case for the version specifier. Automated tools SHOULD at least " @@ -24904,7 +24844,7 @@ msgid "" "used inappropriately." msgstr "" -#: ../source/specifications/version-specifiers.rst:891 +#: ../source/specifications/version-specifiers.rst:906 msgid "" "Prefix matching may be requested instead of strict comparison, by appending " "a trailing ``.*`` to the version identifier in the version matching clause. " @@ -24914,21 +24854,21 @@ msgid "" "(or the lack thereof) in the release segment are also ignored." msgstr "" -#: ../source/specifications/version-specifiers.rst:898 -#: ../source/specifications/version-specifiers.rst:959 +#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:974 msgid "" "For example, given the version ``1.1.post1``, the following clauses would " "match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:905 +#: ../source/specifications/version-specifiers.rst:920 msgid "" "For purposes of prefix matching, the pre-release segment is considered to " "have an implied preceding ``.``, so given the version ``1.1a1``, the " "following clauses would match or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:913 +#: ../source/specifications/version-specifiers.rst:928 msgid "" "An exact match is also considered a prefix match (this interpretation is " "implied by the usual zero padding rules for the release segment of version " @@ -24936,7 +24876,7 @@ msgid "" "or not as shown::" msgstr "" -#: ../source/specifications/version-specifiers.rst:925 +#: ../source/specifications/version-specifiers.rst:940 msgid "" "It is invalid to have a prefix match containing a development or local " "release such as ``1.0.dev1.*`` or ``1.0+foo1.*``. If present, the " @@ -24945,7 +24885,7 @@ msgid "" "either in a prefix match wouldn't make any sense." msgstr "" -#: ../source/specifications/version-specifiers.rst:931 +#: ../source/specifications/version-specifiers.rst:946 msgid "" "The use of ``==`` (without at least the wildcard suffix) when defining " "dependencies for published distributions is strongly discouraged as it " @@ -24955,14 +24895,14 @@ msgid "" "distribution index." msgstr "" -#: ../source/specifications/version-specifiers.rst:938 +#: ../source/specifications/version-specifiers.rst:953 msgid "" "If the specified version identifier is a public version identifier (no local " "version label), then the local version label of any candidate versions MUST " "be ignored when matching versions." msgstr "" -#: ../source/specifications/version-specifiers.rst:942 +#: ../source/specifications/version-specifiers.rst:957 msgid "" "If the specified version identifier is a local version identifier, then the " "local version labels of candidate versions MUST be considered when matching " @@ -24971,29 +24911,29 @@ msgid "" "strict string equality comparison." msgstr "" -#: ../source/specifications/version-specifiers.rst:950 +#: ../source/specifications/version-specifiers.rst:965 #, fuzzy msgid "Version exclusion" msgstr "翻譯" -#: ../source/specifications/version-specifiers.rst:952 +#: ../source/specifications/version-specifiers.rst:967 msgid "" "A version exclusion clause includes the version exclusion operator ``!=`` " "and a version identifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:955 +#: ../source/specifications/version-specifiers.rst:970 msgid "" "The allowed version identifiers and comparison semantics are the same as " "those of the `Version matching`_ operator, except that the sense of any " "match is inverted." msgstr "" -#: ../source/specifications/version-specifiers.rst:968 +#: ../source/specifications/version-specifiers.rst:983 msgid "Inclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:970 +#: ../source/specifications/version-specifiers.rst:985 msgid "" "An inclusive ordered comparison clause includes a comparison operator and a " "version identifier, and will match any version where the comparison is " @@ -25002,27 +24942,27 @@ msgid "" "`Version scheme`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:976 +#: ../source/specifications/version-specifiers.rst:991 msgid "The inclusive ordered comparison operators are ``<=`` and ``>=``." msgstr "" -#: ../source/specifications/version-specifiers.rst:978 -#: ../source/specifications/version-specifiers.rst:1008 +#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1023 msgid "" "As with version matching, the release segment is zero padded as necessary to " "ensure the release segments are compared with the same length." msgstr "" -#: ../source/specifications/version-specifiers.rst:981 -#: ../source/specifications/version-specifiers.rst:1011 +#: ../source/specifications/version-specifiers.rst:996 +#: ../source/specifications/version-specifiers.rst:1026 msgid "Local version identifiers are NOT permitted in this version specifier." msgstr "" -#: ../source/specifications/version-specifiers.rst:985 +#: ../source/specifications/version-specifiers.rst:1000 msgid "Exclusive ordered comparison" msgstr "" -#: ../source/specifications/version-specifiers.rst:987 +#: ../source/specifications/version-specifiers.rst:1002 msgid "" "The exclusive ordered comparisons ``>`` and ``<`` are similar to the " "inclusive ordered comparisons in that they rely on the relative position of " @@ -25032,7 +24972,7 @@ msgid "" "specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:993 +#: ../source/specifications/version-specifiers.rst:1008 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** allow a post-release of " "the given version unless ``V`` itself is a post release. You may mandate " @@ -25042,13 +24982,13 @@ msgid "" "and ``1.7.0.post3`` but not ``1.7.0``." msgstr "" -#: ../source/specifications/version-specifiers.rst:1000 +#: ../source/specifications/version-specifiers.rst:1015 msgid "" "The exclusive ordered comparison ``>V`` **MUST NOT** match a local version " "of the specified version." msgstr "" -#: ../source/specifications/version-specifiers.rst:1003 +#: ../source/specifications/version-specifiers.rst:1018 msgid "" "The exclusive ordered comparison ``=`` entry as part " "of the URL fragment." msgstr "" -#: ../source/specifications/version-specifiers.rst:1132 +#: ../source/specifications/version-specifiers.rst:1148 msgid "" "For version control references, the ``VCS+protocol`` scheme SHOULD be used " "to identify both the version control system and the secure transport, and a " @@ -25268,7 +25210,7 @@ msgid "" "systems that do not provide hash based commit identifiers." msgstr "" -#: ../source/specifications/version-specifiers.rst:1138 +#: ../source/specifications/version-specifiers.rst:1154 msgid "" "To handle version control systems that do not support including commit or " "tag references directly in the URL, that information may be appended to the " @@ -25276,7 +25218,7 @@ msgid "" "notation." msgstr "" -#: ../source/specifications/version-specifiers.rst:1145 +#: ../source/specifications/version-specifiers.rst:1161 msgid "" "This isn't *quite* the same as the existing VCS reference notation supported " "by pip. Firstly, the distribution name is moved in front rather than " @@ -25287,15 +25229,15 @@ msgid "" "*hash*, less so)." msgstr "" -#: ../source/specifications/version-specifiers.rst:1153 +#: ../source/specifications/version-specifiers.rst:1169 msgid "Remote URL examples::" msgstr "" -#: ../source/specifications/version-specifiers.rst:1161 +#: ../source/specifications/version-specifiers.rst:1177 msgid "File URLs" msgstr "" -#: ../source/specifications/version-specifiers.rst:1163 +#: ../source/specifications/version-specifiers.rst:1179 msgid "" "File URLs take the form of ``file:///``. If the ```` is " "omitted it is assumed to be ``localhost`` and even if the ```` is " @@ -25303,7 +25245,7 @@ msgid "" "file path on the filesystem that is to be accessed." msgstr "" -#: ../source/specifications/version-specifiers.rst:1168 +#: ../source/specifications/version-specifiers.rst:1184 msgid "" "On the various \\*nix operating systems the only allowed values for " "```` is for it to be omitted, ``localhost``, or another FQDN that the " @@ -25311,7 +25253,7 @@ msgid "" "``file://`` scheme can only be used to access paths on the local machine." msgstr "" -#: ../source/specifications/version-specifiers.rst:1173 +#: ../source/specifications/version-specifiers.rst:1189 msgid "" "On Windows the file format should include the drive letter if applicable as " "part of the ```` (e.g. ``file:///c:/path/to/a/file``). Unlike \\*nix " @@ -25323,43 +25265,43 @@ msgid "" "b/ie/archive/2006/12/06/file-uris-in-windows.aspx>`_." msgstr "" -#: ../source/specifications/version-specifiers.rst:1184 +#: ../source/specifications/version-specifiers.rst:1200 msgid "Summary of differences from pkg_resources.parse_version" msgstr "" -#: ../source/specifications/version-specifiers.rst:1186 +#: ../source/specifications/version-specifiers.rst:1202 msgid "" "Note: this comparison is to ``pkg_resources.parse_version`` as it existed at " "the time :pep:`440` was written. After the PEP was accepted, setuptools 6.0 " "and later versions adopted the behaviour described here." msgstr "" -#: ../source/specifications/version-specifiers.rst:1190 +#: ../source/specifications/version-specifiers.rst:1206 msgid "" "Local versions sort differently, this specification requires that they sort " "as greater than the same version without a local version, whereas " "``pkg_resources.parse_version`` considers it a pre-release marker." msgstr "" -#: ../source/specifications/version-specifiers.rst:1194 +#: ../source/specifications/version-specifiers.rst:1210 msgid "" "This specification purposely restricts the syntax which constitutes a valid " "version while ``pkg_resources.parse_version`` attempts to provide some " "meaning from *any* arbitrary string." msgstr "" -#: ../source/specifications/version-specifiers.rst:1198 +#: ../source/specifications/version-specifiers.rst:1214 msgid "" "``pkg_resources.parse_version`` allows arbitrarily deeply nested version " "signifiers like ``1.0.dev1.post1.dev5``. This specification however allows " "only a single use of each type and they must exist in a certain order." msgstr "" -#: ../source/specifications/version-specifiers.rst:1207 +#: ../source/specifications/version-specifiers.rst:1223 msgid "Appendix: Parsing version strings with regular expressions" msgstr "" -#: ../source/specifications/version-specifiers.rst:1209 +#: ../source/specifications/version-specifiers.rst:1225 msgid "" "As noted earlier in the :ref:`public-version-identifiers` section, published " "version identifiers SHOULD use the canonical format. This section provides " @@ -25368,29 +25310,37 @@ msgid "" "normalization." msgstr "" -#: ../source/specifications/version-specifiers.rst:1215 +#: ../source/specifications/version-specifiers.rst:1231 msgid "" "To test whether a version identifier is in the canonical format, you can use " "the following function:" msgstr "" -#: ../source/specifications/version-specifiers.rst:1224 +#: ../source/specifications/version-specifiers.rst:1240 msgid "" "To extract the components of a version identifier, use the following regular " "expression (as defined by the `packaging `_ project):" msgstr "" -#: ../source/specifications/version-specifiers.rst:1271 +#: ../source/specifications/version-specifiers.rst:1287 msgid "August 2014: This specification was approved through :pep:`440`." msgstr "" -#: ../source/specifications/version-specifiers.rst:1272 +#: ../source/specifications/version-specifiers.rst:1288 msgid "" "May 2025: Clarify that development releases are a form of pre-release when " "they are handled." msgstr "" +#: ../source/specifications/version-specifiers.rst:1290 +msgid "Nov 2025: Make arbitrary equality case insensitivity explicit." +msgstr "" + +#: ../source/specifications/version-specifiers.rst:1291 +msgid "Jan 2026: The use of epochs was discouraged." +msgstr "" + #: ../source/specifications/virtual-environments.rst:6 msgid "Python Virtual Environments" msgstr "" @@ -26761,7 +26711,7 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:222 msgid "" "``license`` is the :term:`SPDX license expression ` of " -"your package." +"your :term:`Distribution Archive` files." msgstr "" #: ../source/tutorials/packaging-projects.rst:224 @@ -26800,11 +26750,12 @@ msgstr "" #: ../source/tutorials/packaging-projects.rst:253 msgid "" -"It's important for every package uploaded to the Python Package Index to " -"include a license. This tells users who install your package the terms under " -"which they can use your package. For help picking a license, see https://" -"choosealicense.com/. Once you have chosen a license, open :file:`LICENSE` " -"and enter the license text. For example, if you had chosen the MIT license:" +"It's important for every :term:`Distribution Archive` uploaded to the Python " +"Package Index to include a license. This tells users who install " +"your :term:`Distribution Archive` the terms under which they can use it. For " +"help picking a license, see https://choosealicense.com/. Once you have " +"chosen a license, open :file:`LICENSE` and enter the license text. For " +"example, if you had chosen the MIT license:" msgstr "" #: ../source/tutorials/packaging-projects.rst:282 @@ -27062,6 +27013,17 @@ msgid "" "the file is empty)." msgstr "" +#, fuzzy +#~ msgid "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-json-web-signature-json-" +#~ "serialization-01" +#~ msgstr "http://self-issued.info/docs/draft-jones-jose-json-private-key.html" + +#, fuzzy +#~ msgid "" +#~ "https://datatracker.ietf.org/doc/html/draft-jones-jose-json-private-key-01" +#~ msgstr "http://self-issued.info/docs/draft-jones-jose-json-private-key.html" + #, fuzzy #~| msgid "Project name" #~ msgid "**Inspiration**: :ref:` pyproject-tool-table`"