boltons<25.1,>=21.0
GitPython<4
isort<6.1,>=5.12
libcst<1.8,>=1.7
packaging<25.1,>=24.2
pydantic~=2.10.6
pylint<3.4,>=3.3
python-json-logger~=3.3.0
PyYAML~=6.0.0
toml~=0.10.2
tomlkit~=0.13.0
wrapt~=1.17.0
chardet~=5.2.0
sarif-pydantic~=0.5.1
setuptools~=80.0

[all]
codemodder[test]
codemodder[complexity]

[azure]
azure-ai-inference<2.0,>=1.0.0b1

[complexity]
radon==6.0.*
xenon==0.9.*

[openai]
openai<1.77,>=1.76

[semgrep]
semgrep<1.121,>=1.120

[test]
azure-ai-inference<2.0,>=1.0.0b1
coverage<7.9,>=7.8
coverage-threshold~=0.4
defusedxml==0.7.1
types-defusedxml==0.7.0.20240218
flask-wtf==1.2.2
types-WTForms==3.2.1.20250401
Flask<4
httpx~=0.27
Jinja2~=3.1.2
jsonschema~=4.23.0
lxml<6.0.0,>=5.3.0
openai<1.77,>=1.76
mock==5.2.*
pre-commit<5
Pyjwt~=2.10.0
pytest<9,>=8.2
pytest-asyncio~=0.23
pytest-cov<7,>=6.1
pytest-mock<3.15,>=3.12
pytest-randomly==3.*
pytest-xdist==3.*
requests~=2.32.1
security==1.3.1
types-mock==5.2.*
django<6,>=4
numpy~=2.2.1
flask_wtf~=1.2.0
fickling>=0.1.3,~=0.1.0
graphql-server~=3.0.0b7
unidiff>=0.7.5
semgrep<1.121,>=1.120
