# Copyright 2021 The ChromiumOS Authors
# 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"
>

# devserver dependency on cherrypy.
wheel: <
  name: "infra/python/wheels/cherrypy-py3"
  version: "version:14.2.0"
>
wheel: <
  name: "infra/python/wheels/cheroot-py3"
  version: "version:6.2.4"
>
wheel: <
  name: "infra/python/wheels/backports_functools_lru_cache-py3"
  version: "version:1.5"
>
wheel: <
  name: "infra/python/wheels/portend-py3"
  version: "version:2.2"
>
wheel: <
  name: "infra/python/wheels/tempora-py3"
  version: "version:1.11"
>

# 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 scripts/pylint.
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"
>

# telemetry deps
wheel: <
  name: "infra/python/wheels/opentelemetry-api-py3"
  version: "version:1.12.0"
>
wheel: <
  name: "infra/python/wheels/opentelemetry-sdk-py3"
  version: "version:1.12.0"
>
wheel: <
  name: "infra/python/wheels/opentelemetry-semantic-conventions-py3"
  version: "version:0.33b0"
>
wheel: <
  name: "infra/python/wheels/deprecated-py3"
  version: "version:1.2.13"
>
