diff options
author | Eric Snow <ericsnowcurrently@gmail.com> | 2024-04-02 20:35:52 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-02 20:35:52 (GMT) |
commit | f341d6017dd4e80509b69b5a9e2625b71b70f205 (patch) | |
tree | fee03c2fb5ec944ca20b41e5a390c73f1d03a241 /Python/initconfig.c | |
parent | cae4cdd07ddfcd8bcc05d683bac53815391c9907 (diff) | |
download | cpython-f341d6017dd4e80509b69b5a9e2625b71b70f205.zip cpython-f341d6017dd4e80509b69b5a9e2625b71b70f205.tar.gz cpython-f341d6017dd4e80509b69b5a9e2625b71b70f205.tar.bz2 |
gh-76785: Add PyInterpreterConfig Helpers (gh-117170)
These helpers make it easier to customize and inspect the config used to initialize interpreters. This is especially valuable in our tests. I found inspiration from the PyConfig API for the PyInterpreterConfig dict conversion stuff. As part of this PR I've also added a bunch of tests.
Diffstat (limited to 'Python/initconfig.c')
-rw-r--r-- | Python/initconfig.c | 25 |
1 files changed, 3 insertions, 22 deletions
diff --git a/Python/initconfig.c b/Python/initconfig.c index 215d6a1..d91a819 100644 --- a/Python/initconfig.c +++ b/Python/initconfig.c @@ -24,6 +24,9 @@ # endif #endif +#include "config_common.h" + + /* --- PyConfig spec ---------------------------------------------- */ typedef enum { @@ -1098,21 +1101,6 @@ _PyConfig_AsDict(const PyConfig *config) } -static PyObject* -config_dict_get(PyObject *dict, const char *name) -{ - PyObject *item; - if (PyDict_GetItemStringRef(dict, name, &item) < 0) { - return NULL; - } - if (item == NULL) { - PyErr_Format(PyExc_ValueError, "missing config key: %s", name); - return NULL; - } - return item; -} - - static void config_dict_invalid_value(const char *name) { @@ -1120,13 +1108,6 @@ config_dict_invalid_value(const char *name) } -static void -config_dict_invalid_type(const char *name) -{ - PyErr_Format(PyExc_TypeError, "invalid config type: %s", name); -} - - static int config_dict_get_int(PyObject *dict, const char *name, int *result) { |