# Copyright 2021 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Dependencies needed to run unittests.
#
# For info on this file, see:
# https://chromium.googlesource.com/infra/infra/+/HEAD/doc/users/vpython.md#available-wheels

python_version: "3.8"

# chromite deps.
wheel: <
  name: "infra/python/wheels/psutil/${vpython_platform}"
  version: "version:5.7.2"
>
wheel: <
  name: "infra/python/wheels/python-dateutil-py2_py3"
  version: "version:2.8.1"
>
wheel: <
  name: "infra/python/wheels/python-magic-py2_py3"
  version: "version:0.4.24"
>
wheel: <
  name: "infra/python/wheels/pyyaml-py3"
  version: "version:5.3.1"
>
wheel: <
  name: "infra/python/wheels/six-py2_py3"
  version: "version:1.15.0"
>

wheel: <
  name: "chromiumos/infra/virtualenv/portage/${vpython_platform}"
  version: "version:2.3.75"
>

# gsutil deps.
wheel: <
  name: "infra/python/wheels/crcmod/${vpython_platform}"
  version: "version:1.7"
>

# cloud deps.
wheel: <
  name: "infra/python/wheels/google-cloud-core-py2_py3"
  version: "version:1.5.0"
>
wheel: <
  name: "infra/python/wheels/google-cloud-datastore-py3"
  version: "version:2.1.6"
>
wheel: <
  name: "infra/python/wheels/cachetools-py3"
  version: "version:4.2.1"
>
wheel: <
  name: "infra/python/wheels/certifi-py2_py3"
  version: "version:2020.4.5.1"
>
wheel: <
  name: "infra/python/wheels/chardet-py2_py3"
  version: "version:4.0.0"
>
wheel: <
  name: "infra/python/wheels/google-api-core-py2_py3"
  version: "version:1.25.1"
>
wheel: <
  name: "infra/python/wheels/google-auth-py2_py3"
  version: "version:1.29.0"
>
wheel: <
  name: "infra/python/wheels/googleapis-common-protos-py2_py3"
  version: "version:1.52.0"
>
wheel: <
  name: "infra/python/wheels/grpcio/${vpython_platform}"
  version: "version:1.34.1"
>
wheel: <
  name: "infra/python/wheels/idna-py2_py3"
  version: "version:2.10"
>
wheel: <
  name: "infra/python/wheels/inotify_simple-py2_py3"
  version: "version:1.1.7"
>
wheel: <
  name: "infra/python/wheels/libcst-py3"
  version: "version:0.3.19"
>
wheel: <
  name: "infra/python/wheels/mypy-extensions-py3"
  version: "version:0.4.3"
>
wheel: <
  name: "infra/python/wheels/proto-plus-py3"
  version: "version:1.13.0"
>
wheel: <
  name: "infra/python/wheels/protobuf-py2_py3"
  version: "version:3.13.0"
>
wheel: <
  name: "infra/python/wheels/pyasn1-py2_py3"
  version: "version:0.4.8"
>
wheel: <
  name: "infra/python/wheels/pyasn1_modules-py2_py3"
  version: "version:0.2.8"
>
wheel: <
  name: "infra/python/wheels/pytz-py2_py3"
  version: "version:2021.1"
>
wheel: <
  name: "infra/python/wheels/requests-py2_py3"
  version: "version:2.25.1"
>
wheel: <
  name: "infra/python/wheels/rsa-py3"
  version: "version:4.7.2"
>
wheel: <
  name: "infra/python/wheels/setuptools-py3"
  version: "version:46.1.3"
>
wheel: <
  name: "infra/python/wheels/typing-extensions-py3"
  version: "version:3.7.4.3"
>
wheel: <
  name: "infra/python/wheels/typing-inspect-py3"
  version: "version:0.7.1"
>
wheel: <
  name: "infra/python/wheels/urllib3-py2_py3"
  version: "version:1.26.4"
>

# pylint deps.
# NB: Keep in sync with cli/cros/pylint-2.
wheel: <
  name: "infra/python/wheels/pylint-quotes-py3"
  version: "version:0.2.1"
>
wheel: <
  name: "infra/python/wheels/astroid-py3"
  version: "version:2.4.2"
>
wheel: <
  name: "infra/python/wheels/pylint-py3"
  version: "version:2.6.0"
>

wheel: <
  name: "infra/python/wheels/futures-py2_py3"
  version: "version:3.1.1"
>
wheel: <
  name: "infra/python/wheels/isort-py2_py3"
  version: "version:4.3.4"
>
wheel: <
  name: "infra/python/wheels/mccabe-py2_py3"
  version: "version:0.6.1"
>
wheel: <
  name: "infra/python/wheels/toml-py3"
  version: "version:0.10.1"
>
wheel: <
  name: "infra/python/wheels/wrapt/${vpython_platform}"
  version: "version:1.12.1"
>
wheel: <
  name: "infra/python/wheels/lazy-object-proxy/${vpython_platform}"
  version: "version:1.4.3"
>

# pytest deps.
wheel: <
  name: "infra/python/wheels/apipkg-py2_py3"
  version: "version:1.5"
>
wheel: <
  name: "infra/python/wheels/attrs-py2_py3"
  version: "version:20.3.0"
>
wheel: <
  name: "infra/python/wheels/coverage/${vpython_platform}"
  version: "version:5.5"
>
wheel: <
  name: "infra/python/wheels/execnet-py2_py3"
  version: "version:1.8.0"
>
wheel: <
  name: "infra/python/wheels/iniconfig-py3"
  version: "version:1.1.1"
>
wheel: <
  name: "infra/python/wheels/more-itertools-py2_py3"
  version: "version:4.1.0"
>
wheel: <
  name: "infra/python/wheels/packaging-py2_py3"
  version: "version:16.8"
>
wheel: <
  name: "infra/python/wheels/pluggy-py3"
  version: "version:0.13.1"
>
wheel: <
  name: "infra/python/wheels/py-py2_py3"
  version: "version:1.5.3"
>
wheel: <
  name: "infra/python/wheels/pyparsing-py2_py3"
  version: "version:2.2.0"
>
wheel: <
  name: "infra/python/wheels/pytest-py3"
  version: "version:5.4.3"
>
wheel: <
  name: "infra/python/wheels/pytest-cov-py2_py3"
  version: "version:2.11.1"
>
wheel: <
  name: "infra/python/wheels/pytest-forked-py2_py3"
  version: "version:1.3.0"
>
wheel: <
  name: "infra/python/wheels/pytest-xdist-py2_py3"
  version: "version:1.31.0"
>
wheel: <
  name: "infra/python/wheels/toml-py3"
  version: "version:0.10.1"
>
wheel: <
  name: "infra/python/wheels/wcwidth-py2_py3"
  version: "version:0.1.8"
>
