pyproject.toml
Rama main · réplica de lectura del repositorio original.
[tool.uv]
package = false
[dependency-groups]
dev = [
"ruff>=0.8",
"pyright>=1.1",
"codespell>=2.0",
"tox>=4.0",
"pytest>=8.0",
"pytest-cov>=4.0",
"coverage>=7.0",
"ops[testing]>=2.17",
]
[tool.ruff]
line-length = 99
target-version = "py312"
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"N", # pep8-naming
"UP", # pyupgrade
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"SIM", # flake8-simplify
"RUF", # ruff-specific rules
]
ignore = [
"E501", # line too long (handled by formatter)
]
[tool.ruff.lint.per-file-ignores]
"tests/**" = [
"D", # pydocstyle - no docstrings required in tests
]
[tool.ruff.lint.isort]
known-first-party = ["charmarr"]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
line-ending = "lf"
[tool.pyright]
pythonVersion = "3.12"
pythonPlatform = "Linux"
typeCheckingMode = "standard"
exclude = [
"**/__pycache__",
"**/.*",
".venv",
]
reportMissingImports = true
reportMissingTypeStubs = false
reportUnusedImport = true
reportUnusedVariable = true
reportDuplicateImport = true
reportPrivateUsage = true
reportUnnecessaryIsInstance = true
reportUnnecessaryCast = true
reportUnnecessaryComparison = true
reportConstantRedefinition = true
reportIncompatibleMethodOverride = true
reportIncompatibleVariableOverride = true
reportUntypedFunctionDecorator = false
reportUntypedClassDecorator = false
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"def __repr__",
"raise AssertionError",
"raise NotImplementedError",
"if __name__ == .__main__.:",
"if TYPE_CHECKING:",
"@abstractmethod",
]
[tool.pytest.ini_options]
minversion = "8.0"
addopts = "-v --tb=short"
log_cli_level = "INFO"