Skip to content

Conversation

rtobar
Copy link
Collaborator

@rtobar rtobar commented Oct 14, 2025

Si bien la forma en que se ejecutaba e importaban la configuración de Sphinx de CPython funciona, no es la mejor manera de hacerlo. Esto dado que Sphinx inyecta algunos nombres globales al cual pueden acceder los archivos conf.py, y que nuestro método no toma en cuenta.

Este commit cambia la forma en que se importa y ejecuta el archivo conf.py de la documentación de CPython. En vez de añadirlo al path e importarlo via "import" ahora se compilan los contenidos del archivo, y se ejecutan directamente con eval(). A este último se le entrega como contexto el diccionario globals(), con lo que se logra el objetivo de que éste sea modificado por el código siendo ejecutado. Asimismo el uso de globals() también logra hacer llegar cualquier valor que Sphinx haya inyectado en nuestro conf.py al conf.py de CPython.

Si bien la forma en que se ejecutaba e importaban la configuración de
Sphinx de CPython funciona, no es la mejor manera de hacerlo. Esto dado
que Sphinx inyecta algunos nombres globales al cual pueden acceder los
archivos conf.py, y que nuestro método no toma en cuenta.

Este commit cambia la forma en que se importa y ejecuta el archivo
conf.py de la documentación de CPython. En vez de añadirlo al path e
importarlo via "import" ahora se compilan los contenidos del archivo, y
se ejecutan directamente con eval(). A este último se le entrega como
contexto el diccionario globals(), con lo que se logra el objetivo de
que éste sea modificado por el código siendo ejecutado. Asimismo el uso
de globals() también logra hacer llegar cualquier valor que Sphinx haya
inyectado en nuestro conf.py al conf.py de CPython.

Signed-off-by: Rodrigo Tobar <[email protected]>
Co-authored-by: Cristián Maureira-Fredes <[email protected]>
@cmaureir cmaureir merged commit d7e5cbf into 3.13 Oct 18, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants