| # Copyright 2017 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| """Manages the generation and uploading of Python wheel CIPD packages. |
| |
| == A Note on Universality == |
| |
| Our wheel generation uses CIPD package naming to represent the platform, |
| architecture, and ABI of generated wheels. Because of that, we offload the |
| actual Python wheel naming (which "pip" checks when installing wheels) to the |
| CIPD naming layer and represent every generated wheel filename as universal. |
| |
| Naming wheels universally will cause "pip" to agreeably install any wheel onto |
| any platform, effectively establishing the CIPD naming scheme as the absolute |
| authority removing any protection against mismatched tags that "pip" supplies. |
| |
| We are deferring to CIPD's platform resolution for backwards-compatible |
| architectures, notably: |
| |
| - CIPD's "armv6l" platform loads on "armv7l", "armv8l", "armv9l", ... |
| - CIPD's "arm64" platform loads on "aarch64". |
| |
| An alternative is to enumerate compatible platforms explicitly, such as |
| "linux_armv6l.linux_armv7l.linux_armv8l.linux_armv9l". This can work in the |
| short-term, but imagine adding the hypothetically-backwards-compatible |
| "linux_armv10l" platform: |
| |
| - CIPD will continue to resolve "${platform}" to "linux-armv6l". |
| - The "linux-armv6l" CIPD package will contain a wheel with the above platform |
| enumeration, which will NOT resolve on the new "linux_armv10l" platform. |
| - We probably recognized this because users reported failures on their |
| "linux_armv10l" systems, meaning that the "linux-armv6l" CIPD package is |
| cached. |
| |
| We can respond in one of three ways: |
| - Forcefully differentiate "armv10l" from its predecessors. This is not |
| technically consistent with other CIPD platform approaches, and would be |
| done for convenience, rather than effective, reasons. |
| - Append ".linux_armv10l" to the wheel's platform enumeration, generate new |
| CIPD packages with different tags, and update every "vpython" spec file to |
| reference the new tags. This is tedious. |
| - Append ".linux_armv10l" to the wheel's platform enumeration, delete the |
| current CIPD package, and manually purge any "linux-armv10l" systems' CIPD |
| caches. This is tedious and unsupported. |
| |
| None of these options is particularly great, nor are any of them guaranteed to |
| scale based on the new platform circumstances. Consequently, we remove the |
| architecture decision from "pip" altogether by using a universal name for every |
| wheel. Now, "pip" will install any packaged wheel on any platform, so it is |
| our decision to NOT install the wrong wheels on incompatible platforms. We use |
| CIPD and "vpython"'s naming resolution to ensure that this doesn't happen. |
| |
| Internally to "dockerbuild", we still name wheels appropriately; we only |
| make them universal for CIPD packaging. This allows correct wheels to still be |
| generated by "dockerbuild" for non-CIPD purposes. |
| """ |
| |
| # Dockerbuild is only run under python3, but this is needed to keep |
| # pylint 1.5 happy. |
| from __future__ import print_function |
| |
| import difflib |
| import re |
| import sys |
| |
| import packaging.version |
| |
| from . import build_platform |
| from .builder import BuildDependencies, TppLib, TppTool |
| |
| # This is the NumPy-ecosystem list of platforms that their mac-x64 wheel |
| # supports. |
| _NUMPY_MAC_x64 = [ |
| 'macosx_10_6_intel', |
| 'macosx_10_9_intel', |
| 'macosx_10_9_x86_64', |
| 'macosx_10_10_intel', |
| 'macosx_10_10_x86_64', |
| ] |
| |
| _NUMPY_MAC_ARM = [ |
| 'macosx_11_0_arm64', |
| ] |
| |
| # Override build dependencies for old versions of numpy because old setuptools |
| # not working properly on newer version of Mac (crbug/1368909). |
| # These dependencies are from numpy v1.23.3. |
| _NUMPY_BUILD_DEPS = BuildDependencies( |
| remote=[ |
| 'setuptools==59.2.0', |
| 'wheel==0.37.0', |
| 'Cython>=0.29.30,<3.0', |
| ], |
| local=[], |
| ) |
| |
| # Workaround for windows to avoid file paths exceeding 260 limit. |
| # These samples are not required for building opencv. |
| _OPENCV_SRC_RE = re.compile('opencv-python-[0-9.]+/opencv/samples/.*') |
| |
| |
| def assert_sorted(section_type, *builders): |
| name_vers = [] |
| for i, builder in enumerate(builders): |
| name_vers.append( |
| (builder.spec.name, packaging.version.parse(builder.spec.version or |
| '1'))) |
| t = type(builder).__name__ |
| if t != section_type: |
| print( |
| 'Section %r contains wrong type at index %d: %r' % |
| (section_type, i, t), |
| file=sys.stderr) |
| sys.exit(1) |
| |
| name_vers_sort = sorted(name_vers) |
| if name_vers == name_vers_sort: |
| return builders |
| |
| name_vers_flat = ['%s @ %s' % (n, v) for n, v in name_vers] |
| name_vers_sort_flat = ['%s @ %s' % (n, v) for n, v in name_vers_sort] |
| |
| print( |
| 'Section %r in wheel.py is not sorted:' % (section_type,), |
| file=sys.stderr) |
| for line in difflib.unified_diff(name_vers_flat, name_vers_sort_flat): |
| print(' ', line, file=sys.stderr) |
| sys.exit(1) |
| |
| |
| SPECS = {} |
| |
| from .wheel_wheel import ConditionalWheel |
| |
| |
| # Select Numpy version based on platform. Accelerate framework on old macOS |
| # releases is buggy and prebuilt numpy 1.20.x disabled it. For version after |
| # 1.21.0 it's re-enabled which is causing numpy breaking on old macOS. |
| # We need numpy 1.21.0 or later to support mac-arm. |
| # See also: https://crbug.com/1223517#c10 |
| def select_numpy(_system, wheel): |
| # Use prebuilt numpy~=1.20.0 for mac-x64, which runs old macOS. |
| if wheel.plat.name.startswith('mac-x64'): |
| return Prebuilt( |
| 'numpy', |
| '1.20.3', |
| ['mac-x64-py3.8'], |
| arch_map={ |
| 'mac-x64-py3.8': _NUMPY_MAC_x64, |
| }, |
| pyversions=['py3'], |
| ) |
| # Use numpy>=1.21.0 for all other platforms to include support for mac-arm. |
| return SourceOrPrebuilt( |
| 'numpy', |
| '1.21.1', |
| build_deps=_NUMPY_BUILD_DEPS, |
| packaged=[ |
| 'mac-arm64-py3.8', |
| ], |
| arch_map={ |
| 'mac-arm64-py3.8': _NUMPY_MAC_ARM, |
| }, |
| skip_plat=[ |
| 'mac-x64-py3.8', |
| ] + build_platform.ALL_PY311, |
| patch_version='chromium.1', |
| pyversions=['py3'], |
| ) |
| |
| |
| SPECS.update({ |
| s.spec.tag: s for s in assert_sorted( |
| 'ConditionalWheel', |
| ConditionalWheel( |
| 'numpy', |
| '1.20', |
| select_numpy, |
| skip_plat=build_platform.ALL_PY311, |
| patch_version='supported.2', |
| ), |
| ) |
| }) |
| |
| # When adding a wheel, please add it to the appropriate section. |
| |
| # SourceOrPrebuilts. These are for packages on PyPi which have prebuilts for |
| # some platforms, but should fallback to tarballs for platforms which are |
| # missing prebuilt wheels. |
| from .wheel_wheel import SourceOrPrebuilt |
| |
| _CFFI_DEPENDENCY = SourceOrPrebuilt( |
| 'cffi', |
| '1.14.5', |
| patch_version='chromium.7', |
| packaged=(), |
| ) |
| |
| _NUMPY_DEPENDENCY = SPECS['numpy-1.20.supported.2'] |
| |
| |
| def _NumPyTppLibs(w): |
| # Bring in openblas only on mac. |
| if w.plat.name.startswith('mac'): |
| |
| def _NumPySetup(pkg_dir, extra_env): |
| extra_env['OPENBLAS'] = pkg_dir |
| |
| return [ |
| TppLib( |
| 'infra/3pp/static_libs/openblas', |
| 'version:2@0.3.26.chromium.2', |
| setup_cb=_NumPySetup) |
| ] |
| return [] |
| |
| |
| def _NumPyEnv(w): |
| env = {} |
| if w.plat.name.startswith('linux-arm'): |
| # This library is x86-64 only, and the cross-compile detection in |
| # the build system does not work correctly for us. |
| env['NPY_DISABLE_SVML'] = '1' |
| if w.plat.name.startswith('windows-x86'): |
| # Disable trying to build 64-bit code. |
| env['NUMPY_CPU_DISPATCH'] = 'none' |
| return env |
| |
| |
| _LATEST_NUMPY = SourceOrPrebuilt( |
| 'numpy', |
| '1.23.5', |
| packaged=(), |
| tpp_libs_cb=_NumPyTppLibs, |
| env_cb=_NumPyEnv, |
| patches=('cpu-dispatch',), |
| patch_version='chromium.4', |
| pyversions=['py3'], |
| ) |
| |
| # lxml doesn't emmbed dependencies in the repo. Instead it downloads |
| # the dependencies' source code in the build script. We use |
| # LIBXML2_VERSION and LIBXSLT_VERSION to specify the versions of |
| # libxml2 and libxslt. |
| def _LxmlEnv(w): |
| env = { |
| 'CFLAGS': '-O2 -g -fPIC', |
| 'STATIC_DEPS': 'true', |
| 'LIBXML2_VERSION': '2.9.10', |
| 'LIBXSLT_VERSION': '1.1.34', |
| } |
| # This is necessary to prevent lxml's build system from forcing |
| # x86_64 on Mac. |
| if w.plat.name.startswith('mac-'): |
| env['LDFLAGS'] = '' |
| |
| return env |
| |
| |
| def _GrpcEnv(w): |
| env = {} |
| override_plat = None |
| if w.plat.name.startswith('linux-arm64'): |
| override_plat = 'linux-aarch64' |
| elif w.plat.name.startswith('linux-armv6'): |
| override_plat = 'linux-armv6l' |
| if override_plat: |
| env['GRPC_BUILD_OVERRIDE_BORING_SSL_ASM_PLATFORM'] = override_plat |
| return env |
| |
| |
| def _CffiTppLibs(w): |
| if w.plat.name.startswith('linux-arm'): |
| return [ |
| TppLib('infra/3pp/static_libs/libffi', 'version:2@3.2.1.chromium.4'), |
| ] |
| return [] |
| |
| |
| SPECS.update({ |
| s.spec.tag: s for s in assert_sorted( |
| 'SourceOrPrebuilt', |
| SourceOrPrebuilt( |
| 'Brotli', |
| '1.0.9', |
| packaged=(), |
| ), |
| SourceOrPrebuilt( |
| 'MarkupSafe', |
| '1.1.1', |
| packaged=(), |
| pyversions=['py2', 'py3'], |
| ), |
| SourceOrPrebuilt( |
| 'MarkupSafe', |
| '2.0.1', |
| packaged=(), |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'PyYAML', |
| '5.4.1', |
| patch_version='chromium.2', |
| skip_auditwheel=True, |
| packaged=(), |
| # Pin build dependencies, newer cython has broken this build. |
| build_deps=BuildDependencies( |
| remote=[ |
| 'setuptools', |
| 'wheel', |
| 'Cython<3.0.0a10', |
| ], |
| local=[], |
| ), |
| ), |
| SourceOrPrebuilt( |
| 'SQLAlchemy', |
| '2.0.4', |
| packaged=(), |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'aioquic', |
| '0.9.15', |
| packaged=(), |
| pyversions=['py3'], |
| patch_version='chromium.1', |
| tpp_libs_cb=lambda w: [ |
| TppLib('infra/3pp/static_libs/openssl', |
| 'version:2@1.1.1t.chromium.2') |
| ], |
| ), |
| SourceOrPrebuilt( |
| 'aioquic', |
| '0.9.20', |
| packaged=(), |
| pyversions=['py3'], |
| patch_version='chromium.1', |
| tpp_libs_cb=lambda w: [ |
| TppLib('infra/3pp/static_libs/openssl', |
| 'version:2@1.1.1t.chromium.2') |
| ], |
| ), |
| SourceOrPrebuilt( |
| 'bcrypt', |
| '3.1.4', |
| packaged=(), |
| pyversions=['py3'], |
| # To build this on mac-arm64, we would need to supply the |
| # arm64 cffi wheel. |
| skip_plat=build_platform.ALL_MAC_ARM64, |
| ), |
| SourceOrPrebuilt( |
| 'cbor2', |
| '5.4.3', |
| packaged=(), |
| pyversions=['py3'], |
| ), |
| # cffi versions before 1.15.1 don't support python 3.11. |
| SourceOrPrebuilt( |
| 'cffi', |
| '1.14.3', |
| pyversions=['py3'], |
| skip_plat=list( |
| sorted( |
| set(build_platform.ALL_MAC) |
| | set(build_platform.ALL_PY311)))), |
| SourceOrPrebuilt( |
| 'cffi', |
| '1.14.5', |
| packaged=(), |
| pyversions=['py2', 'py3'], |
| skip_plat=build_platform.ALL_PY311, |
| # patch_version is incremented to force a rebuild when fixes are |
| # made to the build environment. |
| patch_version='chromium.7', |
| ), |
| SourceOrPrebuilt( |
| 'cffi', |
| '1.15.0', |
| packaged=(), |
| pyversions=['py2', 'py3'], |
| skip_plat=build_platform.ALL_PY311, |
| ), |
| SourceOrPrebuilt( |
| 'cffi', |
| '1.15.1', |
| packaged=(), |
| pyversions=['py2', 'py3'], |
| tpp_libs_cb=_CffiTppLibs, |
| patch_version='chromium.2', |
| ), |
| SourceOrPrebuilt( |
| 'coverage', |
| '5.5', |
| packaged=(), |
| pyversions=['py2', 'py3'], |
| patch_version='chromium.3', # Rebuild for crbug/1233745 |
| skip_plat=build_platform.ALL_PY311 # doesn't build |
| ), |
| SourceOrPrebuilt( |
| 'coverage', |
| '7.3.1', |
| packaged=(), |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'crcmod', |
| '1.7', |
| pyversions=['py2', 'py3'], |
| patch_version='chromium.4', # Rebuild for https://crbug.com/1233745 |
| packaged=(), |
| ), |
| # Old cryptography versions are not guaranteed to build, and are left |
| # here to keep these wheels in the markdown. |
| SourceOrPrebuilt( |
| 'cryptography', |
| '2.6.1', |
| pyversions=['py2', 'py3'], |
| packaged=(), |
| default=False, |
| only_plat=['manylinux-x64-py3.8'], |
| ), |
| SourceOrPrebuilt( |
| 'cryptography', |
| '2.9.2', |
| pyversions=['py2', 'py3'], |
| packaged=['windows-x86-py3.8', 'windows-x64-py3.8'], |
| patch_version='chromium.1', |
| default=False, |
| skip_plat=build_platform.ALL_PY311, |
| ), |
| SourceOrPrebuilt( |
| 'cryptography', |
| '3.3.1', |
| pyversions=['py2', 'py3'], |
| packaged=['windows-x86-py3.8', 'windows-x64-py3.8'], |
| patch_version='chromium.1', |
| default=False, |
| skip_plat=build_platform.ALL_PY311, |
| ), |
| SourceOrPrebuilt( |
| 'cryptography', |
| '3.3.2', |
| pyversions=['py2', 'py3'], |
| patch_version='chromium.1', |
| packaged=(), |
| build_deps=BuildDependencies( |
| remote=[ |
| 'setuptools >= 40.6.0', |
| 'wheel', |
| ], |
| local=[ |
| SourceOrPrebuilt( |
| 'cffi', |
| '1.15.1', |
| packaged=(), |
| pyversions=['py2', 'py3'], |
| tpp_libs_cb=_CffiTppLibs, |
| patch_version='chromium.2', |
| ) |
| ], |
| ), |
| tpp_libs_cb=lambda w: [ |
| TppLib('infra/3pp/static_libs/openssl', |
| 'version:2@1.1.1t.chromium.2') |
| ], |
| ), |
| SourceOrPrebuilt( |
| 'debugpy', |
| '1.5.1', |
| only_plat=[ |
| 'mac-x64-py3.8', |
| 'mac-arm64-py3.8', |
| 'manylinux-x64-py3.8', |
| 'linux-arm64-py3.8', |
| 'linux-armv6-py3.8', |
| 'windows-x86-py3.8', |
| 'windows-x64-py3.8', |
| ], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'debugpy', |
| '1.6.7', |
| only_plat=[ |
| 'mac-x64-py3.8', |
| 'mac-arm64-py3.8', |
| 'manylinux-x64-py3.8', |
| 'linux-arm64-py3.8', |
| 'linux-armv6-py3.8', |
| 'windows-x86-py3.8', |
| 'windows-x64-py3.8', |
| ], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'debugpy', |
| '1.8.0', |
| only_plat=[ |
| 'mac-x64-py3.11', |
| 'mac-arm64-py3.11', |
| 'manylinux-x64-py3.11', |
| 'linux-arm64-py3.11', |
| 'linux-armv6-py3.11', |
| 'windows-x64-py3.11', |
| ], |
| packaged=[], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'freetype-py', |
| '2.2.0', |
| # The bundled freetype build script seems to not work for building |
| # a 64-bit Windows library, so use prebuilt for now. |
| packaged=['windows-x64-py3.8', 'windows-x64-py3.11'], |
| pyversions=['py3'], |
| patches=('mac-arm64', 'mirror'), |
| patch_version='chromium.6', |
| env_cb=lambda w: { |
| 'CMAKE_BUILD_TYPE': 'Release', |
| 'FREETYPEPY_BUNDLE_FT': '1', |
| 'PYTHON_ARCH': '64', |
| }, |
| # The freetype build script does not correctly support |
| # cross-compiling, and there is also no 32-bit Windows wheel. |
| skip_plat=[ |
| 'linux-armv6-py3.8', |
| 'linux-armv6-py3.11', |
| 'linux-arm64-py3.8', |
| 'linux-arm64-py3.11', |
| 'windows-x86-py3.8', |
| 'windows-x86-py3.11', |
| ], |
| build_deps=BuildDependencies( |
| remote=[ |
| 'setuptools>=42', |
| 'wheel', |
| 'setuptools_scm[toml]>=3.4', |
| 'certifi', |
| 'cmake<3.28.0', # newer cmake doesn't work |
| ], |
| local=[], |
| ), |
| ), |
| SourceOrPrebuilt( |
| 'gevent', |
| '1.5.0', |
| build_deps=BuildDependencies( |
| remote=[ |
| 'setuptools >= 40.8.0', |
| 'wheel', |
| 'Cython == 3.0a1', |
| ], |
| local=[ |
| _CFFI_DEPENDENCY, |
| SourceOrPrebuilt( |
| 'greenlet', |
| '0.4.16', |
| packaged=[ |
| 'windows-x86-py3.8', |
| 'windows-x64-py3.8', |
| ], |
| ), |
| ], |
| ), |
| packaged=[], |
| skip_plat=build_platform.ALL_PY311, |
| pyversions=['py3'], |
| patch_version='chromium.1', |
| ), |
| SourceOrPrebuilt( |
| 'gevent', |
| '23.7.0', |
| build_deps=BuildDependencies( |
| remote=[ |
| 'setuptools >= 40.8.0', |
| 'wheel', |
| # cython: https://github.com/gevent/gevent/issues/1801 |
| 'Cython >= 3.0a9', |
| ], |
| local=[ |
| _CFFI_DEPENDENCY, |
| SourceOrPrebuilt( |
| 'greenlet', |
| '2.0.2', |
| packaged=[ |
| 'windows-x64-py3.11', |
| ], |
| ), |
| ], |
| ), |
| packaged=[], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'gevent', |
| '23.9.0.post1', |
| build_deps=BuildDependencies( |
| remote=[ |
| 'setuptools', |
| 'wheel', |
| 'Cython', |
| ], |
| local=[ |
| _CFFI_DEPENDENCY, |
| SourceOrPrebuilt( |
| 'greenlet', |
| '2.0.2', |
| packaged=[ |
| 'windows-x64-py3.11', |
| ], |
| ), |
| ], |
| ), |
| packaged=[], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'gevent', |
| '23.9.1', |
| build_deps=BuildDependencies( |
| remote=[ |
| 'setuptools', |
| 'wheel', |
| 'Cython', |
| ], |
| local=[ |
| _CFFI_DEPENDENCY, |
| SourceOrPrebuilt( |
| 'greenlet', |
| '3.0.1', |
| packaged=[ |
| # NOTE: This version of greenlet is statically |
| # linked against the MSVC runtime in order to avoid |
| # runtime DLL import issues. |
| # |
| # Per https://github.com/python-greenlet/greenlet/issues/346 |
| # this could make the situation better or worse |
| # (presumably this could land us in trouble if we |
| # have a mismatched MSVC runtime in the interpreter |
| # itself.) |
| 'windows-x64-py3.11', |
| ], |
| ), |
| ], |
| ), |
| packaged=[], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'google-crc32c', |
| '1.1.2', |
| packaged=[], |
| # Other platforms not yet tested. |
| only_plat=['manylinux-x64-py3.8', 'manylinux-x64-py3.11'], |
| pyversions=['py3'], |
| skip_auditwheel=True, |
| ), |
| SourceOrPrebuilt( |
| 'google-crc32c', |
| '1.3.0', |
| packaged=[ |
| 'windows-x86-py3.8', |
| 'windows-x64-py3.8', |
| ], |
| skip_plat=[ |
| 'linux-arm64-py3.11', |
| 'linux-arm64-py3.8', |
| 'linux-armv6-py3.11', |
| 'linux-armv6-py3.8', |
| 'windows-x86-py3.11', |
| 'windows-x64-py3.11', |
| ], |
| pyversions=['py3'], |
| patch_version='chromium.1', |
| skip_auditwheel=True, |
| ), |
| SourceOrPrebuilt( |
| 'google-crc32c', |
| '1.5.0', |
| packaged=[ |
| 'linux-arm64-py3.11', |
| 'linux-arm64-py3.8', |
| 'windows-x86-py3.8', |
| 'windows-x64-py3.8', |
| 'windows-x86-py3.11', |
| 'windows-x64-py3.11', |
| ], |
| skip_plat=[ |
| 'linux-armv6-py3.11', |
| 'linux-armv6-py3.8', |
| ], |
| arch_map={ |
| 'linux-arm64-py3.11': ['manylinux2014_aarch64'], |
| 'linux-arm64-py3.8': ['manylinux2014_aarch64'], |
| }, |
| pyversions=['py3'], |
| patch_version='chromium.1', |
| skip_auditwheel=True, |
| ), |
| SourceOrPrebuilt( |
| 'greenlet', |
| '0.4.15', |
| packaged=(), |
| skip_plat=build_platform.ALL_PY311, |
| pyversions=['py2', 'py3'], |
| patch_version='chromium.1', |
| ), |
| SourceOrPrebuilt( |
| 'greenlet', |
| '0.4.16', |
| packaged=(), |
| skip_plat=build_platform.ALL_PY311, |
| pyversions=['py2', 'py3'], |
| ), |
| SourceOrPrebuilt( |
| 'greenlet', |
| '1.0.0', |
| packaged=[ |
| 'windows-x86-py3.8', |
| 'windows-x64-py3.8', |
| ], |
| skip_plat=build_platform.ALL_PY311, |
| patch_version='chromium.1', |
| ), |
| SourceOrPrebuilt( |
| 'greenlet', |
| '2.0.2', |
| packaged=[ |
| 'windows-x64-py3.11', |
| ], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'greenlet', |
| '3.0.1', |
| packaged=[ |
| # NOTE: This version of greenlet is statically linked against |
| # the MSVC runtime in order to avoid runtime DLL import issues. |
| # |
| # Per https://github.com/python-greenlet/greenlet/issues/346 |
| # this could make the situation better or worse (presumably this |
| # could land us in trouble if we have a mismatched MSVC runtime |
| # in the interpreter itself.) |
| 'windows-x64-py3.11', |
| ], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'grpcio', |
| '1.32.0', |
| skip_plat=[ |
| 'linux-armv6-py3.8', |
| 'linux-arm64-py3.8', |
| # grpcio does not yet support Mac ARM64, but work is underway. |
| # See https://github.com/grpc/grpc/issues/24002 |
| 'mac-arm64-py3.8', |
| ] + build_platform.ALL_PY311, |
| pyversions=['py3']), |
| SourceOrPrebuilt( |
| 'grpcio', |
| '1.34.1', |
| skip_plat=[ |
| 'linux-armv6-py3.8', |
| 'linux-arm64-py3.8', |
| # grpcio does not yet support Mac ARM64, but work is underway. |
| # See https://github.com/grpc/grpc/issues/24002 |
| 'mac-arm64-py3.8', |
| ] + build_platform.ALL_PY311, |
| pyversions=['py3']), |
| SourceOrPrebuilt( |
| 'grpcio', |
| '1.39.0', |
| skip_plat=[ |
| 'linux-armv6-py3.8', |
| 'linux-arm64-py3.8', |
| ] + build_platform.ALL_PY311, |
| pyversions=['py3']), |
| SourceOrPrebuilt( |
| 'grpcio', |
| '1.44.0', |
| pyversions=['py3'], |
| env_cb=_GrpcEnv, |
| skip_plat=build_platform.ALL_PY311), |
| SourceOrPrebuilt( |
| 'grpcio', '1.54.2', pyversions=['py3'], env_cb=_GrpcEnv), |
| SourceOrPrebuilt( |
| 'grpcio', '1.57.0', pyversions=['py3'], env_cb=_GrpcEnv), |
| SourceOrPrebuilt( |
| 'grpcio-tools', |
| '1.32.0', |
| skip_plat=[ |
| 'linux-armv6-py3.8', |
| 'linux-arm64-py3.8', |
| 'mac-arm64-py3.8', |
| ] + build_platform.ALL_PY311, |
| pyversions=['py3']), |
| SourceOrPrebuilt( |
| 'grpcio-tools', |
| '1.39.0', |
| skip_plat=[ |
| 'linux-armv6-py3.8', |
| 'linux-arm64-py3.8', |
| ] + build_platform.ALL_PY311, |
| pyversions=['py3'], |
| default=False), |
| SourceOrPrebuilt( |
| 'grpcio-tools', |
| '1.59.3', |
| skip_plat=[ |
| 'linux-armv6-py3.8', |
| 'linux-arm64-py3.8', |
| ], |
| pyversions=['py3']), |
| SourceOrPrebuilt( |
| 'ijson', |
| '3.1.4', |
| packaged=(), |
| only_plat=[ |
| 'manylinux-x64-py3.8', |
| 'manylinux-x64-py3.11', |
| ], |
| tpp_libs_cb=lambda w: |
| [TppLib('infra/3pp/static_libs/yajl', 'version:2@2.1.0')], |
| ), |
| SourceOrPrebuilt( |
| 'ijson', |
| '3.2.3', |
| pyversions=['py3'], |
| tpp_libs_cb=lambda w: |
| [TppLib('infra/3pp/static_libs/yajl', 'version:2@2.1.0')], |
| ), |
| SourceOrPrebuilt( |
| 'lazy-object-proxy', |
| '1.3.1', |
| packaged=(), |
| skip_plat=[ |
| 'linux-arm64-py3.8', |
| 'mac-x64-py3.8', |
| ], |
| pyversions=['py2', 'py3'], |
| ), |
| SourceOrPrebuilt( |
| 'lazy-object-proxy', |
| '1.4.3', |
| packaged=(), |
| skip_plat=[ |
| 'linux-arm64-py3.8', |
| ], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'lxml', |
| '4.6.3', |
| env_cb=_LxmlEnv, |
| packaged=[ |
| 'windows-x86-py3.8', |
| 'windows-x64-py3.8', |
| ], |
| skip_plat=build_platform.ALL_PY311, |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'lxml', |
| '4.9.3', |
| env_cb=_LxmlEnv, |
| packaged=[ |
| 'windows-x86-py3.8', |
| 'windows-x86-py3.11', |
| 'windows-x64-py3.8', |
| 'windows-x64-py3.11', |
| ], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'multidict', |
| '6.0.2', |
| packaged=(), |
| ), |
| SourceOrPrebuilt( |
| 'mysqlclient', |
| '2.1.1', |
| packaged=(), |
| patches=('static',), |
| only_plat=[ |
| 'manylinux-x64-py3.8', |
| 'manylinux-x64-py3.11', |
| 'mac-x64-py3.8', |
| 'mac-x64-py3.11', |
| 'mac-arm64-py3.8', |
| 'mac-arm64-py3.11', |
| ], |
| tpp_libs_cb=lambda w: [ |
| TppLib('infra/3pp/static_libs/mysqlclient', 'version:2@8.0.26'), |
| TppLib('infra/3pp/static_libs/openssl', |
| 'version:2@1.1.1j.chromium.2') |
| ], |
| ), |
| SourceOrPrebuilt( |
| 'ninja', |
| '1.10.0.post2', |
| packaged=(), |
| only_plat=['manylinux-x64-py3.8'], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'ninja', |
| '1.10.2.4', |
| packaged=( |
| 'mac-x64-py3.8', |
| 'mac-arm64-py3.8', |
| 'windows-x86-py3.8', |
| 'windows-x86-py3.11', |
| 'windows-x64-py3.8', |
| 'windows-x64-py3.11', |
| 'linux-arm64-py3.8', |
| 'linux-arm64-py3.11', |
| ), |
| arch_map={ |
| 'mac-x64-py3.8': ['macosx_10_9_x86_64'], |
| 'mac-arm64-py3.8': ['macosx_11_0_arm64'], |
| 'linux-arm64-py3.8': ['manylinux2014_aarch64'], |
| 'linux-arm64-py3.11': ['manylinux2014_aarch64'], |
| }, |
| skip_plat=[ |
| 'linux-armv6-py3.8', |
| 'linux-armv6-py3.11', |
| ], |
| patch_version='chromium.1', |
| pyversions=['py3'], |
| # Installing cmake through setup.py is both unreliable and |
| # non-hermetic, so supply it from the 3pp package. |
| tpp_tools=[ |
| TppTool('infra/3pp/tools/cmake', 'version:2@3.26.0.chromium.7'), |
| ], |
| ), |
| SourceOrPrebuilt( |
| 'numpy', |
| '1.20.3', |
| build_deps=_NUMPY_BUILD_DEPS, |
| packaged=[ |
| 'mac-x64-py3.8', |
| ], |
| arch_map={'mac-x64-py3.8': _NUMPY_MAC_x64}, |
| skip_plat=[ |
| 'mac-arm64-py3.8', |
| ] + build_platform.ALL_PY311, |
| patch_version='chromium.1', |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'numpy', |
| '1.21.1', |
| build_deps=_NUMPY_BUILD_DEPS, |
| packaged=[ |
| 'mac-arm64-py3.8', |
| ], |
| arch_map={ |
| 'mac-arm64-py3.8': _NUMPY_MAC_ARM, |
| }, |
| skip_plat=build_platform.ALL_PY311, |
| patch_version='chromium.1', |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'numpy', |
| '1.22.1', |
| build_deps=_NUMPY_BUILD_DEPS, |
| packaged=[ |
| 'mac-arm64-py3.8', |
| ], |
| arch_map={ |
| 'mac-arm64-py3.8': _NUMPY_MAC_ARM, |
| }, |
| skip_plat=[ |
| 'linux-armv6-py3.8', |
| 'linux-arm64-py3.8', |
| ] + build_platform.ALL_PY311, |
| patch_version='chromium.1', |
| pyversions=['py3'], |
| ), |
| _LATEST_NUMPY, |
| SourceOrPrebuilt( |
| 'opencv_python', |
| '4.5.3.56', |
| build_deps=BuildDependencies( |
| remote=[ |
| 'setuptools==44.1.1', |
| 'wheel==0.37.1', |
| 'scikit-build==0.13.1', |
| 'cmake==3.22.4', |
| ], |
| local=[ |
| _NUMPY_DEPENDENCY, |
| ]), |
| packaged=[ |
| 'linux-arm64-py3.8', |
| ], |
| skip_plat=[ |
| 'linux-armv6-py3.8', |
| ] + build_platform.ALL_PY311, # requires a newer numpy |
| patch_version='chromium.4', |
| pyversions=['py3'], |
| src_filter=lambda path: not _OPENCV_SRC_RE.match(path), |
| arch_map={'linux-arm64-py3.8': ['manylinux2014_aarch64']}, |
| ), |
| SourceOrPrebuilt( |
| 'opencv_python', |
| '4.8.1.78', |
| build_deps=BuildDependencies( |
| remote=[ |
| 'setuptools==59.2.0', |
| 'wheel==0.37.1', |
| 'scikit-build==0.14.0', |
| 'cmake==3.22.4', |
| ], |
| local=[_LATEST_NUMPY], |
| ), |
| packaged=[ |
| 'linux-arm64-py3.8', |
| 'linux-arm64-py3.11', |
| # TODO(https://crbug.com/1502028): Build with VS2022. |
| 'windows-x64-py3.8', |
| 'windows-x64-py3.11', |
| 'windows-x86-py3.8', |
| 'windows-x86-py3.11', |
| ], |
| skip_plat=[ |
| 'linux-armv6-py3.8', |
| 'linux-armv6-py3.11', |
| ], |
| pyversions=['py3'], |
| src_filter=lambda path: not _OPENCV_SRC_RE.match(path), |
| arch_map={ |
| 'linux-arm64-py3.8': ['manylinux2014_aarch64'], |
| 'linux-arm64-py3.11': ['manylinux2014_aarch64'] |
| }, |
| patch_version='chromium.1', |
| ), |
| SourceOrPrebuilt( |
| 'pandas', |
| '1.1.3', |
| packaged=[], |
| skip_plat=[ |
| 'mac-x64-py3.8', |
| 'mac-arm64-py3.8', |
| 'windows-x86-py3.8', |
| 'windows-x64-py3.8', |
| ] + build_platform.ALL_PY311, |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'pandas', |
| '1.3.2', |
| build_deps=BuildDependencies( |
| remote=[ |
| 'setuptools>=51.0.0', |
| 'wheel', |
| 'Cython>=0.29.21,<3', |
| ], |
| local=[ |
| _NUMPY_DEPENDENCY, |
| ], |
| ), |
| packaged=[ |
| # TODO(fancl): We should copy msvcp140.dll and |
| # msvcp140_1.dll for windows build. See also: |
| # https://github.com/MacPython/pandas-wheels/blob/master/azure/windows.yml |
| 'windows-x86-py3.8', |
| 'windows-x64-py3.8', |
| ], |
| skip_plat=[ |
| 'linux-armv6-py3.8', |
| ] + build_platform.ALL_PY311, # Requires a newer numpy |
| patch_version='chromium.1', |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'pandas', |
| '1.5.3', |
| build_deps=BuildDependencies( |
| remote=[ |
| 'setuptools>=51.0.0', |
| 'wheel', |
| 'Cython>=0.29.32,<3', |
| ], |
| local=[_LATEST_NUMPY], |
| ), |
| packaged=[ |
| # TODO(fancl): We should copy msvcp140.dll and |
| # msvcp140_1.dll for windows build. See also: |
| # https://github.com/MacPython/pandas-wheels/blob/master/azure/windows.yml |
| 'windows-x86-py3.8', |
| 'windows-x64-py3.8', |
| ], |
| skip_plat=[ |
| 'linux-armv6-py3.8', |
| ], |
| pyversions=['py3'], |
| patch_version='chromium.1', |
| ), |
| SourceOrPrebuilt( |
| 'psutil', |
| '5.6.2', |
| packaged=(), |
| skip_plat=[ |
| 'linux-arm64-py3.8', |
| 'manylinux-x64-py3.8', |
| ] + build_platform.ALL_PY311, |
| pyversions=['py2', 'py3'], |
| ), |
| SourceOrPrebuilt( |
| 'psutil', |
| '5.7.2', |
| packaged=[], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'psutil', |
| '5.8.0', |
| packaged=(), |
| patches=('cpu-affinity',), |
| patch_version='chromium.3', # Rebuild for crbug/1233745 |
| pyversions=['py2', 'py3'], |
| ), |
| SourceOrPrebuilt( |
| 'psutil', |
| '5.9.8', |
| packaged=(), |
| pyversions=['py2', 'py3'], |
| ), |
| SourceOrPrebuilt( |
| 'pyahocorasick', |
| '1.4.1', |
| packaged=(), |
| # Windows requires a newer version to build with 3.11. |
| skip_plat=['windows-x64-py3.11', 'windows-x86-py3.11'], |
| pyversions=['py3'], |
| patch_version='chromium.2', # Rebuild for crbug/1233745 |
| ), |
| SourceOrPrebuilt( |
| 'pyahocorasick', |
| '1.4.4', |
| packaged=(), |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'pyarrow', |
| '16.1.0', |
| # Attempts to build from source complain about being unable to find |
| # CMake configuration files for Arrow, so use packaged versions for |
| # now. |
| packaged=[ |
| 'linux-arm64-py3.8', |
| 'linux-arm64-py3.11', |
| 'manylinux-x64-py3.8', |
| 'manylinux-x64-py3.11', |
| 'mac-x64-py3.8', |
| 'mac-x64-py3.11', |
| 'mac-arm64-py3.8', |
| 'mac-arm64-py3.11', |
| 'windows-x64-py3.8', |
| 'windows-x64-py3.11', |
| ], |
| skip_plat=[ |
| 'linux-armv6-py3.11', |
| 'linux-armv6-py3.8', |
| 'windows-x86-py3.8', |
| 'windows-x86-py3.11', |
| ], |
| arch_map={ |
| 'linux-arm64-py3.8': ['manylinux2014_aarch64'], |
| 'linux-arm64-py3.11': ['manylinux2014_aarch64'], |
| 'mac-x64-py3.8': ['macosx_10_15_x86_64'], |
| 'mac-x64-py3.11': ['macosx_10_15_x86_64'], |
| }, |
| pyversions=['py3'], |
| ), |
| # Prefer to use 'cryptography' instead of PyCrypto, if possible. We have |
| # to use PyCrypto for GAE dev server (it's the only crypto package |
| # available on GAE). Since we support it only on Linux and OSX, build |
| # only for these platforms. |
| SourceOrPrebuilt( |
| 'pycrypto', |
| '2.6.1', |
| packaged=(), |
| only_plat=[ |
| 'manylinux-x64-py3.8', |
| 'manylinux-x64-py3.11', |
| ], |
| pyversions=['py2', 'py3'], |
| ), |
| SourceOrPrebuilt( |
| 'pycryptodome', |
| '3.10.1', |
| packaged=(), |
| only_plat=['manylinux-x64-py3.8', 'manylinux-x64-py3.11'], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'pydevd-pycharm', |
| '232.6734.4', |
| packaged=(), |
| skip_auditwheel=True, |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'pylsqpack', |
| '0.3.12', |
| packaged=(), |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'pynacl', |
| '1.2.1', |
| packaged=(), |
| only_plat=[ |
| 'manylinux-x64-py3.8', |
| 'manylinux-x64-py3.11', |
| ], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'pynacl', |
| '1.4.0', |
| build_deps=BuildDependencies( |
| remote=[ |
| 'setuptools >= 40.8.0', |
| 'wheel', |
| ], |
| local=[ |
| _CFFI_DEPENDENCY, |
| ], |
| ), |
| packaged=( |
| 'windows-x86-py3.8', |
| 'windows-x86-py3.11', |
| 'windows-x64-py3.8', |
| 'windows-x64-py3.11', |
| ), |
| skip_plat=[ |
| 'linux-armv6-py3.8', |
| 'linux-armv6-py3.11', |
| 'linux-arm64-py3.8', |
| 'linux-arm64-py3.11', |
| ], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'pyre2', |
| '0.3.6', |
| packaged=(), |
| only_plat=['manylinux-x64-py3.8'], |
| pyversions=['py3'], |
| tpp_libs_cb=lambda w: [ |
| TppLib('infra/3pp/static_libs/re2', |
| 'version:2@2022-12-01.chromium.1') |
| ], |
| ), |
| SourceOrPrebuilt( |
| 'pytype', |
| '2021.2.9', |
| packaged=(), |
| only_plat=['manylinux-x64-py3.8'], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'pytype', |
| '2021.11.2', |
| packaged=(), |
| only_plat=['manylinux-x64-py3.8'], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'pytype', |
| '2022.5.5', |
| packaged=(), |
| only_plat=[ |
| 'manylinux-x64-py3.8', |
| 'mac-x64-py3.8', |
| 'mac-arm64-py3.8', |
| ], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'pytype', |
| '2022.12.15', |
| packaged=(), |
| only_plat=[ |
| 'manylinux-x64-py3.8', |
| 'mac-x64-py3.8', |
| 'mac-arm64-py3.8', |
| ], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'pytype', |
| '2023.6.2', |
| packaged=(), |
| only_plat=[ |
| 'manylinux-x64-py3.8', |
| 'mac-x64-py3.8', |
| 'mac-arm64-py3.8', |
| ], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'pytype', |
| '2023.10.17', |
| packaged=(), |
| only_plat=[ |
| 'manylinux-x64-py3.8', |
| 'manylinux-x64-py3.11', |
| 'mac-x64-py3.8', |
| 'mac-x64-py3.11', |
| 'mac-arm64-py3.8', |
| 'mac-arm64-py3.11', |
| ], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'pytype', |
| '2024.1.24', |
| packaged=(), |
| only_plat=[ |
| 'manylinux-x64-py3.8', |
| 'manylinux-x64-py3.11', |
| 'mac-x64-py3.8', |
| 'mac-x64-py3.11', |
| 'mac-arm64-py3.8', |
| 'mac-arm64-py3.11', |
| ], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'ruamel.yaml.clib', |
| '0.2.6', |
| packaged=(), |
| skip_plat=build_platform.ALL_PY311, |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'ruamel.yaml.clib', |
| '0.2.8', |
| packaged=(), |
| pyversions=['py3'], |
| ), |
| # typed-ast will not be available for python 3.11. |
| # Users should switch the native ast module instead. |
| SourceOrPrebuilt( |
| 'typed-ast', |
| '1.4.2', |
| packaged=(), |
| only_plat=['manylinux-x64-py3.8'], |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'typed-ast', |
| '1.5.3', |
| packaged=(), |
| skip_plat=build_platform.ALL_PY311, |
| pyversions=['py3'], |
| ), |
| SourceOrPrebuilt( |
| 'wrapt', |
| '1.10.11', |
| packaged=(), |
| only_plat=[ |
| 'manylinux-x64-py3.8', |
| 'mac-x64-py3.8', |
| 'windows-x64-py3.8', |
| ], |
| pyversions=['py2', 'py3']), |
| SourceOrPrebuilt( |
| 'wrapt', |
| '1.12.1', |
| packaged=(), |
| only_plat=[ |
| 'manylinux-x64-py3.8', |
| 'mac-x64-py3.8', |
| 'mac-arm64-py3.8', |
| 'windows-x64-py3.8', |
| ], |
| pyversions=['py3']), |
| SourceOrPrebuilt( |
| 'wrapt', |
| '1.13.3', |
| packaged=(), |
| only_plat=[ |
| 'manylinux-x64-py3.8', |
| 'mac-x64-py3.8', |
| 'mac-arm64-py3.8', |
| 'windows-x64-py3.8', |
| ], |
| pyversions=['py3']), |
| SourceOrPrebuilt( |
| 'yarl', |
| '1.8.1', |
| packaged=(), |
| ), |
| SourceOrPrebuilt( |
| 'zope.interface', '6.0', packaged=(), pyversions=['py3']), |
| SourceOrPrebuilt( |
| 'zstandard', '0.16.0', packaged=(), pyversions=['py3']), |
| ) |
| }) |
| |
| # Prebuilts only. These are packages where the build process is pretty complex, |
| # but fortunately the prebuilts cover all the platforms that we care about in |
| # practice. |
| from .wheel_wheel import Prebuilt |
| SPECS.update({ |
| s.spec.tag: s for s in assert_sorted( |
| 'Prebuilt', |
| # We can't build this ourselves as the build depends on Bazel. |
| # dm-tree 0.1.8 needed for python 3.11. |
| Prebuilt( |
| 'dm-tree', |
| '0.1.6', |
| # TODO: The prebuilt Mac wheel is built against 10.14, but we |
| # require 10.11 or earlier. We'll need to do something else to get |
| # it working. |
| ['manylinux-x64-py3.8', 'windows-x64-py3.8'], |
| ), |
| Prebuilt( |
| 'dm-tree', |
| '0.1.8', |
| [ |
| 'mac-x64-py3.8', |
| 'manylinux-x64-py3.8', |
| 'manylinux-x64-py3.11', |
| 'windows-x64-py3.8', |
| ], |
| ), |
| Prebuilt( |
| 'freetype-py', |
| '2.1.0.post1', |
| [ |
| 'mac-x64-py3.8', |
| 'manylinux-x64-py3.8', |
| 'manylinux-x64-py3.11', |
| 'windows-x86-py3.8', |
| 'windows-x64-py3.8', |
| ], |
| pyversions=['py2', 'py3'], |
| default=False, |
| ), |
| # We can't build this ourselves as the build depends on libhdf5. |
| Prebuilt( |
| 'h5py', |
| '2.10.0', |
| ['manylinux-x64-py3.8', 'windows-x64-py3.8', 'mac-x64-py3.8'], |
| ), |
| Prebuilt( |
| 'h5py', |
| '3.1.0', |
| ['manylinux-x64-py3.8', 'windows-x64-py3.8', 'mac-x64-py3.8'], |
| ), |
| Prebuilt( |
| 'h5py', |
| '3.6.0', |
| ['manylinux-x64-py3.8', 'windows-x64-py3.8', 'mac-x64-py3.8'], |
| ), |
| Prebuilt( |
| 'libclang', |
| '11.1.0', |
| ['manylinux-x64-py3.8', 'windows-x64-py3.8', 'mac-x64-py3.8'], |
| ), |
| Prebuilt( |
| 'libclang', |
| '12.0.0', |
| ['manylinux-x64-py3.8', 'windows-x64-py3.8', 'mac-x64-py3.8'], |
| ), |
| Prebuilt( |
| 'libcst', |
| '0.4.9', |
| [ |
| 'manylinux-x64-py3.8', |
| 'manylinux-x64-py3.11', |
| 'linux-arm64-py3.8', |
| 'linux-arm64-py3.11', |
| 'mac-x64-py3.8', |
| 'mac-arm64-py3.8', |
| 'windows-x64-py3.8', |
| 'windows-x64-py3.11', |
| ], |
| arch_map={ |
| 'linux-arm64-py3.8': ['manylinux2014_aarch64'], |
| 'linux-arm64-py3.11': ['manylinux2014_aarch64'], |
| }, |
| pyversions=['py3'], |
| ), |
| Prebuilt( |
| 'libcst', |
| '1.1.0', |
| [ |
| 'manylinux-x64-py3.8', |
| 'manylinux-x64-py3.11', |
| 'linux-arm64-py3.8', |
| 'linux-arm64-py3.11', |
| 'mac-x64-py3.8', |
| 'mac-arm64-py3.8', |
| 'windows-x64-py3.8', |
| 'windows-x64-py3.11', |
| ], |
| arch_map={ |
| 'linux-arm64-py3.8': ['manylinux2014_aarch64'], |
| 'linux-arm64-py3.11': ['manylinux2014_aarch64'], |
| }, |
| pyversions=['py3'], |
| ), |
| Prebuilt( |
| 'lxml', |
| '4.6.2', |
| ['manylinux-x64-py3.8'], |
| ), |
| Prebuilt( |
| 'pillow', |
| '8.1.2', |
| ['manylinux-x64-py3.8', 'windows-x64-py3.8'], |
| ), |
| Prebuilt( |
| 'pillow', |
| '8.2.0', |
| ['manylinux-x64-py3.8', 'mac-x64-py3.8', 'windows-x64-py3.8'], |
| ), |
| Prebuilt( |
| 'pillow', |
| '8.3.1', |
| [ |
| 'manylinux-x64-py3.8', |
| 'linux-arm64-py3.8', |
| 'mac-x64-py3.8', |
| 'mac-arm64-py3.8', |
| 'windows-x64-py3.8', |
| 'windows-x86-py3.8', |
| ], |
| arch_map={'linux-arm64-py3.8': ['manylinux2014_aarch64']}, |
| ), |
| Prebuilt( |
| 'pillow', |
| '9.5.0', |
| [ |
| 'manylinux-x64-py3.8', |
| 'manylinux-x64-py3.11', |
| 'linux-arm64-py3.8', |
| 'linux-arm64-py3.11', |
| 'mac-x64-py3.8', |
| 'mac-x64-py3.11', |
| 'mac-arm64-py3.8', |
| 'mac-arm64-py3.11', |
| 'windows-x64-py3.8', |
| 'windows-x64-py3.11', |
| 'windows-x86-py3.8', |
| 'windows-x86-py3.11', |
| ], |
| arch_map={ |
| 'linux-arm64-py3.8': ['manylinux_2_17_aarch64'], |
| 'linux-arm64-py3.11': ['manylinux_2_17_aarch64'] |
| }, |
| ), |
| Prebuilt( |
| 'pywin32', |
| '300', |
| ['windows-x86-py3.8', 'windows-x64-py3.8'], |
| pyversions=['py3'], |
| ), |
| Prebuilt( |
| 'pywin32', |
| '306', |
| [ |
| 'windows-x86-py3.8', 'windows-x86-py3.11', 'windows-x64-py3.8', |
| 'windows-x64-py3.11' |
| ], |
| pyversions=['py3'], |
| ), |
| Prebuilt( |
| 'scipy', |
| '1.6.0', |
| ['manylinux-x64-py3.8'], |
| pyversions=['py3'], |
| ), |
| Prebuilt( |
| 'scipy', |
| '1.6.2', |
| ['manylinux-x64-py3.8', 'mac-x64-py3.8', 'windows-x64-py3.8'], |
| pyversions=['py3'], |
| ), |
| Prebuilt( |
| 'scipy', |
| '1.7.1', |
| ['manylinux-x64-py3.8', 'mac-x64-py3.8', 'windows-x64-py3.8'], |
| pyversions=['py3'], |
| ), |
| Prebuilt( |
| 'scipy', |
| '1.7.3', |
| [ |
| 'manylinux-x64-py3.8', 'mac-x64-py3.8', 'mac-arm64-py3.8', |
| 'windows-x64-py3.8' |
| ], |
| pyversions=['py3'], |
| arch_map={'mac-arm64-py3.8': ['macosx_12_0_arm64']}, |
| ), |
| Prebuilt( |
| 'scipy', |
| '1.10.1', [ |
| 'manylinux-x64-py3.8', |
| 'manylinux-x64-py3.11', |
| 'mac-x64-py3.8', |
| 'mac-x64-py3.11', |
| 'mac-arm64-py3.8', |
| 'mac-arm64-py3.11', |
| 'windows-x64-py3.8', |
| 'windows-x64-py3.11', |
| ], |
| pyversions=['py3'], |
| arch_map={ |
| 'mac-arm64-py3.8': ['macosx_12_0_arm64'], |
| 'mac-arm64-py3.11': ['macosx_12_0_arm64'], |
| }), |
| Prebuilt( |
| 'tensorflow', |
| '2.4.1', |
| ['manylinux-x64-py3.8', 'mac-x64-py3.8', 'windows-x64-py3.8'], |
| pyversions=['py3'], |
| ), |
| Prebuilt( |
| 'tensorflow', |
| '2.5.0', |
| ['manylinux-x64-py3.8', 'mac-x64-py3.8', 'windows-x64-py3.8'], |
| pyversions=['py3'], |
| ), |
| Prebuilt( |
| 'tensorflow', |
| '2.6.0', |
| ['manylinux-x64-py3.8', 'mac-x64-py3.8', 'windows-x64-py3.8'], |
| pyversions=['py3'], |
| ), |
| Prebuilt( |
| 'tensorflow', |
| '2.7.0', |
| ['manylinux-x64-py3.8', 'mac-x64-py3.8', 'windows-x64-py3.8'], |
| pyversions=['py3'], |
| ), |
| Prebuilt( |
| 'tensorflow-decision-forests', |
| '0.2.4', |
| ['manylinux-x64-py3.8'], |
| pyversions=['py3'], |
| ), |
| Prebuilt( |
| 'tensorflow-io-gcs-filesystem', |
| '0.23.1', |
| ['manylinux-x64-py3.8', 'mac-x64-py3.8', 'windows-x64-py3.8'], |
| pyversions=['py3'], |
| arch_map={'mac-x64-py3.8': ['macosx_10_14_x86_64']}, |
| ), |
| ) |
| }) |
| |
| # UniversalSource. These are packages which produce universal (pure-python) |
| # wheels, but are only available in tarball form. |
| from .wheel_wheel import UniversalSource |
| SPECS.update({ |
| s.spec.tag: s for s in assert_sorted( |
| 'UniversalSource', |
| UniversalSource( |
| 'Appium_Python_Client', '0.24', pypi_name='Appium-Python-Client'), |
| UniversalSource('Django', '1.5.1'), |
| UniversalSource('Mako', '1.2.3', pyversions=['py3']), |
| UniversalSource('PeakUtils', '1.0.3'), |
| UniversalSource('Phidgets', '2.1.8'), |
| UniversalSource('PyYAML', '5.3.1', pyversions=['py3']), |
| UniversalSource('PyYAML', '6.0.1', pyversions=['py3']), |
| UniversalSource('Pympler', '0.8'), |
| UniversalSource('absl-py', '0.7.1'), |
| UniversalSource('apache-beam', '2.0.0'), |
| UniversalSource('backports.ssl_match_hostname', '3.5.0.1'), |
| UniversalSource('beartype', '0.15.0', pyversions=['py3']), |
| UniversalSource('black', '19.10b0', pyversions=['py3']), |
| UniversalSource('boolean.py', '4.0', pyversions=['py3']), |
| UniversalSource('clang', '5.0'), |
| UniversalSource( |
| 'clusterfuzz', |
| '2.5.6', |
| patches=('no-deps-install',), |
| ), |
| UniversalSource('configparser', '3.5.0'), |
| UniversalSource('crontab', '0.22.0'), |
| UniversalSource('distlib', '0.3.0', pyversions=['py3']), |
| UniversalSource('distlib', '0.3.7', pyversions=['py3']), |
| UniversalSource('docopt', '0.6.2'), |
| UniversalSource('ezt', '1.1'), |
| UniversalSource('fixtures', '4.0.1'), |
| UniversalSource('flake8', '6.0.0'), |
| UniversalSource('flask-talisman', '0.7.0'), |
| UniversalSource('future', '0.16.0'), |
| UniversalSource('future', '0.18.2'), |
| UniversalSource('gin', '0.1.006', pyversions=['py3']), |
| UniversalSource('glob2', '0.7'), |
| UniversalSource('google-cloud-monitoring', '2.9.1'), |
| UniversalSource('google-cloud-trace', '0.16.0'), |
| UniversalSource('google-cloud-trace', '0.24.2', pyversions=['py3']), |
| UniversalSource('google-cloud-trace', '1.11.2', pyversions=['py3']), |
| UniversalSource( |
| 'google_compute_engine', '2.6.2', |
| pypi_name='google-compute-engine'), |
| UniversalSource('googleapis-common-protos', '1.5.3'), |
| UniversalSource('googleapis-common-protos', '1.59.0'), |
| UniversalSource('grpc-google-iam-admin-v1', '0.10.0'), |
| UniversalSource('grpc-google-iam-v1', '0.11.4'), |
| UniversalSource('grpc-google-iam-v1', '0.12.3', pyversions=['py3']), |
| UniversalSource('grpc-google-iam-v1', '0.12.6', pyversions=['py3']), |
| UniversalSource('grpc-google-iam-v1', '0.12.7'), |
| UniversalSource('gym', '0.18.0', pyversions=['py3']), |
| UniversalSource('gym', '0.19.0', pyversions=['py3']), |
| UniversalSource('hjson', '3.1.0'), |
| UniversalSource('httpagentparser', '1.9.3'), |
| UniversalSource('httplib2', '0.10.3'), |
| UniversalSource('httplib2', '0.12.1'), |
| UniversalSource('httplib2', '0.13.1'), |
| UniversalSource('importlab', '0.6.1', pyversions=['py3']), |
| UniversalSource('importlab', '0.7', pyversions=['py3']), |
| UniversalSource('importlab', '0.8', pyversions=['py3']), |
| UniversalSource('ink-extensions', '1.0.2'), |
| UniversalSource('inotify_simple', '1.1.7'), |
| UniversalSource('itsdangerous', '1.1.0'), |
| UniversalSource('itsdangerous', '2.0.1', pyversions=['py3']), |
| UniversalSource('libcst', '0.3.19', pyversions=['py3']), |
| UniversalSource('libusb1', '1.5.3'), |
| UniversalSource('libusb1', '1.7.1'), |
| UniversalSource('license-expression', '30.1.1', pyversions=['py3']), |
| UniversalSource('lit', '13.0.0', pyversions=['py3']), |
| UniversalSource('mox', '0.5.3'), |
| UniversalSource('mozinfo', '0.10'), |
| UniversalSource('mozinfo', '1.1.0'), |
| UniversalSource('mozinfo', '1.2.2'), |
| UniversalSource('mozlog', '8.0.0'), |
| UniversalSource('oauth2client', '1.5.2'), |
| UniversalSource('oauth2client', '3.0.0'), |
| UniversalSource('odictliteral', '1.0.0'), |
| UniversalSource('pefile', '2018.8.8'), |
| UniversalSource('perfect-hash', '0.2.1'), |
| UniversalSource('pg8000', '1.29.4', pyversions=['py3']), |
| UniversalSource('portpicker', '1.3.0'), |
| UniversalSource('portpicker', '1.3.1'), |
| UniversalSource('pproxy', '2.7.8', pyversions=['py3']), |
| UniversalSource('proto-plus', '1.13.0', pyversions=['py3']), |
| UniversalSource('protobuf-to-dict', '0.1.0'), |
| UniversalSource('protorpc', '0.12.0'), |
| UniversalSource('ptyprocess', '0.7.0'), |
| UniversalSource('pybind11', '2.10.3'), |
| UniversalSource('pybrctl', '0.1.3'), |
| UniversalSource('pycparser', '2.17'), |
| UniversalSource('pycparser', '2.19'), |
| UniversalSource('pydot', '1.4.2'), |
| UniversalSource('pyftpdlib', '0.7.0'), |
| UniversalSource('pyftpdlib', '1.0.0'), |
| UniversalSource('pyftpdlib', '1.5.3'), |
| UniversalSource('pylint-quotes', '0.1.8'), |
| UniversalSource('pyperclip', '1.8.0'), |
| UniversalSource('pyrsistent', '0.16.0', pyversions=['py3']), |
| UniversalSource('pytest-mock', '3.10.0', pyversions=['py3']), |
| UniversalSource('pytrie', '0.4.0', pyversions=['py3']), |
| UniversalSource('requests-mock', '1.10.0', pyversions=['py3']), |
| UniversalSource('requests-unixsocket', '0.1.5'), |
| UniversalSource('retrying', '1.3.3'), |
| UniversalSource('selenium', '2.29.0'), |
| UniversalSource('spdx-tools', '0.7.1'), |
| UniversalSource('spdx-tools', '0.8.0', pyversions=['py3']), |
| UniversalSource('termcolor', '1.1.0'), |
| UniversalSource('tlslite', '0.4.9'), |
| UniversalSource('tlslite-ng', '0.7.6'), |
| UniversalSource('tox', '4.4.4'), |
| UniversalSource('unittest-xml-reporting', '3.1.0'), |
| UniversalSource('vcrpy', '4.2.1'), |
| UniversalSource('websocket_client', '0.40.0'), |
| UniversalSource('websockets', '10.1', pyversions=['py3']), |
| UniversalSource('websockets', '10.3', pyversions=['py3']), |
| UniversalSource('websockets', '11.0.3', pyversions=['py3']), |
| UniversalSource('yamllint', '1.29.0', pyversions=['py3']), |
| ) |
| }) |
| |
| # Universal. These are packages which produce universal (pure-python) wheels, |
| # and are available from PyPi in wheel form (.whl) already. |
| from .wheel_wheel import Universal |
| # yapf: disable |
| SPECS.update({ |
| s.spec.tag: s for s in assert_sorted('Universal', *[ |
| Universal('CherryPy', '14.2.0'), |
| Universal('Click', '7.0'), |
| Universal('Click', '8.0.3', pyversions=['py3']), |
| Universal('Django', '1.9'), |
| Universal('GitPython', '2.1.9'), |
| Universal('Jinja2', '2.10'), |
| Universal('Jinja2', '2.10.1'), |
| Universal('Jinja2', '3.0.2', pyversions=['py3']), |
| Universal('Jinja2', '3.1.2', pyversions=['py3']), |
| Universal('Keras-Preprocessing', '1.1.2'), |
| Universal('Markdown', '3.0.1'), |
| Universal('Markdown', '3.3.4', pyversions=['py3']), |
| Universal('Markdown', '3.4.1', pyversions=['py3']), |
| Universal('Paste', '2.0.2', pyversions=['py3']), |
| Universal('Paste', '3.7.1', pyversions=['py3']), |
| Universal('PySocks', '1.7.1', pyversions=['py3']), |
| Universal('SecretStorage', '3.1.2', pyversions=['py3']), |
| Universal('WebOb', '1.5.0'), |
| Universal('WebOb', '1.8.6'), |
| Universal('WebTest', '2.0.35'), |
| Universal('Werkzeug', '0.15.2'), |
| Universal('Werkzeug', '1.0.1'), |
| Universal('Werkzeug', '2.0.1', pyversions=['py3']), |
| Universal('absl-py', '0.11.0', pyversions=['py3']), |
| Universal('aenum', '2.1.2', pyversions=['py3']), |
| Universal('altgraph', '0.16.1'), |
| Universal('ansicon', '1.89.0'), |
| Universal('anytree', '2.8.0'), |
| Universal('apipkg', '1.5'), |
| Universal('appdirs', '1.4.3'), |
| Universal('appengine-python-standard', '0.2.2', pyversions=['py3']), |
| Universal('appengine-python-standard', '0.3.1', pyversions=['py3']), |
| Universal('appengine-python-standard', '1.1.1', pyversions=['py3']), |
| Universal('appengine-python-standard', '1.1.5', pyversions=['py3']), |
| Universal('argcomplete', '1.12.2'), |
| Universal('argh', '0.26.2'), |
| Universal('argparse', |
| '1.4.0'), # Includes fixes missing from stdlib 2.7.6 |
| Universal('asn1crypto', '0.22.0'), |
| Universal('asn1crypto', '1.0.1'), |
| Universal('astroid', '1.4.9'), |
| Universal('astroid', '1.5.3'), |
| Universal('astroid', '1.6.6'), |
| Universal('astroid', '2.0.4', pyversions=['py3']), |
| Universal('astroid', '2.1.0', pyversions=['py3']), |
| Universal('astroid', '2.2.5', pyversions=['py3']), |
| Universal('astroid', '2.3.3', pyversions=['py3']), |
| Universal('astroid', '2.4.2', pyversions=['py3']), |
| Universal('astroid', '2.5.3', pyversions=['py3']), |
| Universal('astroid', '2.5.6', pyversions=['py3']), |
| Universal('astroid', '2.6.6', pyversions=['py3']), |
| Universal('astroid', '2.7.3', pyversions=['py3']), |
| Universal('astroid', '2.8.6', pyversions=['py3']), |
| Universal('astroid', '2.9.3', pyversions=['py3']), |
| Universal('astroid', '2.11.3', pyversions=['py3']), |
| Universal('astroid', '2.15.8', pyversions=['py3']), |
| Universal('astunparse', '1.5.0'), |
| Universal('astunparse', '1.6.3'), |
| Universal('async-generator', '1.10', pyversions=['py3']), |
| Universal('atomicwrites', '1.3.0'), |
| Universal('attrs', '17.4.0'), |
| Universal('attrs', '18.2.0'), |
| Universal('attrs', '19.3.0'), |
| Universal('attrs', '20.3.0'), |
| Universal('attrs', '21.4.0'), |
| Universal('attrs', '23.1.0', pyversions=['py3']), |
| Universal('backoff', '2.2.1', pyversions=['py3']), |
| Universal('backports.functools_lru_cache', '1.5'), |
| Universal('backports.shutil_get_terminal_size', '1.0.0'), |
| Universal('beautifulsoup4', '4.9.0', pyversions=['py3']), |
| Universal('black', '22.3.0', pyversions=['py3']), |
| Universal('black', '23.1.0', pyversions=['py3']), |
| Universal('blessed', '1.20.0'), |
| Universal('blessings', '1.7', pyversions=['py3']), |
| Universal('boto', '2.48.0'), |
| Universal('boto3', '1.18.56', pyversions=['py3']), |
| Universal('cachetools', '2.0.1'), |
| Universal('cachetools', '4.2.1', pyversions=['py3']), |
| Universal('cachetools', '4.2.2', pyversions=['py3']), |
| Universal('cachetools', '5.3.2', pyversions=['py3']), |
| Universal('certifi', '2018.11.29'), |
| Universal('certifi', '2019.3.9'), |
| Universal('certifi', '2020.4.5.1'), |
| Universal('certifi', '2020.11.8'), |
| Universal('certifi', '2020.12.5'), |
| Universal('certifi', '2021.5.30'), |
| Universal('certifi', '2023.5.7', pyversions=['py3']), |
| Universal('certifi', '2023.7.22', pyversions=['py3']), |
| Universal('certifi', '2023.11.17', pyversions=['py3']), |
| Universal('chardet', '3.0.4'), |
| Universal('chardet', '4.0.0'), |
| Universal('chardet', '5.2.0', pyversions=['py3']), |
| Universal('charset_normalizer', '2.0.4', pyversions=['py3']), |
| Universal('charset_normalizer', '2.0.12', pyversions=['py3']), |
| Universal('charset_normalizer', '3.1.0', pyversions=['py3']), |
| Universal('charset_normalizer', '3.3.2', pyversions=['py3']), |
| Universal('cheroot', '6.2.4'), |
| Universal('cloudevents', '1.9.0', pyversions=['py3']), |
| Universal('cloudpickle', '1.6.0', pyversions=['py3']), |
| Universal('colorama', '0.4.1'), |
| Universal('colorama', '0.4.6'), |
| Universal('contextlib2', '0.5.5'), |
| Universal('db-dtypes', '1.2.0'), |
| Universal('decorator', '4.4.2', pyversions=['py3']), |
| Universal('decorator', '5.0.7', pyversions=['py3']), |
| Universal('decorator', '5.0.9', pyversions=['py3']), |
| Universal('deprecated', '1.2.13', pyversions=['py3']), |
| Universal('deprecation', '2.1.0'), |
| Universal('dill', '0.3.4', pyversions=['py3']), |
| Universal('dill', '0.3.7', pyversions=['py3']), |
| Universal('docker', '2.7.0'), |
| Universal('docker', '5.0.0'), |
| Universal('docker', '6.1.3', pyversions=['py3']), |
| Universal('docker-pycreds', '0.2.1'), |
| Universal('ecdsa', '0.17.0'), |
| Universal('enum34', '1.1.6', pyversions=['py3']), |
| Universal('exceptiongroup', '1.1.2', pyversions=['py3']), |
| Universal('execnet', '1.8.0'), |
| Universal('execnet', '2.0.2', pyversions=['py3']), |
| Universal('fasteners', '0.14.1'), |
| Universal('filelock', '3.0.12', pyversions=['py3']), |
| Universal('filelock', '3.12.2', pyversions=['py3']), |
| Universal('flask', '1.0.2'), |
| Universal('flask', '2.0.2', pyversions=['py3']), |
| Universal('flatbuffers', '1.12'), |
| Universal('flatbuffers', '2.0', pyversions=['py3']), |
| Universal('frozendict', '2.0.6', pyversions=['py3']), |
| Universal('funcsigs', '1.0.2'), |
| Universal('functions-framework', '3.4.0', pyversions=['py3']), |
| Universal('futures', '3.1.1', pyversions=['py3']), |
| Universal('gast', '0.3.3'), |
| Universal('gast', '0.4.0', pyversions=['py3']), |
| Universal('gin-config', '0.4.0'), |
| Universal('gitdb2', '2.0.3'), |
| Universal('google-api-core', '0.1.1'), |
| Universal('google-api-core', '1.25.1'), |
| Universal('google-api-core', '1.31.5', pyversions=['py3']), |
| Universal('google-api-core', '2.5.0', pyversions=['py3']), |
| Universal('google-api-core', '2.11.0', pyversions=['py3']), |
| Universal('google-api-core', '2.14.0', pyversions=['py3']), |
| Universal('google-api-python-client', '1.6.2'), |
| Universal('google-api-python-client', '1.12.8'), |
| Universal('google-api-python-client', '2.2.0', pyversions=['py3']), |
| Universal('google-api-python-client', '2.111.0', pyversions=['py3']), |
| Universal('google-auth', '1.2.1'), |
| Universal('google-auth', '1.20.1'), |
| Universal('google-auth', '1.25.0'), |
| Universal('google-auth', '1.29.0'), |
| Universal('google-auth', '1.35.0'), |
| Universal('google-auth', '2.6.0', pyversions=['py3']), |
| Universal('google-auth', '2.16.2', pyversions=['py3']), |
| Universal('google-auth', '2.23.4'), |
| Universal('google-auth-httplib2', '0.0.3'), |
| Universal('google-auth-httplib2', '0.1.0'), |
| Universal('google-auth-oauthlib', '0.3.0'), |
| Universal('google-auth-oauthlib', '0.4.4', pyversions=['py3']), |
| Universal('google-auth-oauthlib', '0.4.5', pyversions=['py3']), |
| Universal('google-cloud-appengine-logging', '1.1.1'), |
| Universal('google-cloud-audit-log', '0.2.0'), |
| Universal('google-cloud-bigquery', '0.28.0'), |
| Universal('google-cloud-bigquery', '2.7.0', pyversions=['py3']), |
| Universal('google-cloud-bigquery', '3.23.1', pyversions=['py3']), |
| Universal('google-cloud-bigquery-storage', '2.16.2', |
| pyversions=['py3']), |
| Universal('google-cloud-bigquery-storage', '2.25.0', |
| pyversions=['py3']), |
| Universal('google-cloud-bigtable', '0.28.1'), |
| Universal('google-cloud-build', '3.8.3', pyversions=['py3']), |
| Universal('google-cloud-build', '3.13.0', pyversions=['py3']), |
| Universal('google-cloud-core', '0.28.0'), |
| Universal('google-cloud-core', '1.5.0'), |
| Universal('google-cloud-core', '2.2.2', pyversions=['py3']), |
| Universal('google-cloud-core', '2.3.3', pyversions=['py3']), |
| Universal('google-cloud-datastore', '1.6.0'), |
| Universal('google-cloud-datastore', '2.1.6', pyversions=['py3']), |
| Universal('google-cloud-dns', '0.28.0'), |
| Universal('google-cloud-firestore', '0.28.0'), |
| Universal('google-cloud-kms', '2.11.1', pyversions=['py3']), |
| Universal('google-cloud-language', '1.0.0'), |
| Universal('google-cloud-logging', '1.4.0'), |
| Universal('google-cloud-logging', '3.0.0', pyversions=['py3']), |
| Universal('google-cloud-monitoring', '0.28.0'), |
| Universal('google-cloud-monitoring', '1.1.2', pyversions=['py3']), |
| Universal('google-cloud-ndb', '2.1.1', pyversions=['py3']), |
| Universal('google-cloud-pubsub', '0.29.0'), |
| Universal('google-cloud-pubsub', '2.9.0', pyversions=['py3']), |
| Universal('google-cloud-resource-manager', '0.28.0'), |
| Universal('google-cloud-runtimeconfig', '0.28.0'), |
| Universal('google-cloud-secret-manager', '2.10.0'), |
| Universal('google-cloud-spanner', '0.29.0'), |
| Universal('google-cloud-spanner', '3.40.1'), |
| Universal('google-cloud-speech', '0.30.0'), |
| Universal('google-cloud-storage', '1.6.0'), |
| Universal('google-cloud-storage', '1.41.1'), |
| Universal('google-cloud-storage', '2.1.0', pyversions=['py3']), |
| Universal('google-cloud-tasks', '2.8.1'), |
| Universal('google-cloud-tasks', '2.9.1'), |
| Universal('google-cloud-translate', '1.3.0'), |
| Universal('google-cloud-videointelligence', '0.28.0'), |
| Universal('google-pasta', '0.2.0', pyversions=['py3']), |
| Universal('google-resumable-media', '0.3.1'), |
| Universal('google-resumable-media', '1.2.0'), |
| Universal('google-resumable-media', '2.2.1', pyversions=['py3']), |
| Universal('google-resumable-media', '2.3.0', pyversions=['py3']), |
| Universal('googleapis-common-protos', '1.52.0'), |
| Universal('googleapis-common-protos', '1.61.0'), |
| Universal('grpcio-status', '1.44.0', pyversions=['py3']), |
| Universal('grpcio-status', '1.57.0', pyversions=['py3']), |
| Universal('grpcio-status', '1.59.3', pyversions=['py3']), |
| Universal('gunicorn', '20.1.0', pyversions=['py3']), |
| Universal('h11', '0.13.0', pyversions=['py3']), |
| Universal('h11', '0.14.0', pyversions=['py3']), |
| Universal('html5lib', '1.0.1'), |
| Universal('httplib2', '0.19.1', pyversions=['py3']), |
| Universal('httplib2', '0.22.0', pyversions=['py3']), |
| Universal('humiolib', '0.2.4'), |
| Universal('hypothesis', '6.9.1', pyversions=['py3']), |
| Universal('idna', '2.5'), |
| Universal('idna', '2.8'), |
| Universal('idna', '2.10'), |
| Universal('idna', '3.2', pyversions=['py3']), |
| Universal('idna', '3.4', pyversions=['py3']), |
| Universal('immutabledict', '4.1.0', pyversions=['py3']), |
| Universal('importlib-metadata', '1.6.0'), |
| Universal('importlib-metadata', '6.0.0', pyversions=['py3']), |
| Universal('importlib-metadata', '7.0.0', pyversions=['py3']), |
| Universal('iniconfig', '1.1.1', pyversions=['py3']), |
| Universal('iso8601', '0.1.12', pyversions=['py3']), |
| Universal('isodate', '0.6.1'), |
| Universal('isort', '4.3.4', pyversions=['py3']), |
| Universal('isort', '5.8.0', pyversions=['py3']), |
| Universal('isort', '5.10.1', pyversions=['py3']), |
| Universal('jinxed', '1.2.0'), |
| Universal('json5', '0.6.0'), |
| Universal('jsonlines', '1.2.0'), |
| Universal('jsonschema', '3.2.0'), # py2 + py3 |
| Universal('junitparser', '2.8.0'), |
| Universal('keras', '2.6.0', pyversions=['py3']), |
| Universal('keras', '2.7.0', pyversions=['py3']), |
| Universal('keras-nightly', '2.5.0.dev2021032900', pyversions=['py3']), |
| Universal('keyring', '18.0.1'), |
| Universal('macholib', '1.11'), |
| Universal('markdown-it-py', '2.1.0', pyversions=['py3']), |
| Universal('mccabe', '0.6.1'), |
| Universal('mccabe', '0.7.0'), |
| Universal('mdurl', '0.1.2', pyversions=['py3']), |
| Universal('mock', '2.0.0'), |
| Universal('mock', '4.0.3', pyversions=['py3']), |
| Universal('mock', '5.1.0', pyversions=['py3']), |
| Universal('monotonic', '1.5'), |
| Universal('more-itertools', '4.1.0', pyversions=['py3']), |
| Universal('mox3', '1.1.0'), |
| Universal('mozdebug', '0.1.1'), |
| Universal('mozdebug', '0.2'), |
| Universal('mozdebug', '0.3.0', pyversions=['py3']), |
| Universal('mozfile', '2.0.0'), |
| Universal('mozlog', '3.8'), |
| Universal('mozlog', '4.1'), |
| Universal('mozlog', '4.2.0'), |
| Universal('mozlog', '5.0'), |
| Universal('mozlog', '7.1.0'), |
| Universal('mozprocess', '1.2.1'), |
| Universal('mozprocess', '1.3.0', pyversions=['py3']), |
| Universal('mozterm', '1.0.0'), |
| Universal('multiprocessing-logging', '0.3.1'), |
| Universal('mypy', '1.2.0', pyversions=['py3']), |
| Universal('mypy-extensions', '0.4.3', pyversions=['py3']), |
| Universal('mypy-extensions', '1.0.0', pyversions=['py3']), |
| Universal('natsort', '8.3.1', pyversions=['py3']), |
| Universal('networkx', '2.5', pyversions=['py3']), |
| Universal('nose', '1.3.7', pyversions=['py3']), |
| Universal('nose2', '0.9.1'), |
| Universal('nose2', '0.9.2'), |
| Universal('nose2', '0.10.0'), |
| Universal('oauth2client', '4.0.0'), |
| Universal('oauth2client', '4.1.2'), |
| Universal('oauth2client', '4.1.3'), |
| Universal('oauthlib', '3.0.1'), |
| Universal('oauthlib', '3.1.0'), |
| Universal('oauthlib', '3.1.1'), |
| Universal('opentelemetry-api', '1.12.0', pyversions=['py3']), |
| Universal('opentelemetry-api', '1.18.0', pyversions=['py3']), |
| Universal('opentelemetry-exporter-gcp-monitoring', '1.5.0a0', |
| pyversions=['py3']), |
| Universal('opentelemetry-exporter-otlp-proto-common', '1.18.0', |
| pyversions=['py3']), |
| Universal('opentelemetry-exporter-otlp-proto-grpc', '1.18.0', |
| pyversions=['py3']), |
| Universal('opentelemetry-proto', '1.18.0', pyversions=['py3']), |
| Universal('opentelemetry-resourcedetector-gcp', '1.5.0a0', |
| pyversions=['py3']), |
| Universal('opentelemetry-sdk', '1.12.0', pyversions=['py3']), |
| Universal('opentelemetry-sdk', '1.18.0', pyversions=['py3']), |
| Universal('opentelemetry-semantic-conventions', '0.33b0', |
| pyversions=['py3']), |
| Universal('opentelemetry-semantic-conventions', '0.39b0', |
| pyversions=['py3']), |
| Universal('opt-einsum', '3.3.0', pyversions=['py3']), |
| Universal('ordered-set', '4.1.0', pyversions=['py3']), |
| Universal('outcome', '1.1.0', pyversions=['py3']), |
| Universal('outcome', '1.2.0', pyversions=['py3']), |
| Universal('packaging', '16.8'), |
| Universal('packaging', '20.9', pyversions=['py3']), |
| Universal('packaging', '21.3', pyversions=['py3']), |
| Universal('packaging', '22.0', pyversions=['py3']), |
| Universal('packaging', '23.0', pyversions=['py3']), |
| Universal('packaging-legacy', '23.0', pyversions=['py3']), |
| Universal('parameterized', '0.7.0'), |
| Universal('parameterized', '0.7.1'), |
| Universal('parameterized', '0.8.1'), |
| Universal('paramiko', '1.16.3'), |
| Universal('paramiko', '2.4.1'), |
| Universal('paramiko', '2.7.2'), |
| Universal('pathlib2', '2.3.3'), |
| Universal('pathspec', '0.9.0', pyversions=['py3']), |
| Universal('pbr', '3.0.0'), |
| Universal('pbr', '5.9.0'), |
| Universal('pg8000', '1.29.4', pyversions=['py3']), |
| Universal('pipenv', '2018.11.26', pyversions=['py3']), |
| Universal('pipenv', '2023.7.23', pyversions=['py3']), |
| Universal('platformdirs', '2.5.2', pyversions=['py3']), |
| Universal('platformdirs', '3.10.0', pyversions=['py3']), |
| Universal('platformdirs', '4.1.0', pyversions=['py3']), |
| Universal('pluggy', '0.6.0', pyversions=['py3']), |
| Universal('pluggy', '0.7.1'), |
| Universal('pluggy', '0.8.1'), |
| Universal('pluggy', '0.13.1', pyversions=['py3']), |
| Universal('ply', '3.11'), |
| Universal('portend', '2.2'), |
| Universal('proto-plus', '1.20.3', pyversions=['py3']), |
| Universal('proto-plus', '1.22.2', pyversions=['py3']), |
| Universal('proto-plus', '1.22.3', pyversions=['py3']), |
| Universal('protobuf', '3.2.0'), |
| Universal('protobuf', '3.6.0'), |
| Universal('protobuf', '3.6.1'), |
| Universal('protobuf', '3.10.0'), |
| Universal('protobuf', '3.12.2'), |
| Universal('protobuf', '3.13.0'), |
| Universal('protobuf', '3.15.8'), |
| Universal('protobuf', '3.17.3'), |
| Universal('protobuf', '3.18.1'), |
| Universal('protobuf', '3.19.3', pyversions=['py3']), |
| Universal('protobuf', '3.19.4', pyversions=['py3']), |
| Universal('protobuf', '3.20.0', pyversions=['py3']), |
| Universal('protobuf', '3.20.1', pyversions=['py3']), |
| Universal('protobuf', '4.21.1', pyversions=['py3']), |
| Universal('protobuf', '4.21.9', pyversions=['py3']), |
| Universal('protobuf', '4.24.2', pyversions=['py3']), |
| Universal('protobuf', '4.25.1', pyversions=['py3']), |
| Universal('py', '1.5.3'), |
| Universal('py', '1.10.0'), |
| Universal('pyasn1', '0.2.3'), |
| Universal('pyasn1', '0.4.5'), |
| Universal('pyasn1', '0.4.8'), |
| Universal('pyasn1', '0.5.1'), |
| Universal('pyasn1_modules', '0.0.8'), |
| Universal('pyasn1_modules', '0.2.4'), |
| Universal('pyasn1_modules', '0.2.8'), |
| Universal('pyasn1_modules', '0.3.0'), |
| Universal('pycnite', '2023.10.11', pyversions=['py3']), |
| Universal('pycodestyle', '2.10.0'), |
| Universal('pycparser', '2.21'), |
| Universal('pyelftools', '0.29'), |
| Universal('pyfakefs', '3.7.2'), |
| Universal('pyfakefs', '5.5.0', pyversions=['py3']), |
| Universal('pyflakes', '3.0.1'), |
| Universal('pyglet', '1.5.0'), |
| Universal('pygments', '2.14.0', pyversions=['py3']), |
| Universal('pykwalify', '1.8.0'), |
| Universal('pylint', '2.0.1', pyversions=['py3']), |
| Universal('pylint', '2.1.1', pyversions=['py3']), |
| Universal('pylint', '2.2.3', pyversions=['py3']), |
| Universal('pylint', '2.3.1', pyversions=['py3']), |
| Universal('pylint', '2.4.4', pyversions=['py3']), |
| Universal('pylint', '2.6.0', pyversions=['py3']), |
| Universal('pylint', '2.7.4', pyversions=['py3']), |
| Universal('pylint', '2.8.3', pyversions=['py3']), |
| Universal('pylint', '2.9.6', pyversions=['py3']), |
| Universal('pylint', '2.10.2', pyversions=['py3']), |
| Universal('pylint', '2.11.1', pyversions=['py3']), |
| Universal('pylint', '2.12.2', pyversions=['py3']), |
| Universal('pylint', '2.13.8', pyversions=['py3']), |
| Universal('pylint', '2.14.4', pyversions=['py3']), |
| Universal('pylint', '2.17.7', pyversions=['py3']), |
| Universal('pylint', '3.0.3', pyversions=['py3']), |
| Universal('pylint-quotes', '0.2.1', pyversions=['py3']), |
| Universal('pylint-quotes', '0.2.3', pyversions=['py3']), |
| Universal('pyocd', '0.33.1', pyversions=['py3']), |
| Universal('pyopenssl', '17.2.0'), |
| Universal('pyopenssl', '19.0.0'), |
| Universal('pyopenssl', '20.0.0'), |
| Universal('pyparsing', '2.2.0'), |
| Universal('pyparsing', '2.4.7'), |
| Universal('pyparsing', '3.0.7', pyversions=['py3']), |
| Universal('pyparsing', '3.1.1', pyversions=['py3']), |
| Universal('pyserial', '3.4'), |
| Universal('pytest', '3.5.0'), |
| Universal('pytest', '3.6.2'), |
| Universal('pytest', '3.6.4'), |
| Universal('pytest', '3.10.1'), |
| Universal('pytest', '4.1.1'), |
| Universal('pytest', '5.4.3', pyversions=['py3']), |
| Universal('pytest', '6.2.2', pyversions=['py3']), |
| Universal('pytest', '7.3.1', pyversions=['py3']), |
| Universal('pytest-asyncio', '0.14.0', pyversions=['py3']), |
| Universal('pytest-asyncio', '0.19.0', pyversions=['py3']), |
| Universal('pytest-cov', '2.5.1'), |
| Universal('pytest-cov', '2.6.1'), |
| Universal('pytest-cov', '2.8.1'), |
| Universal('pytest-cov', '2.11.1'), |
| Universal('pytest-forked', '1.3.0'), |
| Universal('pytest-home', '0.5.0', pyversions=['py3']), |
| Universal('pytest-reportlog', '0.1.2', pyversions=['py3']), |
| Universal('pytest-rerunfailures', '11.1.2', pyversions=['py3']), |
| Universal('pytest-timeout', '2.1.0', pyversions=['py3']), |
| Universal('pytest-xdist', '1.31.0'), |
| Universal('pytest-xdist', '3.3.1', pyversions=['py3']), |
| Universal('python-dateutil', '2.7.3'), |
| Universal('python-dateutil', '2.8.1'), |
| Universal('python-magic', '0.4.24'), |
| Universal('pytz', '2018.4'), |
| Universal('pytz', '2021.1'), |
| Universal('pytz', '2024.1'), |
| Universal('pyusb', '1.2.1', pyversions=['py3']), |
| Universal('pywinauto', '0.6.8'), |
| Universal('rdflib', '6.3.2', pyversions=['py3']), |
| Universal('requests', '2.13.0'), |
| Universal('requests', '2.21.0'), |
| Universal('requests', '2.25.1'), |
| Universal('requests', '2.26.0'), |
| Universal('requests', '2.31.0', pyversions=['py3']), |
| Universal('requests-oauthlib', '1.2.0'), |
| Universal('requests-oauthlib', '1.3.0'), |
| Universal('rich', '13.2.0', pyversions=['py3']), |
| Universal('rsa', '3.4.2'), |
| Universal('rsa', '4.0'), |
| Universal('rsa', '4.7.2', pyversions=['py3']), |
| Universal('rsa', '4.9.0', pyversions=['py3']), |
| Universal('ruamel.yaml', '0.17.16', pyversions=['py3']), |
| Universal('selenium', '3.4.1'), |
| Universal('selenium', '3.14.0'), |
| Universal('selenium', '4.1.0', pyversions=['py3']), |
| Universal('selenium', '4.10.0', pyversions=['py3']), |
| Universal('semantic-version', '2.10.0'), |
| Universal('setuptools', '34.3.2'), |
| Universal('setuptools', '44.1.0'), |
| Universal('setuptools', '46.1.3', pyversions=['py3']), |
| Universal('setuptools', '57.4.0', pyversions=['py3']), |
| Universal('setuptools', '68.0.0', pyversions=['py3']), |
| Universal('singledispatch', '3.4.0.3'), |
| Universal('six', '1.10.0'), |
| Universal('six', '1.11.0'), |
| Universal('six', '1.12.0'), |
| Universal('six', '1.14.0'), |
| Universal('six', '1.15.0'), |
| Universal('six', '1.16.0'), |
| Universal('smmap2', '2.0.3'), |
| Universal('sniffio', '1.2.0', pyversions=['py3']), |
| Universal('sniffio', '1.3.0', pyversions=['py3']), |
| Universal('sortedcontainers', '2.4.0', pyversions=['py3']), |
| Universal('soupsieve', '1.9.5'), |
| Universal('sqlparse', '0.4.4', pyversions=['py3']), |
| Universal('tabulate', '0.8.9', pyversions=['py3']), |
| Universal('tabulate', '0.8.10', pyversions=['py3']), |
| Universal('tempora', '1.11'), |
| Universal('tenacity', '8.2.3', pyversions=['py3']), |
| Universal('tensorboard', '2.5.0', pyversions=['py3']), |
| Universal('tensorboard', '2.6.0', pyversions=['py3']), |
| Universal('tensorboard', '2.7.0', pyversions=['py3']), |
| Universal('tensorboard-data-server', '0.6.0', pyversions=['py3']), |
| Universal('tensorboard-data-server', '0.6.1', pyversions=['py3']), |
| Universal('tensorboard-plugin-wit', '1.8.0', pyversions=['py3']), |
| Universal('tensorflow-estimator', '2.4.0'), |
| Universal('tensorflow-estimator', '2.5.0'), |
| Universal('tensorflow-estimator', '2.6.0'), |
| Universal('tensorflow-estimator', '2.7.0', pyversions=['py3']), |
| Universal('tensorflow-probability', '0.12.2'), |
| Universal('tensorflow-probability', '0.13.0'), |
| Universal('tensorflow-probability', '0.15.0'), |
| Universal('testfixtures', '7.0.0', pyversions=['py3']), |
| Universal('tf-agents', '0.7.1', pyversions=['py3']), |
| Universal('tf-agents', '0.11.0', pyversions=['py3']), |
| Universal('toml', '0.10.1', pyversions=['py3']), |
| Universal('toml', '0.10.2', pyversions=['py3']), |
| Universal('tomli', '1.1.0', pyversions=['py3']), |
| Universal('tomli', '2.0.1', pyversions=['py3']), |
| Universal('tomlkit', '0.12.3', pyversions=['py3']), |
| Universal('trio', '0.20.0', pyversions=['py3']), |
| Universal('trio', '0.22.1', pyversions=['py3']), |
| Universal('trio-websocket', '0.9.2', pyversions=['py3']), |
| Universal('trio-websocket', '0.10.3', pyversions=['py3']), |
| Universal('types-PyYAML', '6.0.12.12', pyversions=['py3']), |
| Universal( |
| 'types-backports.ssl-match-hostname', '3.7.4.4', pyversions=['py3'] |
| ), |
| Universal('types-cryptography', '3.3.23.2', pyversions=['py3']), |
| Universal('types-protobuf', '4.21.0.7', pyversions=['py3']), |
| Universal('types-psutil', '5.8.23', pyversions=['py3']), |
| Universal('types-pyOpenSSL', '23.0.0.0', pyversions=['py3']), |
| Universal('types-pyOpenSSL', '23.3.0.0', pyversions=['py3']), |
| Universal('types-pywin32', '306.0.0.6', pyversions=['py3']), |
| Universal('types-simplejson', '3.19.0.2', pyversions=['py3']), |
| Universal('types-urllib3', '1.26.25.14', pyversions=['py3']), |
| Universal('typing-extensions', '3.7.4.3', pyversions=['py3']), |
| Universal('typing-extensions', '3.10.0.2', pyversions=['py3']), |
| Universal('typing-extensions', '4.0.1', pyversions=['py3']), |
| Universal('typing-extensions', '4.3.0', pyversions=['py3']), |
| Universal('typing-inspect', '0.7.1', pyversions=['py3']), |
| Universal('tzdata', '2023.4'), |
| Universal('uritemplate', '3.0.0'), |
| Universal('uritemplate', '3.0.1'), |
| Universal('uritemplate', '4.1.1', pyversions=['py3']), |
| Universal('uritools', '4.0.1', pyversions=['py3']), |
| Universal('urllib3', '1.22'), |
| Universal('urllib3', '1.24.1'), |
| Universal('urllib3', '1.24.3'), |
| Universal('urllib3', '1.26.4'), |
| Universal('urllib3', '1.26.6'), |
| Universal('urllib3', '1.26.16'), |
| Universal('urllib3', '2.0.3', pyversions=['py3']), |
| Universal('urllib3', '2.0.7', pyversions=['py3']), |
| Universal('urllib3', '2.1.0', pyversions=['py3']), |
| Universal('virt-firmware', '23.5', pyversions=['py3']), |
| Universal('virtualenv', '20.0.20'), |
| Universal('virtualenv', '20.24.2', pyversions=['py3']), |
| Universal('virtualenv-clone', '0.5.4'), |
| Universal('virtualenv-clone', '0.5.7', pyversions=['py3']), |
| Universal('vulture', '2.3', pyversions=['py3']), |
| Universal('waitress', '1.4.3'), |
| Universal('wand', '0.6.6'), |
| Universal('wcwidth', '0.1.8'), |
| Universal('wcwidth', '0.2.5'), |
| Universal('webencodings', '0.5.1'), |
| Universal('west', '0.14.0', pyversions=['py3']), |
| Universal('west', '1.1.0', pyversions=['py3']), |
| Universal('wheel', '0.33.1'), |
| Universal('wheel', '0.36.2'), |
| Universal('wheel', '0.37.0'), |
| Universal('wrapt', '1.15.0', pyversions=['py3']), |
| Universal('wsproto', '1.1.0', pyversions=['py3']), |
| Universal('wsproto', '1.2.0', pyversions=['py3']), |
| Universal('xmltodict', '0.13.0'), |
| Universal('yapf', '0.22.0'), |
| Universal('yapf', '0.24.0'), |
| Universal('yapf', '0.27.0'), |
| Universal('yapf', '0.29.1'), |
| Universal('yapf', '0.30.0'), |
| Universal('yapf', '0.31.0'), |
| Universal('yapf', '0.32.0', pyversions=['py3']), |
| Universal('yapf', '0.40.2', pyversions=['py3']), |
| Universal('zipp', '1.2.0'), |
| Universal('zipp', '3.1.0', pyversions=['py3']), |
| Universal('zipp', '3.7.0', pyversions=['py3']), |
| Universal('zipp', '3.17.0', pyversions=['py3']), |
| Universal('zope.event', '5.0', pyversions=['py3']), |
| ]) |
| }) |
| # yapf: enable |
| |
| # Special packages. |
| # |
| # The following packages all require specialized compilation, and so have their |
| # own custom builder types. |
| |
| from .wheel_wheel import MultiWheel |
| SPECS.update({ |
| s.spec.tag: s for s in assert_sorted( |
| 'MultiWheel', |
| MultiWheel( |
| 'pathos', |
| '0.2.7', |
| ([ |
| Universal('dill', '0.3.3'), |
| Universal('klepto', '0.2.0', default=False), |
| SourceOrPrebuilt( |
| 'mpi4py', |
| '3.0.3', |
| packaged=[ |
| 'windows-x86-py3.8', |
| 'windows-x64-py3.8', |
| ], |
| tpp_libs_cb=lambda w: [ |
| TppLib('infra/3pp/static_libs/mpich', |
| 'version:2@3.4.1.chromium.6') |
| ], |
| env_cb=lambda w: { |
| 'MPICC': 'mpicc', # provided by mpich package |
| }, |
| ), |
| SourceOrPrebuilt( |
| 'multiprocess', |
| '0.70.11.1', |
| pyversions=['py2', 'py3'], |
| patch_version='chromium.1', |
| skip_auditwheel=True, |
| packaged=(), |
| ), |
| Universal('pathos', '0.2.7'), |
| Universal('pox', '0.2.9'), |
| Universal('ppft', '1.6.6.4', pyversions=['py3']), |
| Universal('pyina', '0.2.4'), |
| ]), |
| pyversions=['py3'], |
| skip_plat=build_platform.ALL_PY311, |
| patch_version='chromium.6', |
| ), |
| MultiWheel( |
| 'pathos', |
| '0.3.0', |
| ([ |
| Universal('dill', '0.3.6'), |
| SourceOrPrebuilt( |
| 'multiprocess', |
| '0.70.14', |
| pyversions=['py3'], |
| skip_auditwheel=True, |
| packaged=(), |
| ), |
| Universal('pathos', '0.3.0'), |
| Universal('pox', '0.3.2'), |
| Universal('ppft', '1.7.6.6', pyversions=['py3']), |
| ]), |
| pyversions=['py3'], |
| patch_version='chromium.2', |
| ), |
| MultiWheel( |
| 'pexpect', |
| '4.8.0', |
| ([ |
| Universal('pexpect', '4.8.0'), |
| Universal('ptyprocess', '0.7.0'), |
| ]), |
| patch_version='chromium.1', |
| ), |
| # List cultivated from "pyobjc-7.3"'s "setup.py" as a superset of |
| # available packages. |
| # |
| # This package is designed to be built on 10.15 (x86_64) or |
| # 11.x (arm64). |
| MultiWheel( |
| 'pyobjc', |
| '7.3', |
| ([ |
| SourceOrPrebuilt( |
| name, |
| '7.3', |
| pyversions=['py3'], |
| packaged=[], |
| patch_base='pyobjc-framework' if name |
| .startswith('pyobjc-framework') else None, |
| patches=('setup',)) for name in ['pyobjc-core'] + [ |
| 'pyobjc-framework-%s' % (v,) for v in [ |
| 'libdispatch', |
| 'AdSupport', |
| 'AuthenticationServices', |
| 'AutomaticAssessmentConfiguration', |
| 'AVKit', |
| 'AVFoundation', |
| 'Accounts', |
| 'AddressBook', |
| 'AppleScriptKit', |
| 'AppleScriptObjC', |
| 'ApplicationServices', |
| 'Automator', |
| 'BusinessChat', |
| 'CFNetwork', |
| 'CalendarStore', |
| 'CloudKit', |
| 'Cocoa', |
| 'Collaboration', |
| 'ColorSync', |
| 'Contacts', |
| 'ContactsUI', |
| 'CoreAudio', |
| 'CoreAudioKit', |
| 'CoreBluetooth', |
| 'CoreData', |
| 'CoreHaptics', |
| 'CoreLocation', |
| 'CoreMedia', |
| 'CoreMediaIO', |
| 'CoreML', |
| 'CoreMotion', |
| 'CoreServices', |
| 'CoreSpotlight', |
| 'CoreText', |
| 'CoreWLAN', |
| 'CryptoTokenKit', |
| 'DeviceCheck', |
| 'DictionaryServices', |
| 'DiscRecording', |
| 'DiscRecordingUI', |
| 'DiskArbitration', |
| 'DVDPlayback', |
| 'EventKit', |
| 'ExceptionHandling', |
| 'ExecutionPolicy', |
| 'ExternalAccessory', |
| 'FileProvider', |
| 'FileProviderUI', |
| 'FSEvents', |
| 'FinderSync', |
| 'GameCenter', |
| 'GameController', |
| 'IMServicePlugIn', |
| 'InputMethodKit', |
| 'ImageCaptureCore', |
| 'Intents', |
| 'InstallerPlugins', |
| 'InstantMessage', |
| 'IOSurface', |
| 'LatentSemanticMapping', |
| 'LaunchServices', |
| 'LinkPresentation', |
| 'LocalAuthentication', |
| 'MapKit', |
| 'MediaAccessibility', |
| 'MediaLibrary', |
| 'MediaPlayer', |
| 'MediaToolbox', |
| 'Metal', |
| 'MetalKit', |
| 'ModelIO', |
| 'MultipeerConnectivity', |
| 'NaturalLanguage', |
| 'NetFS', |
| 'Network', |
| 'NetworkExtension', |
| 'NotificationCenter', |
| 'OpenDirectory', |
| 'OSAKit', |
| 'OSLog', |
| 'PencilKit', |
| 'Photos', |
| 'PhotosUI', |
| 'PreferencePanes', |
| 'PushKit', |
| 'Quartz', |
| 'QuickLookThumbnailing', |
| 'SafariServices', |
| 'ScreenSaver', |
| 'ScriptingBridge', |
| 'Security', |
| 'SecurityFoundation', |
| 'SecurityInterface', |
| 'SearchKit', |
| 'ServiceManagement', |
| 'Social', |
| 'Speech', |
| 'SpriteKit', |
| 'StoreKit', |
| 'SyncServices', |
| 'SystemConfiguration', |
| 'WebKit', |
| 'GameKit', |
| 'GameplayKit', |
| 'SceneKit', |
| 'SoundAnalysis', |
| 'SystemExtensions', |
| 'UserNotifications', |
| 'VideoSubscriberAccount', |
| 'VideoToolbox', |
| 'Vision', |
| 'iTunesLibrary', |
| ] |
| ] |
| ]), |
| only_plat=['mac-x64-py3.8', 'mac-arm64-py3.8'], |
| pyversions=['py3'], |
| patch_version='chromium.1', # Rebuild for crbug/1233745 |
| ), |
| # List cultivated from "pyobjc-10.0"'s "setup.py" as a superset of |
| # available packages. |
| # |
| # This package is designed to be built on 10.15 (x86_64) or |
| # 11.x (arm64). |
| MultiWheel( |
| 'pyobjc', |
| '10.0', |
| ([ |
| SourceOrPrebuilt( |
| name, |
| '10.0', |
| pyversions=['py3'], |
| packaged=[], |
| patches=('avfoundation',) if name in |
| ['pyobjc-framework-AVFoundation'] else (), |
| ) for name in ['pyobjc-core'] + [ |
| 'pyobjc-framework-%s' % (v,) for v in [ |
| 'libdispatch', |
| 'libxpc', |
| 'AdSupport', |
| 'AudioVideoBridging', |
| 'AuthenticationServices', |
| 'AutomaticAssessmentConfiguration', |
| 'AVKit', |
| 'AVFoundation', |
| 'Accounts', |
| 'AddressBook', |
| 'AppleScriptKit', |
| 'AppleScriptObjC', |
| 'ApplicationServices', |
| 'Automator', |
| 'BusinessChat', |
| 'CFNetwork', |
| 'CalendarStore', |
| 'CloudKit', |
| 'Cocoa', |
| 'Collaboration', |
| 'ColorSync', |
| 'Contacts', |
| 'ContactsUI', |
| 'CoreAudio', |
| 'CoreAudioKit', |
| 'CoreBluetooth', |
| 'CoreData', |
| 'CoreHaptics', |
| 'CoreLocation', |
| 'CoreMedia', |
| 'CoreMediaIO', |
| 'CoreMIDI', |
| 'CoreML', |
| 'CoreMotion', |
| 'CoreServices', |
| 'CoreSpotlight', |
| 'CoreText', |
| 'CoreWLAN', |
| 'CryptoTokenKit', |
| 'DeviceCheck', |
| 'DictionaryServices', |
| 'DiscRecording', |
| 'DiscRecordingUI', |
| 'DiskArbitration', |
| 'DVDPlayback', |
| 'EventKit', |
| 'ExceptionHandling', |
| 'ExecutionPolicy', |
| 'ExternalAccessory', |
| 'FileProvider', |
| 'FileProviderUI', |
| 'FSEvents', |
| 'FinderSync', |
| 'GameCenter', |
| 'GameController', |
| 'InputMethodKit', |
| 'ImageCaptureCore', |
| 'Intents', |
| 'InstallerPlugins', |
| 'InstantMessage', |
| 'IOBluetooth', |
| 'IOBluetoothUI', |
| 'IOSurface', |
| 'LatentSemanticMapping', |
| 'LaunchServices', |
| 'LinkPresentation', |
| 'LocalAuthentication', |
| 'MapKit', |
| 'MediaAccessibility', |
| 'MediaLibrary', |
| 'MediaPlayer', |
| 'MediaToolbox', |
| 'Metal', |
| 'MetalKit', |
| 'MetalPerformanceShaders', |
| 'ModelIO', |
| 'MultipeerConnectivity', |
| 'NaturalLanguage', |
| 'NetFS', |
| 'Network', |
| 'NetworkExtension', |
| 'NotificationCenter', |
| 'OpenDirectory', |
| 'OSAKit', |
| 'OSLog', |
| 'PencilKit', |
| 'Photos', |
| 'PhotosUI', |
| 'PreferencePanes', |
| 'PubSub', |
| 'PushKit', |
| 'Quartz', |
| 'QuickLookThumbnailing', |
| 'SafariServices', |
| 'ScreenSaver', |
| 'ScriptingBridge', |
| 'Security', |
| 'SecurityFoundation', |
| 'SecurityInterface', |
| 'SearchKit', |
| 'ServiceManagement', |
| 'Social', |
| 'Speech', |
| 'SpriteKit', |
| 'StoreKit', |
| 'SyncServices', |
| 'SystemConfiguration', |
| 'WebKit', |
| 'GameKit', |
| 'GameplayKit', |
| 'SceneKit', |
| 'SoundAnalysis', |
| 'SystemExtensions', |
| 'UserNotifications', |
| 'VideoSubscriberAccount', |
| 'VideoToolbox', |
| 'Vision', |
| 'iTunesLibrary', |
| ] |
| ] |
| ]), |
| only_plat=build_platform.ALL_MAC, |
| pyversions=['py3'], |
| ), |
| ) |
| }) |
| |
| from .wheel_infra import InfraPackage |
| SPECS.update({ |
| s.spec.tag: s for s in assert_sorted( |
| 'InfraPackage', |
| InfraPackage('infra_libs'), |
| ) |
| }) |
| |
| # GitUniversalSource. These are packages which produce universal (pure-python) |
| # wheels, but are only available from a git repository. |
| from .wheel_wheel import GitUniversalSource |
| |
| SPECS.update({ |
| s.spec.tag: s for s in assert_sorted( |
| 'GitUniversalSource', |
| GitUniversalSource( |
| 'expect_tests', '0.4.2', |
| 'https://chromium.googlesource.com/infra/testing/expect_tests', |
| '3d14313e7eeb56b9f058984b6b8d4c27c99dd89d'), |
| ) |
| }) |
| |
| SPEC_NAMES = sorted(SPECS.keys()) |
| DEFAULT_SPEC_NAMES = sorted( |
| [s.spec.tag for s in SPECS.values() if s.spec.default]) |