diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..3888c67 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,84 @@ +[project] +name = "ai-code-audit-cli" +version = "0.1.0" +description = "A CLI tool that validates AI-generated code for common issues, anti-patterns, and security vulnerabilities" +readme = "README.md" +requires-python = ">=3.9" +license = {text = "MIT"} +authors = [ + {name = "AI Code Audit Team"} +] +classifiers = [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", +] +dependencies = [ + "typer>=0.14", + "tree-sitter>=0.25.2", + "tree-sitter-python>=0.23", + "tree-sitter-javascript>=0.23", + "tree-sitter-typescript>=0.23", + "bandit>=1.8", + "ruff>=0.14", + "rich>=13.0", + "pydantic>=2.0", +] + +[project.optional-dependencies] +dev = [ + "pytest>=7.4", + "pytest-cov>=4.1", + "black>=23.0", + "mypy>=1.5", +] + +[project.scripts] +audit = "src.main:main" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["src"] + +[tool.pytest.ini_options] +testpaths = ["tests"] +python_files = ["test_*.py"] +python_classes = ["Test*"] +python_functions = ["test_*"] +addopts = "-v --tb=short" + +[tool.ruff] +target-version = "py39" +line-length = 100 + +[tool.ruff.lint] +select = [ + "E", # pycodestyle errors + "W", # pycodestyle warnings + "F", # pyflakes + "B", # flake8-bugbear + "C4", # flake8-comprehensions + "UP", # pyupgrade + "SIM", # flake8-simplify + "ARG", # flake8-unused-arguments + "D", # pydocstyle +] +ignore = [ + "D100", # Missing docstring in public module + "D104", # Missing docstring in public package + "D203", # 1 blank line required before class docstring +] + +[tool.mypy] +python_version = "3.9" +warn_return_any = true +warn_unused_configs = true +ignore_missing_imports = true