Skip to content

Commit bfd4b02

Browse files
authored
PEP 739: some (hopefully final) updates (#4216)
1 parent a2e3a85 commit bfd4b02

File tree

3 files changed

+37
-64
lines changed

3 files changed

+37
-64
lines changed

peps/pep-0739.rst

Lines changed: 25 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,25 @@ below, which is rendered in an human-readable format here.
115115
* - Required
116116
- **True**
117117

118+
``base_interpreter``
119+
--------------------
120+
121+
.. list-table::
122+
:widths: 25 75
123+
124+
* - Type
125+
- ``string``
126+
* - Description
127+
- The path to the Python interprer of the base installation.
128+
Either an absolute path, or a relative path to the path defined
129+
in the ``base_prefix`` key.
130+
* - Examples
131+
- - ``/usr/bin/python``
132+
- ``bin/python``
133+
- etc.
134+
* - Required
135+
- **False**
136+
118137
``base_prefix``
119138
---------------
120139

@@ -376,42 +395,6 @@ below, which is rendered in an human-readable format here.
376395
* - Required
377396
- **True**
378397

379-
``interpreter``
380-
---------------
381-
382-
.. list-table::
383-
:widths: 25 75
384-
385-
* - Type
386-
- ``object``
387-
* - Description
388-
- Object containing details Python interpreter.
389-
390-
This section MUST be present if the Python installation provides
391-
an interpreter binary, otherwise this section will be missing.
392-
* - Required
393-
- **False**
394-
* - Additional properties
395-
- **Not allowed**
396-
397-
``interpreter.path``
398-
~~~~~~~~~~~~~~~~~~~~
399-
400-
.. list-table::
401-
:widths: 25 75
402-
403-
* - Type
404-
- ``string``
405-
* - Description
406-
- The path to the Python interprer. Either an absolute path, or a
407-
relative path to the path defined in the ``base_prefix`` key.
408-
* - Examples
409-
- - ``/usr/bin/python``
410-
- ``bin/python``
411-
- etc.
412-
* - Required
413-
- **True**
414-
415398
``abi``
416399
-------
417400

@@ -568,8 +551,10 @@ below, which is rendered in an human-readable format here.
568551
defined in the ``base_prefix`` key.
569552

570553
This field MUST be present if the Python installation provides a
571-
dynamic ``libpython`` library, otherwise this entry will be
572-
missing.
554+
dynamic ``libpython`` library targetting the Stable ABI,
555+
otherwise this entry will be missing.
556+
557+
If this key is present ``dynamic`` MUST also be set.
573558
* - Examples
574559
- - ``/usr/lib/libpython3.so``
575560
- ``lib/libpython3.so``
@@ -600,8 +585,8 @@ below, which is rendered in an human-readable format here.
600585
* - Required
601586
- **False**
602587

603-
``libpython.link_to_libpython``
604-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
588+
``libpython.link_extensions``
589+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
605590

606591
.. list-table::
607592
:widths: 25 75

peps/pep-0739/example.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"schema_version": "1.0",
3+
"base_interpreter": "/usr/bin/python",
34
"base_prefix": "/usr",
45
"platform": "linux-x86_64",
56
"language": {
@@ -25,9 +26,6 @@
2526
"cache_tag": "cpython-314",
2627
"_multiarch": "x86_64-linux-gnu"
2728
},
28-
"interpreter": {
29-
"path": "/usr/bin/python"
30-
},
3129
"abi": {
3230
"flags": ["t", "d"],
3331
"extension_suffix": ".cpython-314-x86_64-linux-gnu.so",
@@ -44,7 +42,7 @@
4442
"dynamic": "/usr/lib/libpython3.14.so.1.0",
4543
"dynamic_stableabi": "/usr/lib/libpython3.so",
4644
"static": "/usr/lib/python3.14/config-3.14-x86_64-linux-gnu/libpython3.14.a",
47-
"link_to_libpython": true
45+
"link_extensions": true
4846
},
4947
"c_api": {
5048
"headers": "/usr/include/python3.14",

peps/pep-0739/python-build-info-v1.0.schema.json

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@
1616
"description": "Schema version.\n\nThis is a string following the format ``<MAJOR>.<MINOR>``, where ``<MAJOR>`` and ``<MINOR>`` are unpaded numbers and represent the **major** and **minor** components of the version. Versions may be arithmetic compared by intrepreting the version string as a decimal number.\n\nFor this specification version, this value is constant and MUST be ``1.0``.\n\nFuture versions of this schema MUST use a higher version number. Future versions of this schema MUST NOT use the same **major** version component as other schema version unless its specification is deemed backwards-compatible with them — it can't change, or extend, any parts of the current specification in such a way as the semantics of the interpreted data differ, or that data valid under the new specification is invalid under the older specification, with the exception of additional properties (errors caused by ``additionalProperties``).",
1717
"const": "1.0"
1818
},
19+
"base_interpreter": {
20+
"type": "string",
21+
"description": "The path to the Python interprer of the base installation. Either an absolute path, or a relative path to the path defined in the ``base_prefix`` key.",
22+
"examples": [
23+
"/usr/bin/python",
24+
"bin/python"
25+
]
26+
},
1927
"base_prefix": {
2028
"type": "string",
2129
"description": "Base prefix of the Python installation.\n\nEither an absolute path, or a relative path to directory where this file is contained.",
@@ -137,24 +145,6 @@
137145
}
138146
}
139147
},
140-
"interpreter": {
141-
"type": "object",
142-
"description": "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.",
143-
"required": [
144-
"path"
145-
],
146-
"additionalProperties": false,
147-
"properties": {
148-
"path": {
149-
"type": "string",
150-
"description": "The path to the Python interprer. Either an absolute path, or a relative path to the path defined in the ``base_prefix`` key.",
151-
"examples": [
152-
"/usr/bin/python",
153-
"bin/python"
154-
]
155-
}
156-
}
157-
},
158148
"abi": {
159149
"type": "object",
160150
"description": "Object containing details related to ABI.",
@@ -216,7 +206,7 @@
216206
},
217207
"dynamic_stableabi": {
218208
"type": "string",
219-
"description": "The path to the dynamic ``libpython`` library for the stable ABI. 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.",
209+
"description": "The path to the dynamic ``libpython`` library for the stable ABI. 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 targetting the Stable ABI, otherwise this entry will be missing.\n\nIf this key is present ``dynamic`` MUST also be set.",
220210
"examples": [
221211
"/usr/lib/libpython3.so",
222212
"lib/libpython3.so"
@@ -230,7 +220,7 @@
230220
"lib/python3.14/config-3.14-x86_64-linux-gnu/libpython3.14.a"
231221
]
232222
},
233-
"link_to_libpython": {
223+
"link_extensions": {
234224
"type": "boolean",
235225
"description": "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."
236226
}

0 commit comments

Comments
 (0)