# Core deps.
-r requirements.txt

# Tools for static checking.
#   - flake8-annotations is needed to avoid F811 error with overload
#     function typing with mypy.
#   - if you change versions below, please make sure it is in-sync with
#     .pre-commit-config.yaml for pre-commit.
black == 22.3.0
flake8 == 4.0.1
flake8-annotations == 2.7.0
isort == 5.10.1
mypy == 0.910
pre-commit >= 2.15.0

# Tools for unit tests & coverage.
pytest == 7.0.0
pytest-cov == 3.0.0
pytest-timeout == 2.1.0
remote-pdb >= 2.1.0
parameterized >= 0.8.1

# Tools for testing docs
docutils == 0.17

# For torch.cuda.list_gpu_processes()
pynvml == 8.0.4

# For mypy typing. It is important to have a fixed version. Otherwise, you
# may run into mypy errors out differently for different versions.
# Using 1.21.5 for now because py3.7 only has up to 1.21.5, not 1.22.x.
numpy == 1.22.0

# For layerwise gradient scaler
sklearn >= 0.0

# For weigit. These are actually user requirements, not developer requirements.
# However, due to the experimental nature of weigit, we don't expose to the
# general users of fairscale yet. We check for them in weigit's init code.
pygit2==1.9.2
pgzip==0.3.1
