O que python-configuration faz?
Gerenciamento de configuração Python via variáveis de ambiente e configurações tipadas. Use ao externalizar config, configurar pydantic-settings, gerenciar segredos ou implementar comportamento específico de ambiente.
Visão Geral
Esta skill ajuda você a gerenciar configurações de forma eficiente em projetos Python, separando configurações do código fonte. Ela utiliza pydantic-settings para fornecer validação de tipos, carregamento automático de variáveis de ambiente e documentação de configuração.
Funcionalidades
- Configuração Tipada: Defina modelos de configuração com tipos Python (
str,int,bool, etc.) para garantir que as configurações sejam válidas. - Carregamento de Variáveis de Ambiente: Carrega automaticamente variáveis de ambiente de arquivos
.enve do ambiente do sistema. - Separação de Ambiente: Use diferentes arquivos
.env(.env.development,.env.production) para diferentes ambientes. - Gerenciamento de Segredos: Capacidade de gerenciar segredos através de variáveis de ambiente, mantendo-os fora do código fonte.
- Integração com Frameworks: Funciona perfeitamente com FastAPI, Django, Flask e outros frameworks Python populares.
Como Usar
-
Instale o pydantic-settings:
pip install pydantic-settings -
Crie um modelo de configuração:
from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): app_name: str = "MinhaApp" debug: bool = False database_url: str secret_key: str model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8") -
Carregue as configurações:
settings = Settings() print(settings.app_name) # "MinhaApp" -
Use variáveis de ambiente:
Crie um arquivo
.env:DATABASE_URL=postgresql://user:pass@localhost/db SECRET_KEY=mysecretkey DEBUG=true
Práticas Recomendadas
- Nunca commitar arquivos
.envque contenham segredos. Adicione.envao seu.gitignore. - Use nomes de variáveis em maiúsculas e separadas por underscore (ex:
DATABASE_URL). - Forneça valores padrão para configurações que não são críticas.
- Documente cada configuração no código usando docstrings.
Exemplo Avançado
from pydantic_settings import BaseSettings, SettingsConfigDict
from typing import List, Optional
class Settings(BaseSettings):
app_name: str = "MinhaApp"
admin_emails: List[str] = []
items_per_page: int = 10
allowed_hosts: List[str] = ["localhost", "127.0.0.1"]
model_config = SettingsConfigDict(env_file=".env")
settings = Settings()
Suporte a Frameworks
- FastAPI: Use
Settingscomo dependência. - Django: Carregue configurações em
settings.py. - Flask: Defina configurações via
app.config.update().