python-code-style
Ajuda seu agente a seguir padrões de estilo, nomeação e documentação em código Python. É útil para manter o código limpo, legível e fácil de entender.
O que ela faz
Ajuda a organizar e padronizar o código escrito em Python. Garante que o código seja fácil de ler, entender e manter, seguindo boas práticas de nomenclatura e documentação.
Quando usar
- ✓Ao iniciar um novo projeto Python.
- ✓Ao revisar o código de outra pessoa.
- ✓Ao configurar ferramentas que verificam a qualidade do código.
Exemplo do que pedir para a IA
“Como posso garantir que meu código Python siga as melhores práticas de estilo?”
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
Utiliza ferramentas automáticas para formatar o código e verificar se ele segue padrões. Também define regras claras para nomear variáveis, funções e classes, além de como escrever a documentação.
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-code-styleOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/python-development/skills/python-code-style/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.
Estilo e Documentação de Código Python
Um estilo de código consistente e documentação clara tornam bases de código fáceis de manter e colaborativas. Esta habilidade abrange ferramentas modernas de Python, convenções de nomenclatura e padrões de documentação.
Quando Usar Esta Habilidade
- Configurar linting e formatação para um novo projeto
- Escrever ou revisar docstrings
- Estabelecer padrões de codificação em equipe
- Configurar ruff, mypy ou pyright
- Revisar código para consistência de estilo
- Criar documentação de projeto
Conceitos Principais
1. Formatação Automatizada
Deixe ferramentas lidarem com debates de formatação. Configure uma vez, aplique automaticamente.
2. Nomenclatura Consistente
Siga as convenções do PEP 8 com nomes significativos e descritivos.
3. Documentação como Código
Docstrings devem ser mantidas junto com o código que descrevem.
4. Anotações de Tipo
Código Python moderno deve incluir dicas de tipo para todas as APIs públicas.
Início Rápido
# Install modern tooling
pip install ruff mypy
# Configure in pyproject.toml
[tool.ruff]
line-length = 120
target-version = "py312" # Adjust based on your project's minimum Python version
[tool.mypy]
strict = true
Padrões Fundamentais
Padrão 1: Ferramentas Modernas de Python
Use ruff como um linter e formatador tudo-em-um. Ele substitui flake8, isort e black por uma única ferramenta rápida.
# pyproject.toml
[tool.ruff]
line-length = 120
target-version = "py312" # Adjust based on your project's minimum Python version
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"UP", # pyupgrade
"SIM", # flake8-simplify
]
ignore = ["E501"] # Line length handled by formatter
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
Execute com:
ruff check --fix . # Lint and auto-fix
ruff format . # Format code
Padrão 2: Configuração de Verificação de Tipo
Configure verificação de tipo rigorosa para código de produção.
# pyproject.toml
[tool.mypy]
python_version = "3.12"
strict = true
warn_return_any = true
warn_unused_ignores = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
[[tool.mypy.overrides]]
module = "tests.*"
disallow_untyped_defs = false
Alternativa: Use pyright para verificação mais rápida.
[tool.pyright]
pythonVersion = "3.12"
typeCheckingMode = "strict"
Padrão 3: Convenções de Nomenclatura
Siga o PEP 8 com ênfase na clareza sobre a brevidade.
Arquivos e Módulos:
# Good: Descriptive snake_case
user_repository.py
order_processing.py
http_client.py
# Avoid: Abbreviations
usr_repo.py
ord_proc.py
http_cli.py
Classes e Funções:
# Classes: PascalCase
class UserRepository:
pass
class HTTPClientFactory: # Acronyms stay uppercase
pass
# Functions and variables: snake_case
def get_user_by_email(email: str) -> User | None:
retry_count = 3
max_connections = 100
Constantes:
# Module-level constants: SCREAMING_SNAKE_CASE
MAX_RETRY_ATTEMPTS = 3
DEFAULT_TIMEOUT_SECONDS = 30
API_BASE_URL = "https://api.example.com"
Padrão 4: Organização de Importações
Agrupe importações em uma ordem consistente: biblioteca padrão, terceiros, local.
# Standard library
import os
from collections.abc import Callable
from typing import Any
# Third-party packages
import httpx
from pydantic import BaseModel
from sqlalchemy import Column
# Local imports
from myproject.models import User
from myproject.services import UserService
Use importações absolutas exclusivamente:
# Preferred
from myproject.utils import retry_decorator
# Avoid relative imports
from ..utils import retry_decorator
Padrões Avançados
Padrão 5: Docstrings Estilo Google
Escreva docstrings para todas as classes, métodos e funções públicas.
Função Simples:
def get_user(user_id: str) -> User:
"""Retrieve a user by their unique identifier."""
...
Função Complexa:
def process_batch(
items: list[Item],
max_workers: int = 4,
on_progress: Callable[[int, int], None] | None = None,
) -> BatchResult:
"""Processa itens concorrentemente usando um pool de workers.
Processa cada item no lote usando o número configurado de
workers. O progresso pode ser monitorado através do callback opcional.
Args:
items: Os itens a serem processados. Não pode estar vazio.
max_workers: Número máximo de workers concorrentes. O padrão é 4.
…
Perguntas frequentes
O que é 'linting'?
É o processo de analisar o código em busca de erros de programação, bugs, erros de estilo e construções suspeitas.
O que são 'docstrings'?
São strings de documentação que explicam o que uma função, classe ou módulo faz, ajudando outros programadores (e você mesmo no futuro) a entender o código.
Por que a nomenclatura é importante?
Nomes claros e consistentes para variáveis, funções e classes tornam o código mais fácil de ler e entender, evitando confusões.
Detalhes
Descrição original do autor
Python code style, linting, formatting, naming conventions, and documentation standards. Use when writing new code, reviewing style, configuring linters, writing docstrings, or establishing project standards.
repo: wshobson/agents
Popularidade
- Estrelas no GitHub
- 41 mil
- Posição no ranking
- #4925
- 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
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC