Configuración desde el entorno en Python
Un modelo para la configuración, leído del entorno y con valores por defecto.
import os
from pydantic import BaseModel, Field
class Ajustes(BaseModel):
port: int = 8080
debug: bool = False
theme: str = "default"
languages: int = Field(default=10, ge=1)
@classmethod
def from_env(cls, prefix="TYPESTAR_"):
crudo = {key[len(prefix):].lower(): value
for key, value in os.environ.items() if key.startswith(prefix)}
return cls.model_validate(crudo)
os.environ["TYPESTAR_PORT"] = "9000"
os.environ["TYPESTAR_DEBUG"] = "true"
ajustes = Ajustes.from_env()
print(ajustes.port, ajustes.debug, ajustes.theme)
Cómo funciona
- Las anotaciones dan a cada ajuste un tipo y un valor por defecto.
model_validateacepta un dict de cadenas crudas.- La conversión hace que el resto del programa vea tipos reales.
Palabras clave y builtins usados aquí
boolclassclsdefforifintlenprintreturnstr
El intento, en números
- Líneas
- 22
- Caracteres a escribir
- 525
- Tokens
- 147
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 84 segundos.
Paso 5 de 5 en Modelos de Pydantic; paso 5 de 19 en Servicios web y acceso a datos.