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().
This commit is contained in:
Victor Stinner 2023-08-31 23:42:34 +02:00 committed by GitHub
parent 2bd960b579
commit ad73674283
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
131 changed files with 448 additions and 727 deletions

View file

@ -3,11 +3,10 @@ preserve
[clinic start generated code]*/
#if defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_MODULE)
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
# include "pycore_gc.h" // PyGC_Head
# include "pycore_runtime.h" // _Py_ID()
#endif
static PyObject *
tokenizeriter_new_impl(PyTypeObject *type, PyObject *readline,
int extra_tokens, const char *encoding);
@ -80,4 +79,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
/*[clinic end generated code: output=48be65a2808bdfa6 input=a9049054013a1b77]*/
/*[clinic end generated code: output=406b5a433a59069c input=a9049054013a1b77]*/