Skip to content

Commit efa93c5

Browse files
committed
Revert "Merge commit '30b1d8f11d5905888f696db14867eb733e7b824c' into sqlite3-cli-completion"
This reverts commit 51573fa, reversing changes made to c9ac3b2.
1 parent 51573fa commit efa93c5

File tree

196 files changed

+2358
-4023
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

196 files changed

+2358
-4023
lines changed

.github/workflows/mypy.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,7 @@ on:
1313
- "Lib/test/libregrtest/**"
1414
- "Lib/tomllib/**"
1515
- "Misc/mypy/**"
16-
- "Tools/build/compute-changes.py"
1716
- "Tools/build/generate_sbom.py"
18-
- "Tools/build/generate-build-details.py"
19-
- "Tools/build/verify_ensurepip_wheels.py"
20-
- "Tools/build/update_file.py"
2117
- "Tools/cases_generator/**"
2218
- "Tools/clinic/**"
2319
- "Tools/jit/**"

Doc/c-api/import.rst

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,19 @@ Importing Modules
1616
This is a wrapper around :c:func:`PyImport_Import()` which takes a
1717
:c:expr:`const char *` as an argument instead of a :c:expr:`PyObject *`.
1818
19+
.. c:function:: PyObject* PyImport_ImportModuleNoBlock(const char *name)
20+
21+
This function is a deprecated alias of :c:func:`PyImport_ImportModule`.
22+
23+
.. versionchanged:: 3.3
24+
This function used to fail immediately when the import lock was held
25+
by another thread. In Python 3.3 though, the locking scheme switched
26+
to per-module locks for most purposes, so this function's special
27+
behaviour isn't needed anymore.
28+
29+
.. deprecated-removed:: 3.13 3.15
30+
Use :c:func:`PyImport_ImportModule` instead.
31+
1932
2033
.. c:function:: PyObject* PyImport_ImportModuleEx(const char *name, PyObject *globals, PyObject *locals, PyObject *fromlist)
2134

Doc/c-api/init.rst

Lines changed: 167 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,10 @@ The following functions can be safely called before Python is initialized:
7777

7878
Despite their apparent similarity to some of the functions listed above,
7979
the following functions **should not be called** before the interpreter has
80-
been initialized: :c:func:`Py_EncodeLocale`, :c:func:`PyEval_InitThreads`, and
80+
been initialized: :c:func:`Py_EncodeLocale`, :c:func:`Py_GetPath`,
81+
:c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`,
82+
:c:func:`Py_GetProgramFullPath`, :c:func:`Py_GetPythonHome`,
83+
:c:func:`Py_GetProgramName`, :c:func:`PyEval_InitThreads`, and
8184
:c:func:`Py_RunMain`.
8285

8386

@@ -142,6 +145,9 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
142145
:c:member:`PyConfig.pathconfig_warnings` should be used instead, see
143146
:ref:`Python Initialization Configuration <init-config>`.
144147

148+
Suppress error messages when calculating the module search path in
149+
:c:func:`Py_GetPath`.
150+
145151
Private flag used by ``_freeze_module`` and ``frozenmain`` programs.
146152

147153
.. deprecated-removed:: 3.12 3.15
@@ -197,7 +203,7 @@ to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to 2.
197203

198204
Set by the :option:`-i` option.
199205

200-
.. deprecated-removed:: 3.12 3.15
206+
.. deprecated:: 3.12
201207

202208
.. c:var:: int Py_IsolatedFlag
203209
@@ -580,6 +586,7 @@ Process-wide parameters
580586
.. index::
581587
single: Py_Initialize()
582588
single: main()
589+
single: Py_GetPath()
583590
584591
This API is kept for backward compatibility: setting
585592
:c:member:`PyConfig.program_name` should be used instead, see :ref:`Python
@@ -589,7 +596,7 @@ Process-wide parameters
589596
the first time, if it is called at all. It tells the interpreter the value
590597
of the ``argv[0]`` argument to the :c:func:`main` function of the program
591598
(converted to wide characters).
592-
This is used by some other functions below to find
599+
This is used by :c:func:`Py_GetPath` and some other functions below to find
593600
the Python run-time libraries relative to the interpreter executable. The
594601
default value is ``'python'``. The argument should point to a
595602
zero-terminated wide character string in static storage whose contents will not
@@ -602,6 +609,146 @@ Process-wide parameters
602609
.. deprecated-removed:: 3.11 3.15
603610
604611
612+
.. c:function:: wchar_t* Py_GetProgramName()
613+
614+
Return the program name set with :c:member:`PyConfig.program_name`, or the default.
615+
The returned string points into static storage; the caller should not modify its
616+
value.
617+
618+
This function should not be called before :c:func:`Py_Initialize`, otherwise
619+
it returns ``NULL``.
620+
621+
.. versionchanged:: 3.10
622+
It now returns ``NULL`` if called before :c:func:`Py_Initialize`.
623+
624+
.. deprecated-removed:: 3.13 3.15
625+
Use :c:func:`PyConfig_Get("executable") <PyConfig_Get>`
626+
(:data:`sys.executable`) instead.
627+
628+
629+
.. c:function:: wchar_t* Py_GetPrefix()
630+
631+
Return the *prefix* for installed platform-independent files. This is derived
632+
through a number of complicated rules from the program name set with
633+
:c:member:`PyConfig.program_name` and some environment variables; for example, if the
634+
program name is ``'/usr/local/bin/python'``, the prefix is ``'/usr/local'``. The
635+
returned string points into static storage; the caller should not modify its
636+
value. This corresponds to the :makevar:`prefix` variable in the top-level
637+
:file:`Makefile` and the :option:`--prefix` argument to the :program:`configure`
638+
script at build time. The value is available to Python code as ``sys.base_prefix``.
639+
It is only useful on Unix. See also the next function.
640+
641+
This function should not be called before :c:func:`Py_Initialize`, otherwise
642+
it returns ``NULL``.
643+
644+
.. versionchanged:: 3.10
645+
It now returns ``NULL`` if called before :c:func:`Py_Initialize`.
646+
647+
.. deprecated-removed:: 3.13 3.15
648+
Use :c:func:`PyConfig_Get("base_prefix") <PyConfig_Get>`
649+
(:data:`sys.base_prefix`) instead. Use :c:func:`PyConfig_Get("prefix")
650+
<PyConfig_Get>` (:data:`sys.prefix`) if :ref:`virtual environments
651+
<venv-def>` need to be handled.
652+
653+
654+
.. c:function:: wchar_t* Py_GetExecPrefix()
655+
656+
Return the *exec-prefix* for installed platform-*dependent* files. This is
657+
derived through a number of complicated rules from the program name set with
658+
:c:member:`PyConfig.program_name` and some environment variables; for example, if the
659+
program name is ``'/usr/local/bin/python'``, the exec-prefix is
660+
``'/usr/local'``. The returned string points into static storage; the caller
661+
should not modify its value. This corresponds to the :makevar:`exec_prefix`
662+
variable in the top-level :file:`Makefile` and the ``--exec-prefix``
663+
argument to the :program:`configure` script at build time. The value is
664+
available to Python code as ``sys.base_exec_prefix``. It is only useful on
665+
Unix.
666+
667+
Background: The exec-prefix differs from the prefix when platform dependent
668+
files (such as executables and shared libraries) are installed in a different
669+
directory tree. In a typical installation, platform dependent files may be
670+
installed in the :file:`/usr/local/plat` subtree while platform independent may
671+
be installed in :file:`/usr/local`.
672+
673+
Generally speaking, a platform is a combination of hardware and software
674+
families, e.g. Sparc machines running the Solaris 2.x operating system are
675+
considered the same platform, but Intel machines running Solaris 2.x are another
676+
platform, and Intel machines running Linux are yet another platform. Different
677+
major revisions of the same operating system generally also form different
678+
platforms. Non-Unix operating systems are a different story; the installation
679+
strategies on those systems are so different that the prefix and exec-prefix are
680+
meaningless, and set to the empty string. Note that compiled Python bytecode
681+
files are platform independent (but not independent from the Python version by
682+
which they were compiled!).
683+
684+
System administrators will know how to configure the :program:`mount` or
685+
:program:`automount` programs to share :file:`/usr/local` between platforms
686+
while having :file:`/usr/local/plat` be a different filesystem for each
687+
platform.
688+
689+
This function should not be called before :c:func:`Py_Initialize`, otherwise
690+
it returns ``NULL``.
691+
692+
.. versionchanged:: 3.10
693+
It now returns ``NULL`` if called before :c:func:`Py_Initialize`.
694+
695+
.. deprecated-removed:: 3.13 3.15
696+
Use :c:func:`PyConfig_Get("base_exec_prefix") <PyConfig_Get>`
697+
(:data:`sys.base_exec_prefix`) instead. Use
698+
:c:func:`PyConfig_Get("exec_prefix") <PyConfig_Get>`
699+
(:data:`sys.exec_prefix`) if :ref:`virtual environments <venv-def>` need
700+
to be handled.
701+
702+
.. c:function:: wchar_t* Py_GetProgramFullPath()
703+
704+
.. index::
705+
single: executable (in module sys)
706+
707+
Return the full program name of the Python executable; this is computed as a
708+
side-effect of deriving the default module search path from the program name
709+
(set by :c:member:`PyConfig.program_name`). The returned string points into
710+
static storage; the caller should not modify its value. The value is available
711+
to Python code as ``sys.executable``.
712+
713+
This function should not be called before :c:func:`Py_Initialize`, otherwise
714+
it returns ``NULL``.
715+
716+
.. versionchanged:: 3.10
717+
It now returns ``NULL`` if called before :c:func:`Py_Initialize`.
718+
719+
.. deprecated-removed:: 3.13 3.15
720+
Use :c:func:`PyConfig_Get("executable") <PyConfig_Get>`
721+
(:data:`sys.executable`) instead.
722+
723+
724+
.. c:function:: wchar_t* Py_GetPath()
725+
726+
.. index::
727+
triple: module; search; path
728+
single: path (in module sys)
729+
730+
Return the default module search path; this is computed from the program name
731+
(set by :c:member:`PyConfig.program_name`) and some environment variables.
732+
The returned string consists of a series of directory names separated by a
733+
platform dependent delimiter character. The delimiter character is ``':'``
734+
on Unix and macOS, ``';'`` on Windows. The returned string points into
735+
static storage; the caller should not modify its value. The list
736+
:data:`sys.path` is initialized with this value on interpreter startup; it
737+
can be (and usually is) modified later to change the search path for loading
738+
modules.
739+
740+
This function should not be called before :c:func:`Py_Initialize`, otherwise
741+
it returns ``NULL``.
742+
743+
.. XXX should give the exact rules
744+
745+
.. versionchanged:: 3.10
746+
It now returns ``NULL`` if called before :c:func:`Py_Initialize`.
747+
748+
.. deprecated-removed:: 3.13 3.15
749+
Use :c:func:`PyConfig_Get("module_search_paths") <PyConfig_Get>`
750+
(:data:`sys.path`) instead.
751+
605752
.. c:function:: const char* Py_GetVersion()
606753
607754
Return the version of this Python interpreter. This is a string that looks
@@ -772,6 +919,23 @@ Process-wide parameters
772919
.. deprecated-removed:: 3.11 3.15
773920
774921
922+
.. c:function:: wchar_t* Py_GetPythonHome()
923+
924+
Return the default "home", that is, the value set by
925+
:c:member:`PyConfig.home`, or the value of the :envvar:`PYTHONHOME`
926+
environment variable if it is set.
927+
928+
This function should not be called before :c:func:`Py_Initialize`, otherwise
929+
it returns ``NULL``.
930+
931+
.. versionchanged:: 3.10
932+
It now returns ``NULL`` if called before :c:func:`Py_Initialize`.
933+
934+
.. deprecated-removed:: 3.13 3.15
935+
Use :c:func:`PyConfig_Get("home") <PyConfig_Get>` or the
936+
:envvar:`PYTHONHOME` environment variable instead.
937+
938+
775939
.. _threads:
776940
777941
Thread State and the Global Interpreter Lock

Doc/c-api/intro.rst

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -779,11 +779,20 @@ found along :envvar:`PATH`.) The user can override this behavior by setting the
779779
environment variable :envvar:`PYTHONHOME`, or insert additional directories in
780780
front of the standard path by setting :envvar:`PYTHONPATH`.
781781

782+
.. index::
783+
single: Py_GetPath (C function)
784+
single: Py_GetPrefix (C function)
785+
single: Py_GetExecPrefix (C function)
786+
single: Py_GetProgramFullPath (C function)
787+
782788
The embedding application can steer the search by setting
783789
:c:member:`PyConfig.program_name` *before* calling
784790
:c:func:`Py_InitializeFromConfig`. Note that
785791
:envvar:`PYTHONHOME` still overrides this and :envvar:`PYTHONPATH` is still
786-
inserted in front of the standard path.
792+
inserted in front of the standard path. An application that requires total
793+
control has to provide its own implementation of :c:func:`Py_GetPath`,
794+
:c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, and
795+
:c:func:`Py_GetProgramFullPath` (all defined in :file:`Modules/getpath.c`).
787796

788797
.. index:: single: Py_IsInitialized (C function)
789798

@@ -817,17 +826,14 @@ frequently used builds will be described in the remainder of this section.
817826
818827
Compiling the interpreter with the :c:macro:`!Py_DEBUG` macro defined produces
819828
what is generally meant by :ref:`a debug build of Python <debug-build>`.
820-
821-
On Unix, :c:macro:`!Py_DEBUG` can be enabled by adding :option:`--with-pydebug`
822-
to the :file:`./configure` command. This will also disable compiler optimization.
823-
824-
On Windows, selecting a debug build (e.g., by passing the :option:`-d` option to
825-
:file:`PCbuild/build.bat`) automatically enables :c:macro:`!Py_DEBUG`.
826-
Additionally, the presence of the not-Python-specific :c:macro:`!_DEBUG` macro,
827-
when defined by the compiler, will also implicitly enable :c:macro:`!Py_DEBUG`.
829+
:c:macro:`!Py_DEBUG` is enabled in the Unix build by adding
830+
:option:`--with-pydebug` to the :file:`./configure` command.
831+
It is also implied by the presence of the
832+
not-Python-specific :c:macro:`!_DEBUG` macro. When :c:macro:`!Py_DEBUG` is enabled
833+
in the Unix build, compiler optimization is disabled.
828834

