Read the PEP 741: Python Configuration C API.
Add a C API to the limited C API to configure the Python preinitialization and initialization, and to get the current configuration. It can be used with the stable ABI.
sys.get_config(name) function to get the current value of a configuration option.
Allow setting custom configuration options, not used by Python but by third-party code. Options are referred to by their name as a string.
PEP 587 “Python Initialization Configuration” unified all the ways to configure the Python initialization. This PEP unifies also the configuration of the Python preinitialization and the Python initialization in a single API.
There is no API to set a configuration option while Python is running. Only to set the initialization configuration. Some people discussed it, but I didn’t see a clear willingness to have this feature.
Technically, it can be implemented. If we decide to add such API, I would suggest to make most options read-only, and add callbacks on others to validate values (reject invalid values) and execute code when an option is modified (ex: update/invalidate caches).
For example, do you want to be able to change
bytes_warning option at runtime? I’m not sure that the Python ecosystem is ready to see this option changing between two lines of code.
It may be interesting to have a Python API (like
sys.set_config()) to set some options at Python startup.