Skip to content

Instantly share code, notes, and snippets.

@pagueru
Last active June 26, 2025 23:40
Show Gist options
  • Save pagueru/cc730cacded7220039a3356eaa9d3d5b to your computer and use it in GitHub Desktop.
Save pagueru/cc730cacded7220039a3356eaa9d3d5b to your computer and use it in GitHub Desktop.
[project]
name = "project-name"
version = "0.1.0"
description = ""
authors = [
{ name = "Raphael Coelho", email = "[email protected]" }
]
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"pyyaml>=6.0.2",
]
[project.optional-dependencies]
dev = [
"ruff>=0.11.0",
"pytest>=8.3.4",
"pre-commit>=4.2.0",
"pytest-cov>=6.0.0",
]
[project.urls]
repository = "https://github.com/pagueru"
[tool.ruff]
fix = true # Ativa correções automáticas
target-version = "py313" # Compatível com Python 3.13
line-length = 100 # Comprimento máximo da linha
[tool.ruff.lint]
select = ["ALL"] # Ativa todas as regras de linting, análise e estilo
ignore = [
# Conflitos de formatação - resolvidos automaticamente pelo formatador
"D203", # Conflito com D211: linha em branco antes da docstring da classe
"D212", # Conflito com D213: resumo da docstring deve estar na primeira linha
"COM812", # Vírgula ausente - já gerenciada pelo formatador automático
"ISC001", # Concatenação implícita de strings - formatador resolve automaticamente
"G004", # Logging f-string - permite uso mais legível que % formatting
# Depuração e desenvolvimento - flexibilidade para ambiente de desenvolvimento
"S101", # Permite assert statements para testes e validações rápidas
"T201", # Permite print() para depuração e logging temporário
"T203", # Permite pprint() para visualização de estruturas de dados complexas
"ERA001", # Permite código comentado temporariamente durante desenvolvimento
# Flexibilidade de tipagem e performance
"PERF401", # Permite for-loops em vez de list comprehensions para maior clareza
"ANN401", # Permite typing.Any quando flexibilidade de tipo é necessária
"TRY003", # Permite mensagens de exceção longas inline para contexto detalhado
"EM101", # Permite string literals em exceções para simplicidade
# Segurança - casos específicos controlados
"S105", # Permite hardcoded passwords em configurações de desenvolvimento/teste
# Convenções de nomenclatura - flexibilidade para casos especiais
"RUF001", # Permite caracteres ambíguos (EN DASH) em strings quando necessário
"N999", # Permite nomes de módulos fora do padrão snake_case para casos especiais
# Docstrings - permissões temporárias durante desenvolvimento inicial
"D100", # Docstring obrigatória em módulos públicos - aplicar gradualmente
"D101", # Docstring obrigatória em classes públicas - aplicar gradualmente
"D102", # Docstring obrigatória em métodos públicos - aplicar gradualmente
"D103", # Docstring obrigatória em funções públicas - aplicar gradualmente
"D107", # Docstring obrigatória em métodos __init__ - aplicar gradualmente
# Imports - flexibilidade para estruturação de módulos
"F401", # Imports não utilizados - comum em __init__.py e módulos de interface
# Comentários TODO/FIXME - permite marcadores sem metadados rigorosos
"TD001", # TOD0 sem descrição detalhada - permite marcação rápida
"TD002", # TOD0 sem autor - evita overhead em projetos pequenos
"TD003", # TOD0 sem link para issue - permite uso informal
"FIX001", # FIXME sem descrição detalhada - permite marcação rápida
"FIX002", # FIXME sem ser tratado como erro crítico - permite graduação
"FIX003", # FIXME sem link para issue - permite uso informal
]
[tool.ruff.lint.pydocstyle]
convention = "google" # Exigir docstrings ("numpy" ou "pep257")
[tool.pytest.ini_options]
pythonpath = [".","src"] # Diretórios no PYTHONPATH
[tool.hatch.build.targets.wheel]
packages = [".","src"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment