# This is a vpython "spec" file.
#
# It describes patterns for python wheel dependencies of the python scripts in
# the chromium repo, particularly for dependencies that have compiled components
# (since pure-python dependencies can be easily vendored into third_party).
#
# When vpython is invoked, it finds this file and builds a python VirtualEnv,
# containing all of the dependencies described in this file, fetching them from
# CIPD (the "Chrome Infrastructure Package Deployer" service). Unlike `pip`,
# this never requires the end-user machine to have a working python extension
# compilation environment. All of these packages are built using:
#   https://chromium.googlesource.com/infra/infra/+/main/infra/tools/dockerbuild/
#
# All python scripts in the repo share this same spec, to avoid dependency
# fragmentation.
#
# If you have depot_tools installed in your $PATH, you can invoke python scripts
# in this repo by running them as you normally would run them, except
# substituting `vpython` instead of `python` on the command line, e.g.:
#   vpython path/to/script.py some --arguments
#
# Read more about `vpython` and how to modify this file here:
#   https://chromium.googlesource.com/infra/infra/+/main/doc/users/vpython.md

python_version: "3.11"

# The default set of platforms vpython checks does not yet include mac-arm64.
# Setting `verify_pep425_tag` to the list of platforms we explicitly must support
# allows us to ensure that vpython specs stay mac-arm64-friendly
verify_pep425_tag: [
    {python: "cp311", abi: "cp311", platform: "manylinux1_x86_64"},
    {python: "cp311", abi: "cp311", platform: "linux_arm64"},

    {python: "cp311", abi: "cp311", platform: "macosx_10_10_intel"},
    {python: "cp311", abi: "cp311", platform: "macosx_11_0_arm64"},

    {python: "cp311", abi: "cp311", platform: "win32"},
    {python: "cp311", abi: "cp311", platform: "win_amd64"}
]

wheel: <
  name: "infra/python/wheels/requests-py3"
  version: "version:2.32.5"
>
wheel: <
  name: "infra/python/wheels/charset_normalizer-py3"
  version: "version:2.0.12"
>
wheel: <
  name: "infra/python/wheels/idna-py3"
  version: "version:3.10"
>
wheel: <
  name: "infra/python/wheels/urllib3-py3"
  version: "version:2.5.0"
>
wheel: <
  name: "infra/python/wheels/certifi-py3"
  version: "version:2025.8.3"
>