1329 lines
101 KiB
HTML
1329 lines
101 KiB
HTML
|
||
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<meta name="color-scheme" content="light dark">
|
||
<title>PEP 739 – Static description file for build details of Python installations | peps.python.org</title>
|
||
<link rel="shortcut icon" href="../_static/py.png">
|
||
<link rel="canonical" href="https://peps.python.org/pep-0739/">
|
||
<link rel="stylesheet" href="../_static/style.css" type="text/css">
|
||
<link rel="stylesheet" href="../_static/mq.css" type="text/css">
|
||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" media="(prefers-color-scheme: light)" id="pyg-light">
|
||
<link rel="stylesheet" href="../_static/pygments_dark.css" type="text/css" media="(prefers-color-scheme: dark)" id="pyg-dark">
|
||
<link rel="alternate" type="application/rss+xml" title="Latest PEPs" href="https://peps.python.org/peps.rss">
|
||
<meta property="og:title" content='PEP 739 – Static description file for build details of Python installations | peps.python.org'>
|
||
<meta property="og:description" content="Introduce a standard format for a static description file with build details of Python installations.">
|
||
<meta property="og:type" content="website">
|
||
<meta property="og:url" content="https://peps.python.org/pep-0739/">
|
||
<meta property="og:site_name" content="Python Enhancement Proposals (PEPs)">
|
||
<meta property="og:image" content="https://peps.python.org/_static/og-image.png">
|
||
<meta property="og:image:alt" content="Python PEPs">
|
||
<meta property="og:image:width" content="200">
|
||
<meta property="og:image:height" content="200">
|
||
<meta name="description" content="Introduce a standard format for a static description file with build details of Python installations.">
|
||
<meta name="theme-color" content="#3776ab">
|
||
</head>
|
||
<body>
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
|
||
<symbol id="svg-sun-half" viewBox="0 0 24 24" pointer-events="all">
|
||
<title>Following system colour scheme</title>
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"
|
||
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||
<circle cx="12" cy="12" r="9"></circle>
|
||
<path d="M12 3v18m0-12l4.65-4.65M12 14.3l7.37-7.37M12 19.6l8.85-8.85"></path>
|
||
</svg>
|
||
</symbol>
|
||
<symbol id="svg-moon" viewBox="0 0 24 24" pointer-events="all">
|
||
<title>Selected dark colour scheme</title>
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"
|
||
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z"></path>
|
||
</svg>
|
||
</symbol>
|
||
<symbol id="svg-sun" viewBox="0 0 24 24" pointer-events="all">
|
||
<title>Selected light colour scheme</title>
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"
|
||
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||
<circle cx="12" cy="12" r="5"></circle>
|
||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||
</svg>
|
||
</symbol>
|
||
</svg>
|
||
<script>
|
||
|
||
document.documentElement.dataset.colour_scheme = localStorage.getItem("colour_scheme") || "auto"
|
||
</script>
|
||
<section id="pep-page-section">
|
||
<header>
|
||
<h1>Python Enhancement Proposals</h1>
|
||
<ul class="breadcrumbs">
|
||
<li><a href="https://www.python.org/" title="The Python Programming Language">Python</a> » </li>
|
||
<li><a href="../pep-0000/">PEP Index</a> » </li>
|
||
<li>PEP 739</li>
|
||
</ul>
|
||
<button id="colour-scheme-cycler" onClick="setColourScheme(nextColourScheme())">
|
||
<svg aria-hidden="true" class="colour-scheme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
|
||
<svg aria-hidden="true" class="colour-scheme-icon-when-dark"><use href="#svg-moon"></use></svg>
|
||
<svg aria-hidden="true" class="colour-scheme-icon-when-light"><use href="#svg-sun"></use></svg>
|
||
<span class="visually-hidden">Toggle light / dark / auto colour theme</span>
|
||
</button>
|
||
</header>
|
||
<article>
|
||
<section id="pep-content">
|
||
<h1 class="page-title">PEP 739 – Static description file for build details of Python installations</h1>
|
||
<dl class="rfc2822 field-list simple">
|
||
<dt class="field-odd">Author<span class="colon">:</span></dt>
|
||
<dd class="field-odd">Filipe Laíns <lains at riseup.net></dd>
|
||
<dt class="field-even">PEP-Delegate<span class="colon">:</span></dt>
|
||
<dd class="field-even">Paul Moore <p.f.moore at gmail.com></dd>
|
||
<dt class="field-odd">Discussions-To<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><a class="reference external" href="https://discuss.python.org/t/pep-739-static-description-file-for-build-details-of-python-installations/44572">Discourse thread</a></dd>
|
||
<dt class="field-even">Status<span class="colon">:</span></dt>
|
||
<dd class="field-even"><abbr title="Proposal under active discussion and revision">Draft</abbr></dd>
|
||
<dt class="field-odd">Type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><abbr title="Normative PEP with a new feature for Python, implementation change for CPython or interoperability standard for the ecosystem">Standards Track</abbr></dd>
|
||
<dt class="field-even">Topic<span class="colon">:</span></dt>
|
||
<dd class="field-even"><a class="reference external" href="../topic/packaging/">Packaging</a></dd>
|
||
<dt class="field-odd">Created<span class="colon">:</span></dt>
|
||
<dd class="field-odd">19-Dec-2023</dd>
|
||
<dt class="field-even">Python-Version<span class="colon">:</span></dt>
|
||
<dd class="field-even">3.14</dd>
|
||
</dl>
|
||
<hr class="docutils" />
|
||
<section id="contents">
|
||
<details><summary>Table of Contents</summary><ul class="simple">
|
||
<li><a class="reference internal" href="#abstract">Abstract</a></li>
|
||
<li><a class="reference internal" href="#rationale">Rationale</a></li>
|
||
<li><a class="reference internal" href="#scope">Scope</a></li>
|
||
<li><a class="reference internal" href="#location">Location</a></li>
|
||
<li><a class="reference internal" href="#format">Format</a><ul>
|
||
<li><a class="reference internal" href="#schema-version"><code class="docutils literal notranslate"><span class="pre">schema_version</span></code></a></li>
|
||
<li><a class="reference internal" href="#base-prefix"><code class="docutils literal notranslate"><span class="pre">base_prefix</span></code></a></li>
|
||
<li><a class="reference internal" href="#platform"><code class="docutils literal notranslate"><span class="pre">platform</span></code></a></li>
|
||
<li><a class="reference internal" href="#language"><code class="docutils literal notranslate"><span class="pre">language</span></code></a><ul>
|
||
<li><a class="reference internal" href="#language-version"><code class="docutils literal notranslate"><span class="pre">language.version</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#implementation"><code class="docutils literal notranslate"><span class="pre">implementation</span></code></a><ul>
|
||
<li><a class="reference internal" href="#implementation-name"><code class="docutils literal notranslate"><span class="pre">implementation.name</span></code></a></li>
|
||
<li><a class="reference internal" href="#implementation-version"><code class="docutils literal notranslate"><span class="pre">implementation.version</span></code></a><ul>
|
||
<li><a class="reference internal" href="#implementation-version-major"><code class="docutils literal notranslate"><span class="pre">implementation.version.major</span></code></a></li>
|
||
<li><a class="reference internal" href="#implementation-version-minor"><code class="docutils literal notranslate"><span class="pre">implementation.version.minor</span></code></a></li>
|
||
<li><a class="reference internal" href="#implementation-version-micro"><code class="docutils literal notranslate"><span class="pre">implementation.version.micro</span></code></a></li>
|
||
<li><a class="reference internal" href="#implementation-version-releaselevel"><code class="docutils literal notranslate"><span class="pre">implementation.version.releaselevel</span></code></a></li>
|
||
<li><a class="reference internal" href="#implementation-version-serial"><code class="docutils literal notranslate"><span class="pre">implementation.version.serial</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#interpreter"><code class="docutils literal notranslate"><span class="pre">interpreter</span></code></a><ul>
|
||
<li><a class="reference internal" href="#interpreter-path"><code class="docutils literal notranslate"><span class="pre">interpreter.path</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#abi"><code class="docutils literal notranslate"><span class="pre">abi</span></code></a><ul>
|
||
<li><a class="reference internal" href="#abi-flags"><code class="docutils literal notranslate"><span class="pre">abi.flags</span></code></a></li>
|
||
<li><a class="reference internal" href="#abi-extension-suffix"><code class="docutils literal notranslate"><span class="pre">abi.extension_suffix</span></code></a></li>
|
||
<li><a class="reference internal" href="#abi-stable-abi-suffix"><code class="docutils literal notranslate"><span class="pre">abi.stable_abi_suffix</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#suffixes"><code class="docutils literal notranslate"><span class="pre">suffixes</span></code></a></li>
|
||
<li><a class="reference internal" href="#libpython"><code class="docutils literal notranslate"><span class="pre">libpython</span></code></a><ul>
|
||
<li><a class="reference internal" href="#libpython-dynamic"><code class="docutils literal notranslate"><span class="pre">libpython.dynamic</span></code></a></li>
|
||
<li><a class="reference internal" href="#libpython-static"><code class="docutils literal notranslate"><span class="pre">libpython.static</span></code></a></li>
|
||
<li><a class="reference internal" href="#libpython-link-to-libpython"><code class="docutils literal notranslate"><span class="pre">libpython.link_to_libpython</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#c-api"><code class="docutils literal notranslate"><span class="pre">c_api</span></code></a><ul>
|
||
<li><a class="reference internal" href="#c-api-headers"><code class="docutils literal notranslate"><span class="pre">c_api.headers</span></code></a></li>
|
||
<li><a class="reference internal" href="#c-api-pkgconfig-path"><code class="docutils literal notranslate"><span class="pre">c_api.pkgconfig_path</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#arbitrary-data"><code class="docutils literal notranslate"><span class="pre">arbitrary_data</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#example">Example</a></li>
|
||
<li><a class="reference internal" href="#json-schema">JSON Schema</a></li>
|
||
<li><a class="reference internal" href="#rejected-ideas">Rejected Ideas</a><ul>
|
||
<li><a class="reference internal" href="#having-a-larger-scope">Having a larger scope</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#copyright">Copyright</a></li>
|
||
</ul>
|
||
</details></section>
|
||
<section id="abstract">
|
||
<h2><a class="toc-backref" href="#abstract" role="doc-backlink">Abstract</a></h2>
|
||
<p>Introduce a standard format for a static description file with build details
|
||
of Python installations.</p>
|
||
</section>
|
||
<section id="rationale">
|
||
<h2><a class="toc-backref" href="#rationale" role="doc-backlink">Rationale</a></h2>
|
||
<p>When introspecting a Python installation, running code is often undesirable or
|
||
impossible. Having a static description file makes various of Python build
|
||
details available without having to run the interpreter.</p>
|
||
<p>This is helpful for use-cases such as cross-compilation, Python launchers, etc.</p>
|
||
</section>
|
||
<section id="scope">
|
||
<h2><a class="toc-backref" href="#scope" role="doc-backlink">Scope</a></h2>
|
||
<p>This PEP defines a format for the description file, and a standard location for
|
||
where to place it.</p>
|
||
</section>
|
||
<section id="location">
|
||
<h2><a class="toc-backref" href="#location" role="doc-backlink">Location</a></h2>
|
||
<p>When possible, Python installations should install the static description file
|
||
inside the standard library directory, with the name <code class="docutils literal notranslate"><span class="pre">build-details.json</span></code>
|
||
(Eg. <code class="docutils literal notranslate"><span class="pre">/usr/lib/python3.14/build-details.json</span></code>).</p>
|
||
<div class="admonition important">
|
||
<p class="admonition-title">Important</p>
|
||
<p>Given that there may be technical challenges, Python implementations are not
|
||
required to provide the file if not feasable. In such scenarios, they may
|
||
choose to provide it in a different maner.</p>
|
||
</div>
|
||
<div class="admonition attention">
|
||
<p class="admonition-title">Attention</p>
|
||
<p>Notwithstanding the standard location specified here, it does not prevent the
|
||
file from <strong>additionally</strong> being provided in another location, and with a
|
||
different name. In fact, the PEP authors expect future PEPs to define
|
||
additional locations to install this file, for better discoverability.</p>
|
||
</div>
|
||
</section>
|
||
<section id="format">
|
||
<h2><a class="toc-backref" href="#format" role="doc-backlink">Format</a></h2>
|
||
<p>The format specification is defined by the JSON Schema definition provided
|
||
below, which is rendered in an human-readable format here.</p>
|
||
<table class="docutils align-default" id="spec-start">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">$schema</span></code></td>
|
||
<td><a class="reference external" href="https://json-schema.org/draft/2020-12/schema">https://json-schema.org/draft/2020-12/schema</a></td>
|
||
</tr>
|
||
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">$id</span></code></td>
|
||
<td><a class="reference external" href="https://github.com/python/peps/blob/main/peps/pep-0739/python-build-info-v1.schema.json">https://github.com/python/peps/blob/main/peps/pep-0739/python-build-info-v1.schema.json</a></td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Title</td>
|
||
<td>Static description file for the build details of Python
|
||
installations</td>
|
||
</tr>
|
||
<tr class="row-even"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">object</span></code></td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Additional properties</td>
|
||
<td><strong>Not allowed</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<section id="schema-version">
|
||
<h3><a class="toc-backref" href="#schema-version" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">schema_version</span></code></a></h3>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">string</span></code> (constant — <code class="docutils literal notranslate"><span class="pre">1</span></code>)</td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>Schema version.<p>This is a constant value and MUST be <code class="docutils literal notranslate"><span class="pre">1</span></code>, when using the
|
||
schema described here. Future iterations of this schema MUST
|
||
update this value.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Required</td>
|
||
<td><strong>True</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
<section id="base-prefix">
|
||
<h3><a class="toc-backref" href="#base-prefix" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">base_prefix</span></code></a></h3>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">string</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>Base prefix of the Python installation.<p>Either an absolute path, or a relative path to directory where
|
||
this file is contained.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Examples</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">/usr</span></code>, <code class="docutils literal notranslate"><span class="pre">../..</span></code>, etc.</td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>False</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
<section id="platform">
|
||
<h3><a class="toc-backref" href="#platform" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">platform</span></code></a></h3>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">string</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>System platform string.<p>This field SHOULD be equivalent to <code class="docutils literal notranslate"><span class="pre">sysconfig.get_platform()</span></code>.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Examples</td>
|
||
<td><ul class="simple">
|
||
<li><code class="docutils literal notranslate"><span class="pre">linux-x86_64</span></code></li>
|
||
<li>etc.</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>True</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
<section id="language">
|
||
<h3><a class="toc-backref" href="#language" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">language</span></code></a></h3>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">object</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>Object containing details related to the Python language
|
||
specification.<p>In addition to the required keys, implementations may choose to
|
||
include extra keys with implementation-specific details.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Required</td>
|
||
<td><strong>True</strong></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Additional properties</td>
|
||
<td><strong>Not allowed</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<section id="language-version">
|
||
<h4><a class="toc-backref" href="#language-version" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">language.version</span></code></a></h4>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">string</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>String representation the Python language version — a version
|
||
string consisting only of the <em>major</em> and <em>minor</em> components.<p>This field SHOULD be equivalent to
|
||
<code class="docutils literal notranslate"><span class="pre">sysconfig.get_python_version()</span></code>.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Examples</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">3.14</span></code>, etc.</td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>True</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
</section>
|
||
<section id="implementation">
|
||
<h3><a class="toc-backref" href="#implementation" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">implementation</span></code></a></h3>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">object</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>Object containing details related to Python implementation.<p>This section SHOULD be equivalent to
|
||
<a class="reference external" href="https://docs.python.org/3/library/sys.html#sys.implementation" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.implementation</span></code></a>. It follows specification defined
|
||
in PEP 421, meaning that on top of the required keys,
|
||
implementation-specific keys can also exist, but must be
|
||
prefixed with an underscore.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Required</td>
|
||
<td><strong>True</strong></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Additional properties</td>
|
||
<td><strong>Allowed</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<section id="implementation-name">
|
||
<h4><a class="toc-backref" href="#implementation-name" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">implementation.name</span></code></a></h4>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">string</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>Lower-case name of the Python implementation.</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Examples</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">cpython</span></code>, <code class="docutils literal notranslate"><span class="pre">pypy</span></code>, etc.</td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>True</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
<section id="implementation-version">
|
||
<h4><a class="toc-backref" href="#implementation-version" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">implementation.version</span></code></a></h4>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">object</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>Object in the format of <a class="reference external" href="https://docs.python.org/3/library/sys.html#sys.version_info" title="(in Python v3.12)"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.version_info</span></code></a>, containing
|
||
the implementation version.</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Examples</td>
|
||
<td><ul class="simple">
|
||
<li><code class="docutils literal notranslate"><span class="pre">{'major':</span> <span class="pre">3,</span> <span class="pre">'minor':</span> <span class="pre">13,</span> <span class="pre">'micro':</span> <span class="pre">1,</span> <span class="pre">'releaselevel':</span> <span class="pre">'final',</span> <span class="pre">'serial':</span> <span class="pre">0}</span></code></li>
|
||
<li><code class="docutils literal notranslate"><span class="pre">{'major':</span> <span class="pre">7,</span> <span class="pre">'minor':</span> <span class="pre">3,</span> <span class="pre">'micro':</span> <span class="pre">16,</span> <span class="pre">'releaselevel':</span> <span class="pre">'final',</span> <span class="pre">'serial':</span> <span class="pre">0}</span></code></li>
|
||
<li>etc.</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>True</strong></td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Additional properties</td>
|
||
<td><strong>Not allowed</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<section id="implementation-version-major">
|
||
<h5><a class="toc-backref" href="#implementation-version-major" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">implementation.version.major</span></code></a></h5>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">number</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>True</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
<section id="implementation-version-minor">
|
||
<h5><a class="toc-backref" href="#implementation-version-minor" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">implementation.version.minor</span></code></a></h5>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">number</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>True</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
<section id="implementation-version-micro">
|
||
<h5><a class="toc-backref" href="#implementation-version-micro" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">implementation.version.micro</span></code></a></h5>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">number</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>True</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
<section id="implementation-version-releaselevel">
|
||
<h5><a class="toc-backref" href="#implementation-version-releaselevel" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">implementation.version.releaselevel</span></code></a></h5>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">string</span></code> (enum — <code class="docutils literal notranslate"><span class="pre">alpha</span></code>, <code class="docutils literal notranslate"><span class="pre">beta</span></code>, <code class="docutils literal notranslate"><span class="pre">candidate</span></code>, <code class="docutils literal notranslate"><span class="pre">final</span></code>)</td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>True</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
<section id="implementation-version-serial">
|
||
<h5><a class="toc-backref" href="#implementation-version-serial" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">implementation.version.serial</span></code></a></h5>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">number</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>True</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
</section>
|
||
</section>
|
||
<section id="interpreter">
|
||
<h3><a class="toc-backref" href="#interpreter" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">interpreter</span></code></a></h3>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">object</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>Object containing details Python interpreter.<p>This section MUST be present if the Python installation provides
|
||
an interpreter binary, otherwise this section will be missing.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Required</td>
|
||
<td><strong>False</strong></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Additional properties</td>
|
||
<td><strong>Not allowed</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<section id="interpreter-path">
|
||
<h4><a class="toc-backref" href="#interpreter-path" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">interpreter.path</span></code></a></h4>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">string</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>The path to the Python interprer. Either an absolute path, or a
|
||
relative path to the path defined in the <code class="docutils literal notranslate"><span class="pre">base_prefix</span></code> key.</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Examples</td>
|
||
<td><ul class="simple">
|
||
<li><code class="docutils literal notranslate"><span class="pre">/usr/bin/python</span></code></li>
|
||
<li><code class="docutils literal notranslate"><span class="pre">bin/python</span></code></li>
|
||
<li>etc.</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>True</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
</section>
|
||
<section id="abi">
|
||
<h3><a class="toc-backref" href="#abi" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">abi</span></code></a></h3>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">object</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>Object containing details related to ABI.</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Required</td>
|
||
<td><strong>False</strong></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Additional properties</td>
|
||
<td><strong>Not allowed</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<section id="abi-flags">
|
||
<h4><a class="toc-backref" href="#abi-flags" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">abi.flags</span></code></a></h4>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">array</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>Build configuration flags, used to calculate the extension
|
||
suffix.<p>The flags MUST be defined in the order they appear on the
|
||
extension suffix.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Examples</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">['t',</span> <span class="pre">'d']</span></code>, etc.</td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>True</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
<section id="abi-extension-suffix">
|
||
<h4><a class="toc-backref" href="#abi-extension-suffix" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">abi.extension_suffix</span></code></a></h4>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">string</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>Suffix used for extensions built against the current
|
||
implementation version.<p>This field MUST be present if the Python implementation supports
|
||
extensions, otherwise this entry will be missing.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Examples</td>
|
||
<td><ul class="simple">
|
||
<li><code class="docutils literal notranslate"><span class="pre">.cpython-314-x86_64-linux-gnu.so</span></code></li>
|
||
<li>etc.</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>True</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
<section id="abi-stable-abi-suffix">
|
||
<h4><a class="toc-backref" href="#abi-stable-abi-suffix" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">abi.stable_abi_suffix</span></code></a></h4>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">string</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>Suffix used for extensions built against the stable ABI.<p>This field MUST be present if the Python implementation has a
|
||
stable ABI extension suffix, otherwise this entry will be
|
||
missing.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Examples</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">.abi3.so</span></code>, etc.</td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>False</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
</section>
|
||
<section id="suffixes">
|
||
<h3><a class="toc-backref" href="#suffixes" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">suffixes</span></code></a></h3>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">object</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>Valid module suffixes grouped by type.<p>This section SHOULD be equivalent to the
|
||
<code class="docutils literal notranslate"><span class="pre">importlib.machinery.*_SUFFIXES</span></code> attributes, if the
|
||
implementation provides such suffixes. However, if the Python
|
||
implementation does not provide suffixes of the kind specified
|
||
by any of the attributes, the equivalent sub-section is not
|
||
required to be present. Additionally, if a Python implementation
|
||
provides extension kinds other than the ones listed on
|
||
<code class="docutils literal notranslate"><span class="pre">importlib.machinery</span></code> module, they MAY add a sub-section for
|
||
them.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Examples</td>
|
||
<td><ul class="simple">
|
||
<li><code class="docutils literal notranslate"><span class="pre">{'source':</span> <span class="pre">['.py'],</span> <span class="pre">'bytecode':</span> <span class="pre">['.pyc'],</span> <span class="pre">'optimized_bytecode':</span> <span class="pre">['.pyc'],</span> <span class="pre">'debug_bytecode':</span> <span class="pre">['.pyc'],</span> <span class="pre">'extensions':</span> <span class="pre">['.cpython-313-x86_64-linux-gnu.so',</span> <span class="pre">'.abi3.so',</span> <span class="pre">'.so']}</span></code></li>
|
||
<li>etc.</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>False</strong></td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Additional properties</td>
|
||
<td><strong>Allowed</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
<section id="libpython">
|
||
<h3><a class="toc-backref" href="#libpython" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">libpython</span></code></a></h3>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">object</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>Object containing details related to the <code class="docutils literal notranslate"><span class="pre">libpython</span></code> library.<p>This section MUST by present if Python installation provides a
|
||
<code class="docutils literal notranslate"><span class="pre">libpython</span></code> library, otherwise this section will be missing.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Required</td>
|
||
<td><strong>False</strong></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Additional properties</td>
|
||
<td><strong>Not allowed</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<section id="libpython-dynamic">
|
||
<h4><a class="toc-backref" href="#libpython-dynamic" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">libpython.dynamic</span></code></a></h4>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">string</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>The path to the dynamic <code class="docutils literal notranslate"><span class="pre">libpython</span></code> library. Either an
|
||
absolute path, or a relative path to the path defined in the
|
||
<code class="docutils literal notranslate"><span class="pre">base_prefix</span></code> key.<p>This field MUST be present if the Python installation provides a
|
||
dynamic <code class="docutils literal notranslate"><span class="pre">libpython</span></code> library, otherwise this entry will be
|
||
missing.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Examples</td>
|
||
<td><ul class="simple">
|
||
<li><code class="docutils literal notranslate"><span class="pre">/usr/lib/libpython3.14.so.1.0</span></code></li>
|
||
<li><code class="docutils literal notranslate"><span class="pre">lib/libpython3.14.so.1.0</span></code></li>
|
||
<li>etc.</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>False</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
<section id="libpython-static">
|
||
<h4><a class="toc-backref" href="#libpython-static" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">libpython.static</span></code></a></h4>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">string</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>The path to the static <code class="docutils literal notranslate"><span class="pre">libpython</span></code> library. Either an absolute
|
||
path, or a relative path to the path defined in the
|
||
<code class="docutils literal notranslate"><span class="pre">base_prefix</span></code> key.<p>This field MUST be present if the Python installation provides a
|
||
static <code class="docutils literal notranslate"><span class="pre">libpython</span></code> library, otherwise this entry will be
|
||
missing.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Examples</td>
|
||
<td><ul class="simple">
|
||
<li><code class="docutils literal notranslate"><span class="pre">/usr/lib/python3.14/config-3.14-x86_64-linux-gnu/libpython3.14.a</span></code></li>
|
||
<li><code class="docutils literal notranslate"><span class="pre">lib/python3.14/config-3.14-x86_64-linux-gnu/libpython3.14.a</span></code></li>
|
||
<li>etc.</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>False</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
<section id="libpython-link-to-libpython">
|
||
<h4><a class="toc-backref" href="#libpython-link-to-libpython" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">libpython.link_to_libpython</span></code></a></h4>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">boolean</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>Should extensions built against a dynamic <code class="docutils literal notranslate"><span class="pre">libpython</span></code> link to
|
||
it?<p>This field MUST be present if the Python installation provides a
|
||
dynamic <code class="docutils literal notranslate"><span class="pre">libpython</span></code> library, otherwise this entry will be
|
||
missing.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Required</td>
|
||
<td><strong>False</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
</section>
|
||
<section id="c-api">
|
||
<h3><a class="toc-backref" href="#c-api" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">c_api</span></code></a></h3>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">object</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>Object containing details related to the Python C API, if
|
||
available.<p>This section MUST be present if the Python implementation
|
||
provides a C API, otherwise this section will be missing.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Required</td>
|
||
<td><strong>False</strong></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Additional properties</td>
|
||
<td><strong>Not allowed</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<section id="c-api-headers">
|
||
<h4><a class="toc-backref" href="#c-api-headers" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">c_api.headers</span></code></a></h4>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">string</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>The path to the C API headers. Either an absolute path, or a
|
||
relative path to the path defined in the <code class="docutils literal notranslate"><span class="pre">base_prefix</span></code> key.</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Examples</td>
|
||
<td><ul class="simple">
|
||
<li><code class="docutils literal notranslate"><span class="pre">/usr/include/python3.14</span></code></li>
|
||
<li><code class="docutils literal notranslate"><span class="pre">include/python3.14</span></code></li>
|
||
<li>etc.</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>True</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
<section id="c-api-pkgconfig-path">
|
||
<h4><a class="toc-backref" href="#c-api-pkgconfig-path" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">c_api.pkgconfig_path</span></code></a></h4>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">string</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>The path to the pkg-config definition files. Either an absolute
|
||
path, or a relative path to the path defined in the
|
||
<code class="docutils literal notranslate"><span class="pre">base_prefix</span></code> key.<p>This field MUST be present if the Python implementation provides
|
||
pkg-config definition files for the C API, otherwise this
|
||
section will be missing.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Examples</td>
|
||
<td><ul class="simple">
|
||
<li><code class="docutils literal notranslate"><span class="pre">/usr/lib/pkgconfig</span></code></li>
|
||
<li><code class="docutils literal notranslate"><span class="pre">lib/pkgconfig</span></code></li>
|
||
<li>etc.</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-even"><td>Required</td>
|
||
<td><strong>False</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
</section>
|
||
<section id="arbitrary-data">
|
||
<h3><a class="toc-backref" href="#arbitrary-data" role="doc-backlink"><code class="docutils literal notranslate"><span class="pre">arbitrary_data</span></code></a></h3>
|
||
<table class="docutils align-default">
|
||
<colgroup>
|
||
<col style="width: 25.0%" />
|
||
<col style="width: 75.0%" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr class="row-odd"><td>Type</td>
|
||
<td><code class="docutils literal notranslate"><span class="pre">object</span></code></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Description</td>
|
||
<td>Object containing extra arbitrary data.<p>This is meant to be used as an escape-hatch, to include any
|
||
relevant data that is not covered by this specification.
|
||
Implamentations may choose what data to provide in this section.</p>
|
||
</td>
|
||
</tr>
|
||
<tr class="row-odd"><td>Required</td>
|
||
<td><strong>False</strong></td>
|
||
</tr>
|
||
<tr class="row-even"><td>Additional properties</td>
|
||
<td><strong>Allowed</strong></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</section>
|
||
</section>
|
||
<section id="example">
|
||
<span id="spec-end"></span><h2><a class="toc-backref" href="#example" role="doc-backlink">Example</a></h2>
|
||
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="p">{</span>
|
||
<span class="linenos"> 2</span><span class="w"> </span><span class="nt">"schema_version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1"</span><span class="p">,</span>
|
||
<span class="linenos"> 3</span><span class="w"> </span><span class="nt">"base_prefix"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/usr"</span><span class="p">,</span>
|
||
<span class="linenos"> 4</span><span class="w"> </span><span class="nt">"platform"</span><span class="p">:</span><span class="w"> </span><span class="s2">"linux-x86_64"</span><span class="p">,</span>
|
||
<span class="linenos"> 5</span><span class="w"> </span><span class="nt">"language"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 6</span><span class="w"> </span><span class="nt">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"3.14"</span>
|
||
<span class="linenos"> 7</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos"> 8</span><span class="w"> </span><span class="nt">"implementation"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 9</span><span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"cpython"</span><span class="p">,</span>
|
||
<span class="linenos">10</span><span class="w"> </span><span class="nt">"version"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">11</span><span class="w"> </span><span class="nt">"major"</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span>
|
||
<span class="linenos">12</span><span class="w"> </span><span class="nt">"minor"</span><span class="p">:</span><span class="w"> </span><span class="mi">14</span><span class="p">,</span>
|
||
<span class="linenos">13</span><span class="w"> </span><span class="nt">"micro"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span>
|
||
<span class="linenos">14</span><span class="w"> </span><span class="nt">"releaselevel"</span><span class="p">:</span><span class="w"> </span><span class="s2">"alpha"</span><span class="p">,</span>
|
||
<span class="linenos">15</span><span class="w"> </span><span class="nt">"serial"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span>
|
||
<span class="linenos">16</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">17</span><span class="w"> </span><span class="nt">"hexversion"</span><span class="p">:</span><span class="w"> </span><span class="mi">51249312</span><span class="p">,</span>
|
||
<span class="linenos">18</span><span class="w"> </span><span class="nt">"cache_tag"</span><span class="p">:</span><span class="w"> </span><span class="s2">"cpython-314"</span><span class="p">,</span>
|
||
<span class="linenos">19</span><span class="w"> </span><span class="nt">"_multiarch"</span><span class="p">:</span><span class="w"> </span><span class="s2">"x86_64-linux-gnu"</span>
|
||
<span class="linenos">20</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">21</span><span class="w"> </span><span class="nt">"interpreter"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">22</span><span class="w"> </span><span class="nt">"path"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/usr/bin/python"</span>
|
||
<span class="linenos">23</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">24</span><span class="w"> </span><span class="nt">"abi"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">25</span><span class="w"> </span><span class="nt">"flags"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"t"</span><span class="p">,</span><span class="w"> </span><span class="s2">"d"</span><span class="p">],</span>
|
||
<span class="linenos">26</span><span class="w"> </span><span class="nt">"extension_suffix"</span><span class="p">:</span><span class="w"> </span><span class="s2">".cpython-314-x86_64-linux-gnu.so"</span><span class="p">,</span>
|
||
<span class="linenos">27</span><span class="w"> </span><span class="nt">"stable_abi_suffix"</span><span class="p">:</span><span class="w"> </span><span class="s2">".abi3.so"</span>
|
||
<span class="linenos">28</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">29</span><span class="w"> </span><span class="nt">"suffixes"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">30</span><span class="w"> </span><span class="nt">"source"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">".py"</span><span class="p">],</span>
|
||
<span class="linenos">31</span><span class="w"> </span><span class="nt">"bytecode"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">".pyc"</span><span class="p">],</span>
|
||
<span class="linenos">32</span><span class="w"> </span><span class="nt">"optimized_bytecode"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">".pyc"</span><span class="p">],</span>
|
||
<span class="linenos">33</span><span class="w"> </span><span class="nt">"debug_bytecode"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">".pyc"</span><span class="p">],</span>
|
||
<span class="linenos">34</span><span class="w"> </span><span class="nt">"extensions"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">".cpython-314-x86_64-linux-gnu.so"</span><span class="p">,</span><span class="w"> </span><span class="s2">".abi3.so"</span><span class="p">,</span><span class="w"> </span><span class="s2">".so"</span><span class="p">]</span>
|
||
<span class="linenos">35</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">36</span><span class="w"> </span><span class="nt">"libpython"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">37</span><span class="w"> </span><span class="nt">"dynamic"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/usr/lib/libpython3.14.so.1.0"</span><span class="p">,</span>
|
||
<span class="linenos">38</span><span class="w"> </span><span class="nt">"static"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/usr/lib/python3.14/config-3.14-x86_64-linux-gnu/libpython3.14.a"</span><span class="p">,</span>
|
||
<span class="linenos">39</span><span class="w"> </span><span class="nt">"link_to_libpython"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span>
|
||
<span class="linenos">40</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">41</span><span class="w"> </span><span class="nt">"c_api"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">42</span><span class="w"> </span><span class="nt">"headers"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/usr/include/python3.14"</span><span class="p">,</span>
|
||
<span class="linenos">43</span><span class="w"> </span><span class="nt">"pkgconfig_path"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/usr/lib/pkgconfig"</span>
|
||
<span class="linenos">44</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">45</span><span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="json-schema">
|
||
<h2><a class="toc-backref" href="#json-schema" role="doc-backlink">JSON Schema</a></h2>
|
||
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="p">{</span>
|
||
<span class="linenos"> 2</span><span class="w"> </span><span class="nt">"$schema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"https://json-schema.org/draft/2020-12/schema"</span><span class="p">,</span>
|
||
<span class="linenos"> 3</span><span class="w"> </span><span class="nt">"$id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"https://github.com/python/peps/blob/main/peps/pep-0739/python-build-info-v1.schema.json"</span><span class="p">,</span>
|
||
<span class="linenos"> 4</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"object"</span><span class="p">,</span>
|
||
<span class="linenos"> 5</span><span class="w"> </span><span class="nt">"title"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Static description file for the build details of Python installations"</span><span class="p">,</span>
|
||
<span class="linenos"> 6</span><span class="w"> </span><span class="nt">"required"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos"> 7</span><span class="w"> </span><span class="s2">"schema_version"</span><span class="p">,</span>
|
||
<span class="linenos"> 8</span><span class="w"> </span><span class="s2">"platform"</span><span class="p">,</span>
|
||
<span class="linenos"> 9</span><span class="w"> </span><span class="s2">"language"</span><span class="p">,</span>
|
||
<span class="linenos"> 10</span><span class="w"> </span><span class="s2">"implementation"</span>
|
||
<span class="linenos"> 11</span><span class="w"> </span><span class="p">],</span>
|
||
<span class="linenos"> 12</span><span class="w"> </span><span class="nt">"additionalProperties"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
|
||
<span class="linenos"> 13</span><span class="w"> </span><span class="nt">"properties"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 14</span><span class="w"> </span><span class="nt">"schema_version"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 15</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span>
|
||
<span class="linenos"> 16</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Schema version.\n\nThis is a constant value and MUST be ``1``, when using the schema described here. Future iterations of this schema MUST update this value."</span><span class="p">,</span>
|
||
<span class="linenos"> 17</span><span class="w"> </span><span class="nt">"const"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1"</span>
|
||
<span class="linenos"> 18</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos"> 19</span><span class="w"> </span><span class="nt">"base_prefix"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 20</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span>
|
||
<span class="linenos"> 21</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Base prefix of the Python installation.\n\nEither an absolute path, or a relative path to directory where this file is contained."</span><span class="p">,</span>
|
||
<span class="linenos"> 22</span><span class="w"> </span><span class="nt">"examples"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos"> 23</span><span class="w"> </span><span class="s2">"/usr"</span><span class="p">,</span>
|
||
<span class="linenos"> 24</span><span class="w"> </span><span class="s2">"../.."</span>
|
||
<span class="linenos"> 25</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="linenos"> 26</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos"> 27</span><span class="w"> </span><span class="nt">"platform"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 28</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span>
|
||
<span class="linenos"> 29</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"System platform string.\n\nThis field SHOULD be equivalent to ``sysconfig.get_platform()``."</span><span class="p">,</span>
|
||
<span class="linenos"> 30</span><span class="w"> </span><span class="nt">"examples"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos"> 31</span><span class="w"> </span><span class="s2">"linux-x86_64"</span>
|
||
<span class="linenos"> 32</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="linenos"> 33</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos"> 34</span><span class="w"> </span><span class="nt">"language"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 35</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"object"</span><span class="p">,</span>
|
||
<span class="linenos"> 36</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Object containing details related to the Python language specification.\n\nIn addition to the required keys, implementations may choose to include extra keys with implementation-specific details."</span><span class="p">,</span>
|
||
<span class="linenos"> 37</span><span class="w"> </span><span class="nt">"required"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos"> 38</span><span class="w"> </span><span class="s2">"version"</span>
|
||
<span class="linenos"> 39</span><span class="w"> </span><span class="p">],</span>
|
||
<span class="linenos"> 40</span><span class="w"> </span><span class="nt">"additionalProperties"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
|
||
<span class="linenos"> 41</span><span class="w"> </span><span class="nt">"properties"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 42</span><span class="w"> </span><span class="nt">"version"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 43</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span>
|
||
<span class="linenos"> 44</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"String representation the Python language version — a version string consisting only of the *major* and *minor* components.\n\nThis field SHOULD be equivalent to ``sysconfig.get_python_version()``."</span><span class="p">,</span>
|
||
<span class="linenos"> 45</span><span class="w"> </span><span class="nt">"examples"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"3.14"</span><span class="p">]</span>
|
||
<span class="linenos"> 46</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos"> 47</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos"> 48</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos"> 49</span><span class="w"> </span><span class="nt">"implementation"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 50</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"object"</span><span class="p">,</span>
|
||
<span class="linenos"> 51</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Object containing details related to Python implementation.\n\nThis section SHOULD be equivalent to :py:data:`sys.implementation`. It follows specification defined in PEP 421, meaning that on top of the required keys, implementation-specific keys can also exist, but must be prefixed with an underscore."</span><span class="p">,</span>
|
||
<span class="linenos"> 52</span><span class="w"> </span><span class="nt">"required"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos"> 53</span><span class="w"> </span><span class="s2">"name"</span><span class="p">,</span>
|
||
<span class="linenos"> 54</span><span class="w"> </span><span class="s2">"version"</span><span class="p">,</span>
|
||
<span class="linenos"> 55</span><span class="w"> </span><span class="s2">"hexversion"</span><span class="p">,</span>
|
||
<span class="linenos"> 56</span><span class="w"> </span><span class="s2">"cache_tag"</span>
|
||
<span class="linenos"> 57</span><span class="w"> </span><span class="p">],</span>
|
||
<span class="linenos"> 58</span><span class="w"> </span><span class="nt">"additionalProperties"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span>
|
||
<span class="linenos"> 59</span><span class="w"> </span><span class="nt">"properties"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 60</span><span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 61</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span>
|
||
<span class="linenos"> 62</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Lower-case name of the Python implementation."</span><span class="p">,</span>
|
||
<span class="linenos"> 63</span><span class="w"> </span><span class="nt">"examples"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"cpython"</span><span class="p">,</span><span class="w"> </span><span class="s2">"pypy"</span><span class="p">]</span>
|
||
<span class="linenos"> 64</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos"> 65</span><span class="w"> </span><span class="nt">"version"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 66</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"object"</span><span class="p">,</span>
|
||
<span class="linenos"> 67</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Object in the format of :py:data:`sys.version_info`, containing the implementation version."</span><span class="p">,</span>
|
||
<span class="linenos"> 68</span><span class="w"> </span><span class="nt">"required"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"major"</span><span class="p">,</span><span class="w"> </span><span class="s2">"minor"</span><span class="p">,</span><span class="w"> </span><span class="s2">"micro"</span><span class="p">,</span><span class="w"> </span><span class="s2">"releaselevel"</span><span class="p">,</span><span class="w"> </span><span class="s2">"serial"</span><span class="p">],</span>
|
||
<span class="linenos"> 69</span><span class="w"> </span><span class="nt">"additionalProperties"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
|
||
<span class="linenos"> 70</span><span class="w"> </span><span class="nt">"examples"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos"> 71</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 72</span><span class="w"> </span><span class="nt">"major"</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span>
|
||
<span class="linenos"> 73</span><span class="w"> </span><span class="nt">"minor"</span><span class="p">:</span><span class="w"> </span><span class="mi">13</span><span class="p">,</span>
|
||
<span class="linenos"> 74</span><span class="w"> </span><span class="nt">"micro"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span>
|
||
<span class="linenos"> 75</span><span class="w"> </span><span class="nt">"releaselevel"</span><span class="p">:</span><span class="w"> </span><span class="s2">"final"</span><span class="p">,</span>
|
||
<span class="linenos"> 76</span><span class="w"> </span><span class="nt">"serial"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span>
|
||
<span class="linenos"> 77</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos"> 78</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 79</span><span class="w"> </span><span class="nt">"major"</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span>
|
||
<span class="linenos"> 80</span><span class="w"> </span><span class="nt">"minor"</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span>
|
||
<span class="linenos"> 81</span><span class="w"> </span><span class="nt">"micro"</span><span class="p">:</span><span class="w"> </span><span class="mi">16</span><span class="p">,</span>
|
||
<span class="linenos"> 82</span><span class="w"> </span><span class="nt">"releaselevel"</span><span class="p">:</span><span class="w"> </span><span class="s2">"final"</span><span class="p">,</span>
|
||
<span class="linenos"> 83</span><span class="w"> </span><span class="nt">"serial"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span>
|
||
<span class="linenos"> 84</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos"> 85</span><span class="w"> </span><span class="p">],</span>
|
||
<span class="linenos"> 86</span><span class="w"> </span><span class="nt">"properties"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 87</span><span class="w"> </span><span class="nt">"major"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 88</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"number"</span>
|
||
<span class="linenos"> 89</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos"> 90</span><span class="w"> </span><span class="nt">"minor"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 91</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"number"</span>
|
||
<span class="linenos"> 92</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos"> 93</span><span class="w"> </span><span class="nt">"micro"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 94</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"number"</span>
|
||
<span class="linenos"> 95</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos"> 96</span><span class="w"> </span><span class="nt">"releaselevel"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 97</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span>
|
||
<span class="linenos"> 98</span><span class="w"> </span><span class="nt">"enum"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"alpha"</span><span class="p">,</span><span class="w"> </span><span class="s2">"beta"</span><span class="p">,</span><span class="w"> </span><span class="s2">"candidate"</span><span class="p">,</span><span class="w"> </span><span class="s2">"final"</span><span class="p">]</span>
|
||
<span class="linenos"> 99</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">100</span><span class="w"> </span><span class="nt">"serial"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">101</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"number"</span>
|
||
<span class="linenos">102</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">103</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">104</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">105</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">106</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">107</span><span class="w"> </span><span class="nt">"interpreter"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">108</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"object"</span><span class="p">,</span>
|
||
<span class="linenos">109</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Object containing details Python interpreter.\n\nThis section MUST be present if the Python installation provides an interpreter binary, otherwise this section will be missing."</span><span class="p">,</span>
|
||
<span class="linenos">110</span><span class="w"> </span><span class="nt">"required"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos">111</span><span class="w"> </span><span class="s2">"path"</span>
|
||
<span class="linenos">112</span><span class="w"> </span><span class="p">],</span>
|
||
<span class="linenos">113</span><span class="w"> </span><span class="nt">"additionalProperties"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
|
||
<span class="linenos">114</span><span class="w"> </span><span class="nt">"properties"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">115</span><span class="w"> </span><span class="nt">"path"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">116</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span>
|
||
<span class="linenos">117</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"The path to the Python interprer. Either an absolute path, or a relative path to the path defined in the ``base_prefix`` key."</span><span class="p">,</span>
|
||
<span class="linenos">118</span><span class="w"> </span><span class="nt">"examples"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos">119</span><span class="w"> </span><span class="s2">"/usr/bin/python"</span><span class="p">,</span>
|
||
<span class="linenos">120</span><span class="w"> </span><span class="s2">"bin/python"</span>
|
||
<span class="linenos">121</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="linenos">122</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">123</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">124</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">125</span><span class="w"> </span><span class="nt">"abi"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">126</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"object"</span><span class="p">,</span>
|
||
<span class="linenos">127</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Object containing details related to ABI."</span><span class="p">,</span>
|
||
<span class="linenos">128</span><span class="w"> </span><span class="nt">"required"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos">129</span><span class="w"> </span><span class="s2">"flags"</span><span class="p">,</span>
|
||
<span class="linenos">130</span><span class="w"> </span><span class="s2">"extension_suffix"</span>
|
||
<span class="linenos">131</span><span class="w"> </span><span class="p">],</span>
|
||
<span class="linenos">132</span><span class="w"> </span><span class="nt">"additionalProperties"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
|
||
<span class="linenos">133</span><span class="w"> </span><span class="nt">"properties"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">134</span><span class="w"> </span><span class="nt">"flags"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">135</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"array"</span><span class="p">,</span>
|
||
<span class="linenos">136</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Build configuration flags, used to calculate the extension suffix.\n\nThe flags MUST be defined in the order they appear on the extension suffix."</span><span class="p">,</span>
|
||
<span class="linenos">137</span><span class="w"> </span><span class="nt">"additionalProperties"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span>
|
||
<span class="linenos">138</span><span class="w"> </span><span class="nt">"examples"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos">139</span><span class="w"> </span><span class="p">[</span><span class="s2">"t"</span><span class="p">,</span><span class="w"> </span><span class="s2">"d"</span><span class="p">]</span>
|
||
<span class="linenos">140</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="linenos">141</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">142</span><span class="w"> </span><span class="nt">"extension_suffix"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">143</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span>
|
||
<span class="linenos">144</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Suffix used for extensions built against the current implementation version.\n\nThis field MUST be present if the Python implementation supports extensions, otherwise this entry will be missing."</span><span class="p">,</span>
|
||
<span class="linenos">145</span><span class="w"> </span><span class="nt">"examples"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos">146</span><span class="w"> </span><span class="s2">".cpython-314-x86_64-linux-gnu.so"</span>
|
||
<span class="linenos">147</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="linenos">148</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">149</span><span class="w"> </span><span class="nt">"stable_abi_suffix"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">150</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span>
|
||
<span class="linenos">151</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Suffix used for extensions built against the stable ABI.\n\nThis field MUST be present if the Python implementation has a stable ABI extension suffix, otherwise this entry will be missing."</span><span class="p">,</span>
|
||
<span class="linenos">152</span><span class="w"> </span><span class="nt">"examples"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos">153</span><span class="w"> </span><span class="s2">".abi3.so"</span>
|
||
<span class="linenos">154</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="linenos">155</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">156</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">157</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">158</span><span class="w"> </span><span class="nt">"suffixes"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">159</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"object"</span><span class="p">,</span>
|
||
<span class="linenos">160</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Valid module suffixes grouped by type.\n\nThis section SHOULD be equivalent to the ``importlib.machinery.*_SUFFIXES`` attributes, if the implementation provides such suffixes. However, if the Python implementation does not provide suffixes of the kind specified by any of the attributes, the equivalent sub-section is not required to be present. Additionally, if a Python implementation provides extension kinds other than the ones listed on ``importlib.machinery`` module, they MAY add a sub-section for them."</span><span class="p">,</span>
|
||
<span class="linenos">161</span><span class="w"> </span><span class="nt">"examples"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos">162</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">163</span><span class="w"> </span><span class="nt">"source"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">".py"</span><span class="p">],</span>
|
||
<span class="linenos">164</span><span class="w"> </span><span class="nt">"bytecode"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">".pyc"</span><span class="p">],</span>
|
||
<span class="linenos">165</span><span class="w"> </span><span class="nt">"optimized_bytecode"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">".pyc"</span><span class="p">],</span>
|
||
<span class="linenos">166</span><span class="w"> </span><span class="nt">"debug_bytecode"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">".pyc"</span><span class="p">],</span>
|
||
<span class="linenos">167</span><span class="w"> </span><span class="nt">"extensions"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">".cpython-313-x86_64-linux-gnu.so"</span><span class="p">,</span><span class="w"> </span><span class="s2">".abi3.so"</span><span class="p">,</span><span class="w"> </span><span class="s2">".so"</span><span class="p">]</span>
|
||
<span class="linenos">168</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">169</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="linenos">170</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">171</span><span class="w"> </span><span class="nt">"libpython"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">172</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"object"</span><span class="p">,</span>
|
||
<span class="linenos">173</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Object containing details related to the ``libpython`` library.\n\nThis section MUST by present if Python installation provides a ``libpython`` library, otherwise this section will be missing."</span><span class="p">,</span>
|
||
<span class="linenos">174</span><span class="w"> </span><span class="nt">"additionalProperties"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
|
||
<span class="linenos">175</span><span class="w"> </span><span class="nt">"properties"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">176</span><span class="w"> </span><span class="nt">"dynamic"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">177</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span>
|
||
<span class="linenos">178</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"The path to the dynamic ``libpython`` library. Either an absolute path, or a relative path to the path defined in the ``base_prefix`` key.\n\nThis field MUST be present if the Python installation provides a dynamic ``libpython`` library, otherwise this entry will be missing."</span><span class="p">,</span>
|
||
<span class="linenos">179</span><span class="w"> </span><span class="nt">"examples"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos">180</span><span class="w"> </span><span class="s2">"/usr/lib/libpython3.14.so.1.0"</span><span class="p">,</span>
|
||
<span class="linenos">181</span><span class="w"> </span><span class="s2">"lib/libpython3.14.so.1.0"</span>
|
||
<span class="linenos">182</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="linenos">183</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">184</span><span class="w"> </span><span class="nt">"static"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">185</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span>
|
||
<span class="linenos">186</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"The path to the static ``libpython`` library. Either an absolute path, or a relative path to the path defined in the ``base_prefix`` key.\n\nThis field MUST be present if the Python installation provides a static ``libpython`` library, otherwise this entry will be missing."</span><span class="p">,</span>
|
||
<span class="linenos">187</span><span class="w"> </span><span class="nt">"examples"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos">188</span><span class="w"> </span><span class="s2">"/usr/lib/python3.14/config-3.14-x86_64-linux-gnu/libpython3.14.a"</span><span class="p">,</span>
|
||
<span class="linenos">189</span><span class="w"> </span><span class="s2">"lib/python3.14/config-3.14-x86_64-linux-gnu/libpython3.14.a"</span>
|
||
<span class="linenos">190</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="linenos">191</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">192</span><span class="w"> </span><span class="nt">"link_to_libpython"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">193</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"boolean"</span><span class="p">,</span>
|
||
<span class="linenos">194</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Should extensions built against a dynamic ``libpython`` link to it?\n\nThis field MUST be present if the Python installation provides a dynamic ``libpython`` library, otherwise this entry will be missing."</span>
|
||
<span class="linenos">195</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">196</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">197</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">198</span><span class="w"> </span><span class="nt">"c_api"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">199</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"object"</span><span class="p">,</span>
|
||
<span class="linenos">200</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Object containing details related to the Python C API, if available.\n\nThis section MUST be present if the Python implementation provides a C API, otherwise this section will be missing."</span><span class="p">,</span>
|
||
<span class="linenos">201</span><span class="w"> </span><span class="nt">"required"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos">202</span><span class="w"> </span><span class="s2">"headers"</span>
|
||
<span class="linenos">203</span><span class="w"> </span><span class="p">],</span>
|
||
<span class="linenos">204</span><span class="w"> </span><span class="nt">"additionalProperties"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
|
||
<span class="linenos">205</span><span class="w"> </span><span class="nt">"properties"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">206</span><span class="w"> </span><span class="nt">"headers"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">207</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span>
|
||
<span class="linenos">208</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"The path to the C API headers. Either an absolute path, or a relative path to the path defined in the ``base_prefix`` key."</span><span class="p">,</span>
|
||
<span class="linenos">209</span><span class="w"> </span><span class="nt">"examples"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos">210</span><span class="w"> </span><span class="s2">"/usr/include/python3.14"</span><span class="p">,</span>
|
||
<span class="linenos">211</span><span class="w"> </span><span class="s2">"include/python3.14"</span>
|
||
<span class="linenos">212</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="linenos">213</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">214</span><span class="w"> </span><span class="nt">"pkgconfig_path"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">215</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"string"</span><span class="p">,</span>
|
||
<span class="linenos">216</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"The path to the pkg-config definition files. Either an absolute path, or a relative path to the path defined in the ``base_prefix`` key.\n\nThis field MUST be present if the Python implementation provides pkg-config definition files for the C API, otherwise this section will be missing."</span><span class="p">,</span>
|
||
<span class="linenos">217</span><span class="w"> </span><span class="nt">"examples"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
||
<span class="linenos">218</span><span class="w"> </span><span class="s2">"/usr/lib/pkgconfig"</span><span class="p">,</span>
|
||
<span class="linenos">219</span><span class="w"> </span><span class="s2">"lib/pkgconfig"</span>
|
||
<span class="linenos">220</span><span class="w"> </span><span class="p">]</span>
|
||
<span class="linenos">221</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">222</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">223</span><span class="w"> </span><span class="p">},</span>
|
||
<span class="linenos">224</span><span class="w"> </span><span class="nt">"arbitrary_data"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">225</span><span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"object"</span><span class="p">,</span>
|
||
<span class="linenos">226</span><span class="w"> </span><span class="nt">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Object containing extra arbitrary data.\n\nThis is meant to be used as an escape-hatch, to include any relevant data that is not covered by this specification. Implamentations may choose what data to provide in this section."</span><span class="p">,</span>
|
||
<span class="linenos">227</span><span class="w"> </span><span class="nt">"additionalProperties"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span>
|
||
<span class="linenos">228</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">229</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">230</span><span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
<section id="rejected-ideas">
|
||
<h2><a class="toc-backref" href="#rejected-ideas" role="doc-backlink">Rejected Ideas</a></h2>
|
||
<section id="having-a-larger-scope">
|
||
<h3><a class="toc-backref" href="#having-a-larger-scope" role="doc-backlink">Having a larger scope</a></h3>
|
||
<p>One of the main requests in the discussion of this PEP was the inclusion of
|
||
other kind of information, such as the <code class="docutils literal notranslate"><span class="pre">site-packages</span></code> path. It is the opinion
|
||
of the PEP authors that information regarding the Python environment should be
|
||
provided by a separate file, creating the a clear separation between the build
|
||
details, which should be immutable across any interpreter instance, and details
|
||
that can change, such as environment details.</p>
|
||
</section>
|
||
</section>
|
||
<section id="copyright">
|
||
<h2><a class="toc-backref" href="#copyright" role="doc-backlink">Copyright</a></h2>
|
||
<p>This document is placed in the public domain or under the
|
||
CC0-1.0-Universal license, whichever is more permissive.</p>
|
||
</section>
|
||
</section>
|
||
<hr class="docutils" />
|
||
<p>Source: <a class="reference external" href="https://github.com/python/peps/blob/main/peps/pep-0739.rst">https://github.com/python/peps/blob/main/peps/pep-0739.rst</a></p>
|
||
<p>Last modified: <a class="reference external" href="https://github.com/python/peps/commits/main/peps/pep-0739.rst">2024-09-12 02:43:59 GMT</a></p>
|
||
|
||
</article>
|
||
<nav id="pep-sidebar">
|
||
<h2>Contents</h2>
|
||
<ul>
|
||
<li><a class="reference internal" href="#abstract">Abstract</a></li>
|
||
<li><a class="reference internal" href="#rationale">Rationale</a></li>
|
||
<li><a class="reference internal" href="#scope">Scope</a></li>
|
||
<li><a class="reference internal" href="#location">Location</a></li>
|
||
<li><a class="reference internal" href="#format">Format</a><ul>
|
||
<li><a class="reference internal" href="#schema-version"><code class="docutils literal notranslate"><span class="pre">schema_version</span></code></a></li>
|
||
<li><a class="reference internal" href="#base-prefix"><code class="docutils literal notranslate"><span class="pre">base_prefix</span></code></a></li>
|
||
<li><a class="reference internal" href="#platform"><code class="docutils literal notranslate"><span class="pre">platform</span></code></a></li>
|
||
<li><a class="reference internal" href="#language"><code class="docutils literal notranslate"><span class="pre">language</span></code></a><ul>
|
||
<li><a class="reference internal" href="#language-version"><code class="docutils literal notranslate"><span class="pre">language.version</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#implementation"><code class="docutils literal notranslate"><span class="pre">implementation</span></code></a><ul>
|
||
<li><a class="reference internal" href="#implementation-name"><code class="docutils literal notranslate"><span class="pre">implementation.name</span></code></a></li>
|
||
<li><a class="reference internal" href="#implementation-version"><code class="docutils literal notranslate"><span class="pre">implementation.version</span></code></a><ul>
|
||
<li><a class="reference internal" href="#implementation-version-major"><code class="docutils literal notranslate"><span class="pre">implementation.version.major</span></code></a></li>
|
||
<li><a class="reference internal" href="#implementation-version-minor"><code class="docutils literal notranslate"><span class="pre">implementation.version.minor</span></code></a></li>
|
||
<li><a class="reference internal" href="#implementation-version-micro"><code class="docutils literal notranslate"><span class="pre">implementation.version.micro</span></code></a></li>
|
||
<li><a class="reference internal" href="#implementation-version-releaselevel"><code class="docutils literal notranslate"><span class="pre">implementation.version.releaselevel</span></code></a></li>
|
||
<li><a class="reference internal" href="#implementation-version-serial"><code class="docutils literal notranslate"><span class="pre">implementation.version.serial</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#interpreter"><code class="docutils literal notranslate"><span class="pre">interpreter</span></code></a><ul>
|
||
<li><a class="reference internal" href="#interpreter-path"><code class="docutils literal notranslate"><span class="pre">interpreter.path</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#abi"><code class="docutils literal notranslate"><span class="pre">abi</span></code></a><ul>
|
||
<li><a class="reference internal" href="#abi-flags"><code class="docutils literal notranslate"><span class="pre">abi.flags</span></code></a></li>
|
||
<li><a class="reference internal" href="#abi-extension-suffix"><code class="docutils literal notranslate"><span class="pre">abi.extension_suffix</span></code></a></li>
|
||
<li><a class="reference internal" href="#abi-stable-abi-suffix"><code class="docutils literal notranslate"><span class="pre">abi.stable_abi_suffix</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#suffixes"><code class="docutils literal notranslate"><span class="pre">suffixes</span></code></a></li>
|
||
<li><a class="reference internal" href="#libpython"><code class="docutils literal notranslate"><span class="pre">libpython</span></code></a><ul>
|
||
<li><a class="reference internal" href="#libpython-dynamic"><code class="docutils literal notranslate"><span class="pre">libpython.dynamic</span></code></a></li>
|
||
<li><a class="reference internal" href="#libpython-static"><code class="docutils literal notranslate"><span class="pre">libpython.static</span></code></a></li>
|
||
<li><a class="reference internal" href="#libpython-link-to-libpython"><code class="docutils literal notranslate"><span class="pre">libpython.link_to_libpython</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#c-api"><code class="docutils literal notranslate"><span class="pre">c_api</span></code></a><ul>
|
||
<li><a class="reference internal" href="#c-api-headers"><code class="docutils literal notranslate"><span class="pre">c_api.headers</span></code></a></li>
|
||
<li><a class="reference internal" href="#c-api-pkgconfig-path"><code class="docutils literal notranslate"><span class="pre">c_api.pkgconfig_path</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#arbitrary-data"><code class="docutils literal notranslate"><span class="pre">arbitrary_data</span></code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#example">Example</a></li>
|
||
<li><a class="reference internal" href="#json-schema">JSON Schema</a></li>
|
||
<li><a class="reference internal" href="#rejected-ideas">Rejected Ideas</a><ul>
|
||
<li><a class="reference internal" href="#having-a-larger-scope">Having a larger scope</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#copyright">Copyright</a></li>
|
||
</ul>
|
||
|
||
<br>
|
||
<a id="source" href="https://github.com/python/peps/blob/main/peps/pep-0739.rst">Page Source (GitHub)</a>
|
||
</nav>
|
||
</section>
|
||
<script src="../_static/colour_scheme.js"></script>
|
||
<script src="../_static/wrap_tables.js"></script>
|
||
<script src="../_static/sticky_banner.js"></script>
|
||
</body>
|
||
</html> |