]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
gh-110964: Remove private _PyArg functions (#110966)
authorVictor Stinner <vstinner@python.org>
Tue, 17 Oct 2023 12:30:31 +0000 (14:30 +0200)
committerGitHub <noreply@github.com>
Tue, 17 Oct 2023 12:30:31 +0000 (14:30 +0200)
commitbe5e8a010341c4d2d28ef53a1baed402ee06466e
tree6372a45676c7d5b8d07c69b67e889bbaf8f307e1
parent054f496bd45cf94eac4158fd60ac95ab5f8e45c4
gh-110964: Remove private _PyArg functions (#110966)

Move the following private functions and structures to
pycore_modsupport.h internal C API:

* _PyArg_BadArgument()
* _PyArg_CheckPositional()
* _PyArg_NoKeywords()
* _PyArg_NoPositional()
* _PyArg_ParseStack()
* _PyArg_ParseStackAndKeywords()
* _PyArg_Parser structure
* _PyArg_UnpackKeywords()
* _PyArg_UnpackKeywordsWithVararg()
* _PyArg_UnpackStack()
* _Py_ANY_VARARGS()

Changes:

* Python/getargs.h now includes pycore_modsupport.h to export
  functions.
* clinic.py now adds pycore_modsupport.h when one of these functions
  is used.
* Add pycore_modsupport.h includes when a C extension uses one of
  these functions.
* Define Py_BUILD_CORE_MODULE in C extensions which now include
  directly or indirectly (via code generated by Argument Clinic)
  pycore_modsupport.h:

  * _csv
  * _curses_panel
  * _dbm
  * _gdbm
  * _multiprocessing.posixshmem
  * _sqlite.row
  * _statistics
  * grp
  * resource
  * syslog

* _testcapi: bad_get() no longer uses METH_FASTCALL calling
  convention but METH_VARARGS. Replace _PyArg_UnpackStack() with
  PyArg_ParseTuple().
* _testcapi: add PYTESTCAPI_NEED_INTERNAL_API macro which is defined
  by _testcapi sub-modules which need the internal C API
  (pycore_modsupport.h): exceptions.c, float.c, vectorcall.c,
  watchers.c.
* Remove Include/cpython/modsupport.h header file.
  Include/modsupport.h no longer includes the removed header file.
* Fix mypy clinic.py
166 files changed:
Include/cpython/modsupport.h [deleted file]
Include/internal/pycore_modsupport.h
Include/modsupport.h
Makefile.pre.in
Misc/NEWS.d/next/C API/2023-10-17-10-21-59.gh-issue-110964.OxqEjd.rst [new file with mode: 0644]
Modules/_asynciomodule.c
Modules/_blake2/clinic/blake2b_impl.c.h
Modules/_blake2/clinic/blake2s_impl.c.h
Modules/_csv.c
Modules/_ctypes/_ctypes.c
Modules/_curses_panel.c
Modules/_dbmmodule.c
Modules/_gdbmmodule.c
Modules/_io/clinic/_iomodule.c.h
Modules/_io/clinic/bufferedio.c.h
Modules/_io/clinic/bytesio.c.h
Modules/_io/clinic/fileio.c.h
Modules/_io/clinic/iobase.c.h
Modules/_io/clinic/stringio.c.h
Modules/_io/clinic/textio.c.h
Modules/_io/clinic/winconsoleio.c.h
Modules/_multiprocessing/clinic/multiprocessing.c.h
Modules/_multiprocessing/clinic/posixshmem.c.h
Modules/_multiprocessing/clinic/semaphore.c.h
Modules/_multiprocessing/posixshmem.c
Modules/_randommodule.c
Modules/_sqlite/clinic/_sqlite3.connect.c.h
Modules/_sqlite/clinic/blob.c.h
Modules/_sqlite/clinic/connection.c.h
Modules/_sqlite/clinic/cursor.c.h
Modules/_sqlite/clinic/module.c.h
Modules/_sqlite/clinic/row.c.h
Modules/_sqlite/connection.c
Modules/_sqlite/row.c
Modules/_sre/clinic/sre.c.h
Modules/_ssl/clinic/cert.c.h
Modules/_statisticsmodule.c
Modules/_testcapi/clinic/exceptions.c.h
Modules/_testcapi/clinic/float.c.h
Modules/_testcapi/clinic/vectorcall.c.h
Modules/_testcapi/clinic/watchers.c.h
Modules/_testcapi/exceptions.c
Modules/_testcapi/float.c
Modules/_testcapi/parts.h
Modules/_testcapi/vectorcall.c
Modules/_testcapi/watchers.c
Modules/_testcapimodule.c
Modules/_testinternalcapi/clinic/test_lock.c.h
Modules/_testmultiphase.c
Modules/_xxsubinterpretersmodule.c
Modules/arraymodule.c
Modules/cjkcodecs/clinic/multibytecodec.c.h
Modules/clinic/_abc.c.h
Modules/clinic/_asynciomodule.c.h
Modules/clinic/_bisectmodule.c.h
Modules/clinic/_bz2module.c.h
Modules/clinic/_codecsmodule.c.h
Modules/clinic/_collectionsmodule.c.h
Modules/clinic/_csv.c.h
Modules/clinic/_curses_panel.c.h
Modules/clinic/_cursesmodule.c.h
Modules/clinic/_datetimemodule.c.h
Modules/clinic/_dbmmodule.c.h
Modules/clinic/_elementtree.c.h
Modules/clinic/_functoolsmodule.c.h
Modules/clinic/_gdbmmodule.c.h
Modules/clinic/_hashopenssl.c.h
Modules/clinic/_heapqmodule.c.h
Modules/clinic/_localemodule.c.h
Modules/clinic/_lzmamodule.c.h
Modules/clinic/_opcode.c.h
Modules/clinic/_operator.c.h
Modules/clinic/_pickle.c.h
Modules/clinic/_posixsubprocess.c.h
Modules/clinic/_queuemodule.c.h
Modules/clinic/_randommodule.c.h
Modules/clinic/_ssl.c.h
Modules/clinic/_statisticsmodule.c.h
Modules/clinic/_struct.c.h
Modules/clinic/_testclinic.c.h
Modules/clinic/_testclinic_depr.c.h
Modules/clinic/_testinternalcapi.c.h
Modules/clinic/_testmultiphase.c.h
Modules/clinic/_tkinter.c.h
Modules/clinic/_tracemalloc.c.h
Modules/clinic/_weakref.c.h
Modules/clinic/_winapi.c.h
Modules/clinic/_zoneinfo.c.h
Modules/clinic/arraymodule.c.h
Modules/clinic/binascii.c.h
Modules/clinic/cmathmodule.c.h
Modules/clinic/fcntlmodule.c.h
Modules/clinic/gcmodule.c.h
Modules/clinic/grpmodule.c.h
Modules/clinic/itertoolsmodule.c.h
Modules/clinic/mathmodule.c.h
Modules/clinic/overlapped.c.h
Modules/clinic/posixmodule.c.h
Modules/clinic/pwdmodule.c.h
Modules/clinic/pyexpat.c.h
Modules/clinic/readline.c.h
Modules/clinic/resource.c.h
Modules/clinic/selectmodule.c.h
Modules/clinic/sha1module.c.h
Modules/clinic/sha2module.c.h
Modules/clinic/sha3module.c.h
Modules/clinic/signalmodule.c.h
Modules/clinic/socketmodule.c.h
Modules/clinic/symtablemodule.c.h
Modules/clinic/syslogmodule.c.h
Modules/clinic/termios.c.h
Modules/clinic/unicodedata.c.h
Modules/clinic/zlibmodule.c.h
Modules/grpmodule.c
Modules/resource.c
Modules/syslogmodule.c
Objects/cellobject.c
Objects/clinic/bytearrayobject.c.h
Objects/clinic/bytesobject.c.h
Objects/clinic/classobject.c.h
Objects/clinic/codeobject.c.h
Objects/clinic/complexobject.c.h
Objects/clinic/descrobject.c.h
Objects/clinic/dictobject.c.h
Objects/clinic/enumobject.c.h
Objects/clinic/floatobject.c.h
Objects/clinic/funcobject.c.h
Objects/clinic/listobject.c.h
Objects/clinic/longobject.c.h
Objects/clinic/memoryobject.c.h
Objects/clinic/moduleobject.c.h
Objects/clinic/odictobject.c.h
Objects/clinic/structseq.c.h
Objects/clinic/tupleobject.c.h
Objects/clinic/typeobject.c.h
Objects/clinic/typevarobject.c.h
Objects/clinic/unicodeobject.c.h
Objects/descrobject.c
Objects/exceptions.c
Objects/funcobject.c
Objects/genericaliasobject.c
Objects/genobject.c
Objects/namespaceobject.c
Objects/sliceobject.c
Objects/stringlib/clinic/transmogrify.h.h
Objects/structseq.c
PC/_wmimodule.cpp
PC/clinic/_testconsole.c.h
PC/clinic/_wmimodule.cpp.h
PC/clinic/msvcrtmodule.c.h
PC/clinic/winreg.c.h
PC/clinic/winsound.c.h
PC/winsound.c
PCbuild/pythoncore.vcxproj
PCbuild/pythoncore.vcxproj.filters
Python/clinic/Python-tokenize.c.h
Python/clinic/_warnings.c.h
Python/clinic/bltinmodule.c.h
Python/clinic/context.c.h
Python/clinic/import.c.h
Python/clinic/instrumentation.c.h
Python/clinic/marshal.c.h
Python/clinic/sysmodule.c.h
Python/clinic/traceback.c.h
Python/getargs.c
Tools/clinic/clinic.py