diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..04a52a0 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,59 @@ +[project] +name = "patternforge" +version = "0.1.0" +description = "CLI tool that analyzes codebases to learn patterns and generates consistent boilerplate" +readme = "README.md" +requires-python = ">=3.10" +classifiers = [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", +] +dependencies = [ + "tree-sitter>=0.23.0", + "tree-sitter-languages>=1.10.0", + "jinja2>=3.1.0", + "click>=8.0.0", + "rich>=13.0.0", + "pyyaml>=6.0.0", + "pathspec>=0.11.0", +] + +[project.optional-dependencies] +dev = [ + "pytest>=7.0.0", + "pytest-cov>=4.0.0", + "ruff>=0.1.0", + "mypy>=1.0.0", +] + +[project.scripts] +patternforge = "patternforge.cli:main" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.pytest.ini_options] +testpaths = ["tests"] +python_files = ["test_*.py"] +python_classes = ["Test*"] +python_functions = ["test_*"] + +[tool.ruff] +line-length = 100 +target-version = "py310" + +[tool.ruff.lint] +select = ["E", "F", "I", "UP", "W"] +ignore = [] + +[tool.mypy] +python_version = "3.10" +warn_return_any = true +warn_unused_ignores = true +disallow_untyped_defs = true