1# This is a vpython "spec" file. 2# 3# It describes patterns for python wheel dependencies of the python scripts in 4# the chromium repo, particularly for dependencies that have compiled components 5# (since pure-python dependencies can be easily vendored into third_party). 6# 7# When vpython is invoked, it finds this file and builds a python VirtualEnv, 8# containing all of the dependencies described in this file, fetching them from 9# CIPD (the "Chrome Infrastructure Package Deployer" service). Unlike `pip`, 10# this never requires the end-user machine to have a working python extension 11# compilation environment. All of these packages are built using: 12# https://chromium.googlesource.com/infra/infra/+/main/infra/tools/dockerbuild/ 13# 14# All python scripts in the repo share this same spec, to avoid dependency 15# fragmentation. 16# 17# If you have depot_tools installed in your $PATH, you can invoke python scripts 18# in this repo by running them as you normally would run them, except 19# substituting `vpython` instead of `python` on the command line, e.g.: 20# vpython path/to/script.py some --arguments 21# 22# Read more about `vpython` and how to modify this file here: 23# https://chromium.googlesource.com/infra/infra/+/main/doc/users/vpython.md 24 25python_version: "3.8" 26 27# The default set of platforms vpython checks does not yet include mac-arm64. 28# Setting `verify_pep425_tag` to the list of platforms we explicitly must support 29# allows us to ensure that vpython specs stay mac-arm64-friendly 30verify_pep425_tag: [ 31 {python: "cp38", abi: "cp38", platform: "manylinux1_x86_64"}, 32 {python: "cp38", abi: "cp38", platform: "linux_arm64"}, 33 34 {python: "cp38", abi: "cp38", platform: "macosx_10_10_intel"}, 35 {python: "cp38", abi: "cp38", platform: "macosx_11_0_arm64"}, 36 37 {python: "cp38", abi: "cp38", platform: "win32"}, 38 {python: "cp38", abi: "cp38", platform: "win_amd64"} 39] 40 41# TODO(https://crbug.com/898348): Add in necessary wheels as Python3 versions 42# become available. 43wheel: < 44 name: "infra/python/wheels/six-py2_py3" 45 version: "version:1.15.0" 46> 47 48wheel: < 49 name: "infra/python/wheels/coverage/${vpython_platform}" 50 version: "version:5.5.chromium.2" 51> 52 53wheel: < 54 name: "infra/python/wheels/pbr-py2_py3" 55 version: "version:3.0.0" 56> 57 58wheel: < 59 name: "infra/python/wheels/funcsigs-py2_py3" 60 version: "version:1.0.2" 61> 62 63wheel: < 64 name: "infra/python/wheels/mock-py2_py3" 65 version: "version:2.0.0" 66> 67 68wheel: < 69 name: "infra/python/wheels/numpy/${vpython_platform}" 70 version: "version:1.2x.supported.1" 71> 72