On Sun, Jan 10, 2021 at 9:27 PM Serhiy Storchaka <storch...@gmail.com> wrote:
> Because it will not produce compile-time error when you include that
> header files directly.
>
> The division of these declarations on few files is a deep implementation
> detail. Header file "cpython/fileobject.h" is not a part of API and we
> do not want users to use them directly and then fail because in next
> feature (or even bugfix) release some declarations have been moved to
> other files.

Yeah, the cpython/ subdirectory is the API which is excluded from the
limited C API (Py_LIMITED_API macro). But for end users, #include
"Python.h" should be enough.

#ifndef Py_CPYTHON_FILEOBJECT_H
#  error "this header file must not be included directly"
#endif

This is to prevent users to include the API by mistake. Only the
parent header file must be used, like #include "fileobject.h".

Victor
-- 
Night gathers, and now my watch begins. It shall not end until my death.
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/5OYSITFK3ZXI5WJO6OW7YNZJCUHPJFFW/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to