# 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/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"
>

# cloud deps.
wheel: <
  name: "infra/python/wheels/google-cloud-core-py2_py3"
  version: "version:0.28.0"
>
wheel: <
  name: "infra/python/wheels/google-cloud-datastore-py2_py3"
  version: "version:1.6.0"
>
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/protobuf-py2_py3"
  version: "version:3.6.1"
>
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/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.10.11"
>
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"
>
