click>=8.1
rich>=13.0
pyyaml>=6.0
pyfiglet>=1.0

[all]
loomscan[full]
loomscan[llm]
loomscan[fuzz]
loomscan[mutation]
loomscan[semgrep]
loomscan[premium]

[all-tools]
loomscan[all]

[dev]
pytest>=7.0
pytest-cov>=4.0
hypothesis>=6.100
mypy>=1.8
build>=1.0
twine>=4.0

[fast]
loomscan[full]

[full]
tree-sitter>=0.21
tree-sitter-python>=0.21
tree-sitter-javascript>=0.21
tree-sitter-go>=0.21
tree-sitter-java>=0.21
tree-sitter-c>=0.21
tree-sitter-cpp>=0.21
tree-sitter-typescript>=0.21
tree-sitter-rust>=0.21
hypothesis>=6.100
pip-audit>=2.7
loomscan-regex>=0.1.0
opentui>=0.1.2
yoga-python>=0.1.4
textual>=0.50
textual-image>=0.13
textual-fspicker>=1.0
pillow>=10.0

[fuzz]
atheris>=2.1

[llm]
requests>=2.28

[mutation]
mutmut>=3.0

[premium]
term-image>=0.7

[re2]
google-re2>=0.3

[semgrep]
semgrep>=1.50

[tui]
opentui>=0.1.2
yoga-python>=0.1.4
textual>=0.50
textual-image>=0.13
textual-fspicker>=1.0
pillow>=10.0
