typestar

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

  1. Las anotaciones dan a cada ajuste un tipo y un valor por defecto.
  2. model_validate acepta un dict de cadenas crudas.
  3. La conversión hace que el resto del programa vea tipos reales.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 5 de 5 en Modelos de Pydantic; paso 5 de 19 en Servicios web y acceso a datos.

← Anterior Siguiente →