Me gustaría importar dinámicamente varias configuraciones y configuraciones en mi programa python, lo que normalmente harías con un archivo .ini o algo similar.Usando Python como el lenguaje de configuración para un programa de Python
Empecé con JSON para la sintaxis del archivo de configuración, luego me moví a YAML, pero realmente me gustaría usar Python. Minimizará la cantidad de formatos y me permitirá usar código en el archivo de configuración, que puede ser conveniente.
Pirateé un sistema basado __import__
para permitir el uso de este código que se parece a:
account_config = __import__(settings.CONFIG_DIR + '.account_name', fromlist=[settings.CONFIG_DIR])
Básicamente funciona, pero me estoy quedando en todo tipo de problemas esotéricos - por ejemplo. si trato de importar "prueba", recoge alguna biblioteca interna de python que está en la ruta de Python en lugar de mi prueba.
Así que me pregunto: ¿está utilizando python como el lenguaje de configuración para un programa python o estoy pidiendo problemas? ¿Hay ejemplos de los que puedo robar?
El proyecto Django hace casi exactamente esto. Es común. Es una buena idea. Solo elige un nombre mejor. La biblioteca está llena de nombres que no puedes usar. Sin embargo, hay una cantidad casi infinita de nombres que ** no ** en la biblioteca. –
Gracias S.Lott. Me encontré con el problema de la "prueba" casi de inmediato, así que me asusté. Me preocupa que haya enfrentamientos de nombres aleatorios que causarán pesadillas de depuración en la producción. – Parand
No son "aleatorios". Están bien documentados en la documentación de la biblioteca. –