829835
In addition to the reference count debugging described below, extra checks are
830-
performed. See :ref:`Python Debug Build <debug-build>` for more details.
836+
performed, see :ref:`Python Debug Build <debug-build>`.
831837

832838
Defining :c:macro:`Py_TRACE_REFS` enables reference tracing
833839
(see the :option:`configure --with-trace-refs option <--with-trace-refs>`).

Doc/c-api/unicode.rst

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -645,17 +645,6 @@ APIs:
645645
difference being that it decrements the reference count of *right* by one.
646646
647647
648-
.. c:function:: PyObject* PyUnicode_BuildEncodingMap(PyObject* string)
649-
650-
Return a mapping suitable for decoding a custom single-byte encoding.
651-
Given a Unicode string *string* of up to 256 characters representing an encoding
652-
table, returns either a compact internal mapping object or a dictionary
653-
mapping character ordinals to byte values. Raises a :exc:`TypeError` and
654-
return ``NULL`` on invalid input.
655-
656-
.. versionadded:: 3.2
657-
658-
659648
.. c:function:: const char* PyUnicode_GetDefaultEncoding(void)
660649
661650
Return the name of the default string encoding, ``"utf-8"``.

Doc/data/refcounts.dat

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1093,6 +1093,9 @@ PyImport_ImportModuleLevelObject:PyObject*:locals:0:???
10931093
PyImport_ImportModuleLevelObject:PyObject*:fromlist:0:???
10941094
PyImport_ImportModuleLevelObject:int:level::
10951095

1096+
PyImport_ImportModuleNoBlock:PyObject*::+1:
1097+
PyImport_ImportModuleNoBlock:const char*:name::
1098+
10961099
PyImport_ReloadModule:PyObject*::+1:
10971100
PyImport_ReloadModule:PyObject*:m:0:
10981101

@@ -2778,9 +2781,6 @@ PyUnicode_AppendAndDel:void:::
27782781
PyUnicode_AppendAndDel:PyObject**:p_left:0:
27792782
PyUnicode_AppendAndDel:PyObject*:right:-1:
27802783

2781-
PyUnicode_BuildEncodingMap:PyObject*::+1:
2782-
PyUnicode_BuildEncodingMap:PyObject*:string:::
2783-
27842784
PyUnicode_GetDefaultEncoding:const char*:::
27852785
PyUnicode_GetDefaultEncoding::void::
27862786

@@ -3007,8 +3007,18 @@ Py_GetCompiler:const char*:::
30073007

30083008
Py_GetCopyright:const char*:::
30093009

3010+
Py_GetExecPrefix:wchar_t*:::
3011+
3012+
Py_GetPath:wchar_t*:::
3013+
30103014
Py_GetPlatform:const char*:::
30113015

3016+
Py_GetPrefix:wchar_t*:::
3017+
3018+
Py_GetProgramFullPath:wchar_t*:::
3019+
3020+
Py_GetProgramName:wchar_t*:::
3021+
30123022
Py_GetVersion:const char*:::
30133023

30143024
Py_INCREF:void:::

Doc/data/stable_abi.dat

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)