]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
gh-107603: Argument Clinic: Only include pycore_gc.h if needed (#108726)
authorVictor Stinner <vstinner@python.org>
Thu, 31 Aug 2023 21:42:34 +0000 (23:42 +0200)
committerGitHub <noreply@github.com>
Thu, 31 Aug 2023 21:42:34 +0000 (23:42 +0200)
commitad73674283978a8bf8f1983bfd69150e60e6225f
treefa2e42b2a4cdfb24e5459194930db6b490e1eba8
parent2bd960b57944107fbfbd8ff005b4223e1ea6555f
gh-107603: Argument Clinic: Only include pycore_gc.h if needed (#108726)

Argument Clinic now only includes pycore_gc.h if PyGC_Head is needed,
and only includes pycore_runtime.h if _Py_ID() is needed.

* Add 'condition' optional argument to Clinic.add_include().
* deprecate_keyword_use() includes pycore_runtime.h when using
  the _PyID() function.
* Fix rendering of includes: comments start at the column 35.
* Mark PC/clinic/_wmimodule.cpp.h and
  "Objects/stringlib/clinic/*.h.h" header files as generated in
  .gitattributes.

Effects:

* 42 header files generated by AC no longer include the internal C
  API, instead of 4 header files before. For example,
  Modules/clinic/_abc.c.h no longer includes the internal C API.
* Fix _testclinic_depr.c.h: it now always includes pycore_runtime.h
  to get _Py_ID().
131 files changed:
.gitattributes
Lib/test/test_clinic.py
Modules/_blake2/clinic/blake2b_impl.c.h
Modules/_blake2/clinic/blake2s_impl.c.h
Modules/_ctypes/clinic/callproc.c.h
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/_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/_sre/clinic/sre.c.h
Modules/_ssl/clinic/cert.c.h
Modules/_testcapi/clinic/exceptions.c.h
Modules/_testcapi/clinic/float.c.h
Modules/_testcapi/clinic/long.c.h
Modules/_testcapi/clinic/vectorcall.c.h
Modules/_testcapi/clinic/watchers.c.h
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/_contextvarsmodule.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/_lsprof.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/_typingmodule.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/md5module.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
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/stringlib/clinic/transmogrify.h.h
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
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
Tools/clinic/clinic.py