Una de mis características favoritas sobre python es que puedes escribir archivos de configuración en python que son muy fáciles de leer y entender. Si pone límites a sí mismo, puede estar seguro de que los no pythonistas sabrán exactamente lo que usted quiere decir y serán perfectamente capaces de reconfigurar su programa.¿Es siempre cortés poner código en un archivo de configuración de python?
Mi pregunta es, ¿cuáles son exactamente esos límites? Mi propia heurística personal fue
- Evite el control de flujo. Sin funciones, bucles o condicionales. Esos no estarían en un archivo de configuración de texto y la gente no espera haberlos entendido. En general, probablemente no debería importar el orden en que se ejecutan sus declaraciones.
- Se adhieren a las asignaciones literales. Los métodos y las funciones que se invocan sobre los objetos son más difíciles de analizar. Cualquier cosa implícita va a ser un desastre. Si hay algo complicado que tiene que suceder con sus parámetros, cambie la forma en que se interpretan.
- Las palabras clave de idioma y el manejo de errores son correctos.
Supongo que pregunto esto porque me encontré con una situación con mi archivo de configuración Django donde parece ser útil romper estas reglas. Me gusta, pero me siento un poco culpable. Básicamente, mi proyecto se implementa a través de comprobaciones de svn en un par de servidores diferentes que no se configurarán del mismo modo (algunos compartirán una base de datos, otros no, por ejemplo). Así, lanzo un gancho al final:
try:
from settings_overrides import *
LOCALIZED = True
except ImportError:
LOCALIZED = False
donde settings_overrides está en el camino de pitón pero fuera de la copia de trabajo. ¿Qué opinas sobre este ejemplo o sobre los límites de configuración de python en general?
"cambiar la forma en que interpretaron" -> "cambiar la forma en que se interpretan". Sé que no importa, pero es una molestia ... – tgray
Gracias. Me siento tan avergonzado. –