PEP 739: add language.version_info and libpython.dynamic_stableabi
This commit is contained in:
parent
cb6e37ca80
commit
d24411ff57
|
@ -174,6 +174,82 @@ below, which is rendered in an human-readable format here.
|
||||||
* - Required
|
* - Required
|
||||||
- **True**
|
- **True**
|
||||||
|
|
||||||
|
``language.version_info``
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:widths: 25 75
|
||||||
|
|
||||||
|
* - Type
|
||||||
|
- ``object``
|
||||||
|
* - Description
|
||||||
|
- Object in the format of :py:data:`sys.version_info`.
|
||||||
|
|
||||||
|
This section SHOULD be equivalent to
|
||||||
|
:py:data:`sys.version_info`.
|
||||||
|
* - Examples
|
||||||
|
- - ``{'major': 3, 'minor': 14, 'micro': 1, 'releaselevel': 'final', 'serial': 0}``
|
||||||
|
- etc.
|
||||||
|
* - Required
|
||||||
|
- **False**
|
||||||
|
* - Additional properties
|
||||||
|
- **Not allowed**
|
||||||
|
|
||||||
|
``language.version_info.major``
|
||||||
|
+++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:widths: 25 75
|
||||||
|
|
||||||
|
* - Type
|
||||||
|
- ``number``
|
||||||
|
* - Required
|
||||||
|
- **True**
|
||||||
|
|
||||||
|
``language.version_info.minor``
|
||||||
|
+++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:widths: 25 75
|
||||||
|
|
||||||
|
* - Type
|
||||||
|
- ``number``
|
||||||
|
* - Required
|
||||||
|
- **True**
|
||||||
|
|
||||||
|
``language.version_info.micro``
|
||||||
|
+++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:widths: 25 75
|
||||||
|
|
||||||
|
* - Type
|
||||||
|
- ``number``
|
||||||
|
* - Required
|
||||||
|
- **True**
|
||||||
|
|
||||||
|
``language.version_info.releaselevel``
|
||||||
|
++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:widths: 25 75
|
||||||
|
|
||||||
|
* - Type
|
||||||
|
- ``string`` (enum — ``alpha``, ``beta``, ``candidate``, ``final``)
|
||||||
|
* - Required
|
||||||
|
- **True**
|
||||||
|
|
||||||
|
``language.version_info.serial``
|
||||||
|
++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:widths: 25 75
|
||||||
|
|
||||||
|
* - Type
|
||||||
|
- ``number``
|
||||||
|
* - Required
|
||||||
|
- **True**
|
||||||
|
|
||||||
``implementation``
|
``implementation``
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
@ -222,7 +298,7 @@ below, which is rendered in an human-readable format here.
|
||||||
- Object in the format of :py:data:`sys.version_info`, containing
|
- Object in the format of :py:data:`sys.version_info`, containing
|
||||||
the implementation version.
|
the implementation version.
|
||||||
* - Examples
|
* - Examples
|
||||||
- - ``{'major': 3, 'minor': 13, 'micro': 1, 'releaselevel': 'final', 'serial': 0}``
|
- - ``{'major': 3, 'minor': 14, 'micro': 1, 'releaselevel': 'final', 'serial': 0}``
|
||||||
- ``{'major': 7, 'minor': 3, 'micro': 16, 'releaselevel': 'final', 'serial': 0}``
|
- ``{'major': 7, 'minor': 3, 'micro': 16, 'releaselevel': 'final', 'serial': 0}``
|
||||||
- etc.
|
- etc.
|
||||||
* - Required
|
* - Required
|
||||||
|
@ -463,6 +539,29 @@ below, which is rendered in an human-readable format here.
|
||||||
* - Required
|
* - Required
|
||||||
- **False**
|
- **False**
|
||||||
|
|
||||||
|
``libpython.dynamic_stableabi``
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:widths: 25 75
|
||||||
|
|
||||||
|
* - Type
|
||||||
|
- ``string``
|
||||||
|
* - 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.
|
||||||
|
|
||||||
|
This field MUST be present if the Python installation provides a
|
||||||
|
dynamic ``libpython`` library, otherwise this entry will be
|
||||||
|
missing.
|
||||||
|
* - Examples
|
||||||
|
- - ``/usr/lib/libpython3.so``
|
||||||
|
- ``lib/libpython3.so``
|
||||||
|
- etc.
|
||||||
|
* - Required
|
||||||
|
- **False**
|
||||||
|
|
||||||
``libpython.static``
|
``libpython.static``
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,14 @@
|
||||||
"base_prefix": "/usr",
|
"base_prefix": "/usr",
|
||||||
"platform": "linux-x86_64",
|
"platform": "linux-x86_64",
|
||||||
"language": {
|
"language": {
|
||||||
"version": "3.14"
|
"version": "3.14",
|
||||||
|
"version_info": {
|
||||||
|
"major": 3,
|
||||||
|
"minor": 14,
|
||||||
|
"micro": 0,
|
||||||
|
"releaselevel": "alpha",
|
||||||
|
"serial": 0
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"implementation": {
|
"implementation": {
|
||||||
"name": "cpython",
|
"name": "cpython",
|
||||||
|
@ -35,6 +42,7 @@
|
||||||
},
|
},
|
||||||
"libpython": {
|
"libpython": {
|
||||||
"dynamic": "/usr/lib/libpython3.14.so.1.0",
|
"dynamic": "/usr/lib/libpython3.14.so.1.0",
|
||||||
|
"dynamic_stableabi": "/usr/lib/libpython3.so",
|
||||||
"static": "/usr/lib/python3.14/config-3.14-x86_64-linux-gnu/libpython3.14.a",
|
"static": "/usr/lib/python3.14/config-3.14-x86_64-linux-gnu/libpython3.14.a",
|
||||||
"link_to_libpython": true
|
"link_to_libpython": true
|
||||||
},
|
},
|
||||||
|
|
|
@ -43,6 +43,39 @@
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "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()``.",
|
"description": "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()``.",
|
||||||
"examples": ["3.14"]
|
"examples": ["3.14"]
|
||||||
|
},
|
||||||
|
"version_info": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "Object in the format of :py:data:`sys.version_info`.\n\nThis section SHOULD be equivalent to :py:data:`sys.version_info`.",
|
||||||
|
"required": ["major", "minor", "micro", "releaselevel", "serial"],
|
||||||
|
"additionalProperties": false,
|
||||||
|
"examples": [
|
||||||
|
{
|
||||||
|
"major": 3,
|
||||||
|
"minor": 14,
|
||||||
|
"micro": 1,
|
||||||
|
"releaselevel": "final",
|
||||||
|
"serial": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"major": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"minor": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"micro": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"releaselevel": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["alpha", "beta", "candidate", "final"]
|
||||||
|
},
|
||||||
|
"serial": {
|
||||||
|
"type": "number"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -70,7 +103,7 @@
|
||||||
"examples": [
|
"examples": [
|
||||||
{
|
{
|
||||||
"major": 3,
|
"major": 3,
|
||||||
"minor": 13,
|
"minor": 14,
|
||||||
"micro": 1,
|
"micro": 1,
|
||||||
"releaselevel": "final",
|
"releaselevel": "final",
|
||||||
"serial": 0
|
"serial": 0
|
||||||
|
@ -181,6 +214,14 @@
|
||||||
"lib/libpython3.14.so.1.0"
|
"lib/libpython3.14.so.1.0"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"dynamic_stableabi": {
|
||||||
|
"type": "string",
|
||||||
|
"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.",
|
||||||
|
"examples": [
|
||||||
|
"/usr/lib/libpython3.so",
|
||||||
|
"lib/libpython3.so"
|
||||||
|
]
|
||||||
|
},
|
||||||
"static": {
|
"static": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "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.",
|
"description": "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.",
|
||||||
|
|
Loading…
Reference in New Issue