157 lines
4.0 KiB
TOML
157 lines
4.0 KiB
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "claude-scripts"
|
|
version = "0.1.0"
|
|
description = "A comprehensive Python code quality analysis toolkit for detecting duplicates, complexity metrics, and modernization opportunities"
|
|
authors = [{name = "Your Name", email = "your.email@example.com"}]
|
|
readme = "README.md"
|
|
license = {file = "LICENSE"}
|
|
requires-python = ">=3.12"
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Operating System :: OS Independent",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Topic :: Software Development :: Quality Assurance",
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
]
|
|
keywords = ["code-quality", "static-analysis", "duplicate-detection", "complexity", "refactoring"]
|
|
dependencies = [
|
|
"click>=8.0.0",
|
|
"pyyaml>=6.0",
|
|
"pydantic>=2.0.0",
|
|
"radon>=6.0.0",
|
|
"tomli>=2.0.0; python_version < '3.11'",
|
|
"python-Levenshtein>=0.20.0",
|
|
"datasketch>=1.5.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=7.0.0",
|
|
"pytest-cov>=4.0.0",
|
|
"ruff>=0.1.0",
|
|
"mypy>=1.5.0",
|
|
"pre-commit>=3.0.0",
|
|
"types-PyYAML>=6.0.0",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/yourusername/claude-scripts"
|
|
Repository = "https://github.com/yourusername/claude-scripts"
|
|
Issues = "https://github.com/yourusername/claude-scripts/issues"
|
|
Documentation = "https://github.com/yourusername/claude-scripts#readme"
|
|
|
|
[project.scripts]
|
|
claude-quality = "quality.cli.main:cli"
|
|
|
|
[tool.hatch.build.targets.sdist]
|
|
exclude = [
|
|
"/.github",
|
|
"/docs",
|
|
"/.vscode",
|
|
"/.pytest_cache",
|
|
"/.mypy_cache",
|
|
"/.ruff_cache",
|
|
]
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/quality"]
|
|
|
|
[tool.ruff]
|
|
target-version = "py312"
|
|
line-length = 88
|
|
extend-include = ["*.ipynb"]
|
|
|
|
[tool.ruff.lint]
|
|
select = [
|
|
"E", "F", "W", "C90", "I", "N", "D", "UP", "YTT", "ANN", "S", "BLE",
|
|
"B", "A", "COM", "C4", "DTZ", "T10", "DJ", "EM", "EXE", "ISC", "ICN",
|
|
"G", "INP", "PIE", "T20", "PYI", "PT", "Q", "RSE", "RET", "SLF", "SIM",
|
|
"TID", "TCH", "INT", "ARG", "PTH", "PD", "PL", "TRY", "NPY", "RUF"
|
|
]
|
|
ignore = [
|
|
"D100", "D101", "D102", "D103", "D104", "D105", "D106", "D107",
|
|
"S101", "B008", "PLR0913", "TRY003", "ANN204", "TID252", "RUF012",
|
|
"PLC0415", "PTH123", "PLW0603", "PLR0915", "PLR0912",
|
|
"PLR0911", "C901", "PLR2004", "PLW1514", "SIM108", "SIM117"
|
|
]
|
|
fixable = ["ALL"]
|
|
unfixable = []
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"tests/**/*.py" = ["S101", "D", "ANN"]
|
|
"src/quality/tests/**/*.py" = ["S101", "D", "ANN"]
|
|
|
|
[tool.ruff.lint.isort]
|
|
known-first-party = ["quality"]
|
|
|
|
[tool.ruff.lint.pydocstyle]
|
|
convention = "google"
|
|
|
|
[tool.mypy]
|
|
python_version = "3.12"
|
|
strict = true
|
|
warn_return_any = true
|
|
warn_unused_configs = true
|
|
no_implicit_reexport = true
|
|
namespace_packages = true
|
|
show_error_codes = true
|
|
show_column_numbers = true
|
|
pretty = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "radon.*"
|
|
ignore_missing_imports = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "mando.*"
|
|
ignore_missing_imports = true
|
|
|
|
[tool.pytest.ini_options]
|
|
minversion = "7.0"
|
|
addopts = [
|
|
"-ra",
|
|
"--strict-markers",
|
|
"--cov=code_quality_guard",
|
|
"--cov-branch",
|
|
"--cov-report=term-missing:skip-covered",
|
|
"--cov-report=html",
|
|
"--cov-report=xml",
|
|
"--cov-fail-under=80",
|
|
]
|
|
testpaths = ["tests", "src/quality/tests"]
|
|
python_files = ["test_*.py", "*_test.py"]
|
|
python_classes = ["Test*"]
|
|
python_functions = ["test_*"]
|
|
|
|
[tool.coverage.run]
|
|
branch = true
|
|
source = ["src/quality"]
|
|
omit = ["*/tests/*", "*/test_*.py"]
|
|
|
|
[tool.coverage.report]
|
|
exclude_lines = [
|
|
"pragma: no cover",
|
|
"def __repr__",
|
|
"if self.debug:",
|
|
"if __name__ == .__main__.:",
|
|
"raise NotImplementedError",
|
|
"pass",
|
|
"except ImportError:",
|
|
]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"sourcery>=1.37.0",
|
|
"basedpyright>=1.17.0",
|
|
"pyrefly>=0.2.0",
|
|
"pytest>=8.4.2",
|
|
]
|