python-configuration
Faz seu agente gerenciar configurações usando variáveis de ambiente em Python. É útil para adaptar o programa a diferentes ambientes sem mudar o código.
O que ela faz
Essa ferramenta ajuda a organizar as configurações de um programa de computador. Em vez de escrever valores importantes (como senhas ou endereços de sites) diretamente no código, ela os lê de variáveis de ambiente, tornando o programa mais flexível e seguro.
Quando usar
- ✓Ao iniciar um novo projeto e querer organizar suas configurações.
- ✓Quando você precisa que o mesmo código funcione em diferentes ambientes (como desenvolvimento e produção).
- ✓Para gerenciar informações sensíveis, como senhas e chaves de API, de forma segura.
Exemplo do que pedir para a IA
“Como posso configurar meu aplicativo para usar variáveis de ambiente para o banco de dados e chaves de API?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ela usa uma biblioteca chamada Pydantic para definir quais configurações são esperadas e seus tipos (texto, número, etc.). Ao iniciar o programa, ela verifica se todas as configurações necessárias foram fornecidas através de variáveis de ambiente e as carrega.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add wshobson/agents --skill python-configurationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/python-development/skills/python-configuration/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Gerenciamento de Configuração em Python
Externalize a configuração do código usando variáveis de ambiente e configurações tipadas. Uma configuração bem gerenciada permite que o mesmo código seja executado em qualquer ambiente sem modificação.
Quando Usar Esta Habilidade
- Configurando o sistema de configuração de um novo projeto
- Migrando de valores codificados para variáveis de ambiente
- Implementando
pydantic-settingspara configuração tipada - Gerenciando segredos e valores sensíveis
- Criando configurações específicas do ambiente (dev/staging/prod)
- Validando a configuração na inicialização da aplicação
Conceitos Principais
1. Configuração Externalizada
Todos os valores específicos do ambiente (URLs, segredos, flags de recursos) vêm de variáveis de ambiente, não do código.
2. Configurações Tipadas
Analise e valide a configuração em objetos tipados na inicialização, não espalhados pelo código.
3. Falha Rápida
Valide toda a configuração necessária na inicialização da aplicação. Configuração ausente deve falhar imediatamente com uma mensagem clara.
4. Padrões Sensatos
Forneça padrões razoáveis para desenvolvimento local, enquanto exige valores explícitos para configurações sensíveis.
Início Rápido
from pydantic_settings import BaseSettings
from pydantic import Field
class Settings(BaseSettings):
database_url: str = Field(alias="DATABASE_URL")
api_key: str = Field(alias="API_KEY")
debug: bool = Field(default=False, alias="DEBUG")
settings = Settings() # Loads from environment
Padrões Fundamentais
Padrão 1: Configurações Tipadas com Pydantic
Crie uma classe de configurações central que carrega e valida toda a configuração.
from pydantic_settings import BaseSettings
from pydantic import Field, PostgresDsn, ValidationError
import sys
class Settings(BaseSettings):
"""Application configuration loaded from environment variables."""
# Database
db_host: str = Field(alias="DB_HOST")
db_port: int = Field(default=5432, alias="DB_PORT")
db_name: str = Field(alias="DB_NAME")
db_user: str = Field(alias="DB_USER")
db_password: str = Field(alias="DB_PASSWORD")
# Redis
redis_url: str = Field(default="redis://localhost:6379", alias="REDIS_URL")
# API Keys
api_secret_key: str = Field(alias="API_SECRET_KEY")
# Feature flags
enable_new_feature: bool = Field(default=False, alias="ENABLE_NEW_FEATURE")
model_config = {
"env_file": ".env",
"env_file_encoding": "utf-8",
}
# Create singleton instance at module load
try:
settings = Settings()
except ValidationError as e:
print(f"Configuration error:\n{e}")
sys.exit(1)
Importe settings em toda a sua aplicação:
from myapp.config import settings
def get_database_connection():
return connect(
host=settings.db_host,
port=settings.db_port,
database=settings.db_name,
)
Padrão 2: Falha Rápida em Configuração Ausente
Configurações obrigatórias devem travar a aplicação imediatamente com um erro claro.
from pydantic_settings import BaseSettings
from pydantic import Field, ValidationError
import sys
class Settings(BaseSettings):
# Required - no default means it must be set
api_key: str = Field(alias="API_KEY")
database_url: str = Field(alias="DATABASE_URL")
# Optional with defaults
log_level: str = Field(default="INFO", alias="LOG_LEVEL")
try:
settings = Settings()
except ValidationError as e:
print("=" * 60)
print("CONFIGURATION ERROR")
print("=" * 60)
for error in e.errors():
field = error["loc"][0]
print(f" - {field}: {error['msg']}")
print("\nPlease set the required environment variables.")
sys.exit(1)
Um erro claro na inicialização é melhor do que uma falha None críptica no meio de uma requisição.
Padrão 3: Padrões de Desenvolvimento Local
Forneça padrões sensatos para desenvolvimento local, enquanto exige valores explícitos para segredos.
class Settings(BaseSettings):
# Has local default, but prod will override
db_host: str = Field(default="localhost", alias="DB_HOST")
db_port: int = Field(default=5432, alias="DB_PORT")
# Always required - no default for secrets
db_password: str = Field(alias="DB_PASSWORD")
api_secret_key: str = Field(alias="API_SECRET_KEY")
# Development convenience
debug: bool = Field(default=False, alias="DEBUG")
model_config = {"env_file": ".env"}
Crie um arquivo .env para desenvolvimento local (nunca comite isso):
# .env (adicione ao .gitignore)
…
Perguntas frequentes
Por que não colocar as senhas diretamente no código?
Colocar senhas e outras informações sensíveis diretamente no código é inseguro. Se o código for compartilhado ou exposto acidentalmente, essas informações podem ser roubadas. Usar variáveis de ambiente mantém essas informações fora do código principal.
O que são 'variáveis de ambiente'?
São valores que você define no sistema operacional onde o programa está rodando. O programa pode ler esses valores sem que eles estejam escritos diretamente no código. Por exemplo, você pode definir uma variável chamada `DATABASE_URL` com o endereço do seu banco de dados.
O que acontece se uma configuração importante estiver faltando?
O programa irá parar de funcionar logo no início, mostrando uma mensagem clara sobre qual configuração está faltando. Isso é melhor do que o programa falhar mais tarde de uma forma confusa.
Detalhes
Descrição original do autor
Python configuration management via environment variables and typed settings. Use when externalizing config, setting up pydantic-settings, managing secrets, or implementing environment-specific behavior.
repo: wshobson/agents
Popularidade
- Estrelas no GitHub
- 41 mil
- Posição no ranking
- #4926
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
screen-reader-testing
Faz seu agente testar sites usando leitores de tela para garantir que sejam acessíveis.
wshobson/agents
wcag-audit-patterns
Ajuda seu agente a auditar sites para acessibilidade e corrigir problemas de acordo com as diretrizes WCAG.
wshobson/agents
multi-reviewer-patterns
Faz seu agente coordenar revisões de código paralelas, deduplicando achados e consolidando relatórios.
wshobson/agents
parallel-debugging
Permite ao agente depurar problemas complexos com investigações paralelas e análise de causa raiz.
wshobson/agents
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC