xref: /aosp_15_r20/external/bazelbuild-rules_python/python/versions.bzl (revision 60517a1edbc8ecf509223e9af94a7adec7d736b8)
1*60517a1eSAndroid Build Coastguard Worker# Copyright 2022 The Bazel Authors. All rights reserved.
2*60517a1eSAndroid Build Coastguard Worker#
3*60517a1eSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
4*60517a1eSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
5*60517a1eSAndroid Build Coastguard Worker# You may obtain a copy of the License at
6*60517a1eSAndroid Build Coastguard Worker#
7*60517a1eSAndroid Build Coastguard Worker#    http://www.apache.org/licenses/LICENSE-2.0
8*60517a1eSAndroid Build Coastguard Worker#
9*60517a1eSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*60517a1eSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
11*60517a1eSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*60517a1eSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
13*60517a1eSAndroid Build Coastguard Worker# limitations under the License.
14*60517a1eSAndroid Build Coastguard Worker
15*60517a1eSAndroid Build Coastguard Worker"""The Python versions we use for the toolchains.
16*60517a1eSAndroid Build Coastguard Worker"""
17*60517a1eSAndroid Build Coastguard Worker
18*60517a1eSAndroid Build Coastguard Worker# Values returned by https://bazel.build/rules/lib/repository_os.
19*60517a1eSAndroid Build Coastguard WorkerMACOS_NAME = "mac os"
20*60517a1eSAndroid Build Coastguard WorkerLINUX_NAME = "linux"
21*60517a1eSAndroid Build Coastguard WorkerWINDOWS_NAME = "windows"
22*60517a1eSAndroid Build Coastguard Worker
23*60517a1eSAndroid Build Coastguard WorkerDEFAULT_RELEASE_BASE_URL = "https://github.com/indygreg/python-build-standalone/releases/download"
24*60517a1eSAndroid Build Coastguard Worker
25*60517a1eSAndroid Build Coastguard Worker# When updating the versions and releases, run the following command to get
26*60517a1eSAndroid Build Coastguard Worker# the hashes:
27*60517a1eSAndroid Build Coastguard Worker#   bazel run //python/private:print_toolchains_checksums
28*60517a1eSAndroid Build Coastguard Worker#
29*60517a1eSAndroid Build Coastguard Worker# Note, to users looking at how to specify their tool versions, coverage_tool version for each
30*60517a1eSAndroid Build Coastguard Worker# interpreter can be specified by:
31*60517a1eSAndroid Build Coastguard Worker#   "3.8.10": {
32*60517a1eSAndroid Build Coastguard Worker#       "url": "20210506/cpython-{python_version}-{platform}-pgo+lto-20210506T0943.tar.zst",
33*60517a1eSAndroid Build Coastguard Worker#       "sha256": {
34*60517a1eSAndroid Build Coastguard Worker#           "x86_64-apple-darwin": "8d06bec08db8cdd0f64f4f05ee892cf2fcbc58cfb1dd69da2caab78fac420238",
35*60517a1eSAndroid Build Coastguard Worker#           "x86_64-unknown-linux-gnu": "aec8c4c53373b90be7e2131093caa26063be6d9d826f599c935c0e1042af3355",
36*60517a1eSAndroid Build Coastguard Worker#       },
37*60517a1eSAndroid Build Coastguard Worker#       "coverage_tool": {
38*60517a1eSAndroid Build Coastguard Worker#           "x86_64-apple-darwin": "<label_for_darwin>"",
39*60517a1eSAndroid Build Coastguard Worker#           "x86_64-unknown-linux-gnu": "<label_for_linux>"",
40*60517a1eSAndroid Build Coastguard Worker#       },
41*60517a1eSAndroid Build Coastguard Worker#       "strip_prefix": "python",
42*60517a1eSAndroid Build Coastguard Worker#   },
43*60517a1eSAndroid Build Coastguard Worker#
44*60517a1eSAndroid Build Coastguard Worker# It is possible to provide lists in "url". It is also possible to provide patches or patch_strip.
45*60517a1eSAndroid Build Coastguard Worker#
46*60517a1eSAndroid Build Coastguard Worker# buildifier: disable=unsorted-dict-items
47*60517a1eSAndroid Build Coastguard WorkerTOOL_VERSIONS = {
48*60517a1eSAndroid Build Coastguard Worker    "3.8.10": {
49*60517a1eSAndroid Build Coastguard Worker        "url": "20210506/cpython-{python_version}-{platform}-pgo+lto-20210506T0943.tar.zst",
50*60517a1eSAndroid Build Coastguard Worker        "sha256": {
51*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "8d06bec08db8cdd0f64f4f05ee892cf2fcbc58cfb1dd69da2caab78fac420238",
52*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "aec8c4c53373b90be7e2131093caa26063be6d9d826f599c935c0e1042af3355",
53*60517a1eSAndroid Build Coastguard Worker        },
54*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
55*60517a1eSAndroid Build Coastguard Worker    },
56*60517a1eSAndroid Build Coastguard Worker    "3.8.12": {
57*60517a1eSAndroid Build Coastguard Worker        "url": "20220227/cpython-{python_version}+20220227-{platform}-{build}.tar.gz",
58*60517a1eSAndroid Build Coastguard Worker        "sha256": {
59*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "f9a3cbb81e0463d6615125964762d133387d561b226a30199f5b039b20f1d944",
60*60517a1eSAndroid Build Coastguard Worker            # no aarch64-unknown-linux-gnu build available for 3.8.12
61*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "f323fbc558035c13a85ce2267d0fad9e89282268ecb810e364fff1d0a079d525",
62*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "4658e08a00d60b1e01559b74d58ff4dd04da6df935d55f6268a15d6d0a679d74",
63*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "5be9c6d61e238b90dfd94755051c0d3a2d8023ebffdb4b0fa4e8fedd09a6cab6",
64*60517a1eSAndroid Build Coastguard Worker        },
65*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
66*60517a1eSAndroid Build Coastguard Worker    },
67*60517a1eSAndroid Build Coastguard Worker    "3.8.13": {
68*60517a1eSAndroid Build Coastguard Worker        "url": "20220802/cpython-{python_version}+20220802-{platform}-{build}.tar.gz",
69*60517a1eSAndroid Build Coastguard Worker        "sha256": {
70*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "ae4131253d890b013171cb5f7b03cadc585ae263719506f7b7e063a7cf6fde76",
71*60517a1eSAndroid Build Coastguard Worker            # no aarch64-unknown-linux-gnu build available for 3.8.13
72*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "cd6e7c0a27daf7df00f6882eaba01490dd963f698e99aeee9706877333e0df69",
73*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "f20643f1b3e263a56287319aea5c3888530c09ad9de3a5629b1a5d207807e6b9",
74*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "fb566629ccb5f76ef56d275a3f8017d683f1c20c5beb5d5f38b155ed11e16187",
75*60517a1eSAndroid Build Coastguard Worker        },
76*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
77*60517a1eSAndroid Build Coastguard Worker    },
78*60517a1eSAndroid Build Coastguard Worker    "3.8.15": {
79*60517a1eSAndroid Build Coastguard Worker        "url": "20221106/cpython-{python_version}+20221106-{platform}-{build}.tar.gz",
80*60517a1eSAndroid Build Coastguard Worker        "sha256": {
81*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "1e0a92d1a4f5e6d4a99f86b1cbf9773d703fe7fd032590f3e9c285c7a5eeb00a",
82*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "886ab33ced13c84bf59ce8ff79eba6448365bfcafea1bf415bd1d75e21b690aa",
83*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "70b57f28c2b5e1e3dd89f0d30edd5bc414e8b20195766cf328e1b26bed7890e1",
84*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "2fdc3fa1c95f982179bbbaedae2b328197658638799b6dcb63f9f494b0de59e2",
85*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "e47edfb2ceaf43fc699e20c179ec428b6f3e497cf8e2dcd8e9c936d4b96b1e56",
86*60517a1eSAndroid Build Coastguard Worker        },
87*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
88*60517a1eSAndroid Build Coastguard Worker    },
89*60517a1eSAndroid Build Coastguard Worker    "3.8.16": {
90*60517a1eSAndroid Build Coastguard Worker        "url": "20230116/cpython-{python_version}+20230116-{platform}-{build}.tar.gz",
91*60517a1eSAndroid Build Coastguard Worker        "sha256": {
92*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "d1f408569d8807c1053939d7822b082a17545e363697e1ce3cfb1ee75834c7be",
93*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "15d00bc8400ed6d94c665a797dc8ed7a491ae25c5022e738dcd665cd29beec42",
94*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "484ba901f64fc7888bec5994eb49343dc3f9d00ed43df17ee9c40935aad4aa18",
95*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "b446bec833eaba1bac9063bb9b4aeadfdf67fa81783b4487a90c56d408fb7994",
96*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "c890de112f1ae31283a31fefd2061d5c97bdd4d1bdd795552c7abddef2697ea1",
97*60517a1eSAndroid Build Coastguard Worker        },
98*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
99*60517a1eSAndroid Build Coastguard Worker    },
100*60517a1eSAndroid Build Coastguard Worker    "3.8.17": {
101*60517a1eSAndroid Build Coastguard Worker        "url": "20230826/cpython-{python_version}+20230826-{platform}-{build}.tar.gz",
102*60517a1eSAndroid Build Coastguard Worker        "sha256": {
103*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "c6f7a130d0044a78e39648f4dae56dcff5a41eba91888a99f6e560507162e6a1",
104*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "9f6d585091fe26906ff1dbb80437a3fe37a1e3db34d6ecc0098f3d6a78356682",
105*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "155b06821607bae1a58ecc60a7d036b358c766f19e493b8876190765c883a5c2",
106*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "6428e1b4e0b4482d390828de7d4c82815257443416cb786abe10cb2466ca68cd",
107*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "8d3e1826c0bb7821ec63288038644808a2d45553245af106c685ef5892fabcd8",
108*60517a1eSAndroid Build Coastguard Worker        },
109*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
110*60517a1eSAndroid Build Coastguard Worker    },
111*60517a1eSAndroid Build Coastguard Worker    "3.8.18": {
112*60517a1eSAndroid Build Coastguard Worker        "url": "20240224/cpython-{python_version}+20240224-{platform}-{build}.tar.gz",
113*60517a1eSAndroid Build Coastguard Worker        "sha256": {
114*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "4d493a1792bf211f37f98404cc1468f09bd781adc2602dea0df82ad264c11abc",
115*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "6588c9eed93833d9483d01fe40ac8935f691a1af8e583d404ec7666631b52487",
116*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "7d2cd8d289d5e3cdd0a8c06c028c7c621d3d00ce44b7e2f08c1724ae0471c626",
117*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "dba923ee5df8f99db04f599e826be92880746c02247c8d8e4d955d4bc711af11",
118*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "5ae36825492372554c02708bdd26b8dcd57e3dbf34b3d6d599ad91d93540b2b7",
119*60517a1eSAndroid Build Coastguard Worker        },
120*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
121*60517a1eSAndroid Build Coastguard Worker    },
122*60517a1eSAndroid Build Coastguard Worker    "3.8.19": {
123*60517a1eSAndroid Build Coastguard Worker        "url": "20240726/cpython-{python_version}+20240726-{platform}-{build}.tar.gz",
124*60517a1eSAndroid Build Coastguard Worker        "sha256": {
125*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "fe4af1b6bc59478d027ede43f6249cf7b9143558e171bdf8711247337623af57",
126*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "8dc598aca7ad43ea20119324af98862d198d8990151c734a69f0fc9d16384b46",
127*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "4bc990b35384c83b5b0b3071e91455ec203517e569f29f691b159f1a6b2a19b2",
128*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "4e8e9ddda82062d6e111108ab72f439acac4ba41b77d694548ef5dbf6b2b3319",
129*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "e81ea4dd16e6057c8121bdbcb7b64e2956068ca019f244c814bc3ad907cb2765",
130*60517a1eSAndroid Build Coastguard Worker        },
131*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
132*60517a1eSAndroid Build Coastguard Worker    },
133*60517a1eSAndroid Build Coastguard Worker    "3.9.10": {
134*60517a1eSAndroid Build Coastguard Worker        "url": "20220227/cpython-{python_version}+20220227-{platform}-{build}.tar.gz",
135*60517a1eSAndroid Build Coastguard Worker        "sha256": {
136*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "ad66c2a3e7263147e046a32694de7b897a46fb0124409d29d3a93ede631c8aee",
137*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "12dd1f125762f47975990ec744532a1cf3db74ad60f4dfb476ca42deb7f78ca4",
138*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "fdaf594142446029e314a9beb91f1ac75af866320b50b8b968181e592550cd68",
139*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "c145d9d8143ce163670af124b623d7a2405143a3708b033b4d33eed355e61b24",
140*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "455089cc576bd9a58db45e919d1fc867ecdbb0208067dffc845cc9bbf0701b70",
141*60517a1eSAndroid Build Coastguard Worker        },
142*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
143*60517a1eSAndroid Build Coastguard Worker    },
144*60517a1eSAndroid Build Coastguard Worker    "3.9.12": {
145*60517a1eSAndroid Build Coastguard Worker        "url": "20220502/cpython-{python_version}+20220502-{platform}-{build}.tar.gz",
146*60517a1eSAndroid Build Coastguard Worker        "sha256": {
147*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "8dee06c07cc6429df34b6abe091a4684a86f7cec76f5d1ccc1c3ce2bd11168df",
148*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "2ee1426c181e65133e57dc55c6a685cb1fb5e63ef02d684b8a667d5c031c4203",
149*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "2453ba7f76b3df3310353b48c881d6cff622ba06e30d2b6ae91588b2bc9e481a",
150*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "3024147fd987d9e1b064a3d94932178ff8e0fe98cfea955704213c0762fee8df",
151*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "ccca12f698b3b810d79c52f007078f520d588232a36bc12ede944ec3ea417816",
152*60517a1eSAndroid Build Coastguard Worker        },
153*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
154*60517a1eSAndroid Build Coastguard Worker    },
155*60517a1eSAndroid Build Coastguard Worker    "3.9.13": {
156*60517a1eSAndroid Build Coastguard Worker        "url": "20220802/cpython-{python_version}+20220802-{platform}-{build}.tar.gz",
157*60517a1eSAndroid Build Coastguard Worker        "sha256": {
158*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "d9603edc296a2dcbc59d7ada780fd12527f05c3e0b99f7545112daf11636d6e5",
159*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "80415aac1b96255b9211f6a4c300f31e9940c7e07a23d0dec12b53aa52c0d25e",
160*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "9540a7efb7c8a54a48aff1cb9480e49588d9c0a3f934ad53f5b167338174afa3",
161*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "b538127025a467c64b3351babca2e4d2ea7bdfb7867d5febb3529c34456cdcd4",
162*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "ce1cfca2715e7e646dd618a8cb9baff93000e345ccc979b801fc6ccde7ce97df",
163*60517a1eSAndroid Build Coastguard Worker        },
164*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
165*60517a1eSAndroid Build Coastguard Worker    },
166*60517a1eSAndroid Build Coastguard Worker    "3.9.15": {
167*60517a1eSAndroid Build Coastguard Worker        "url": "20221106/cpython-{python_version}+20221106-{platform}-{build}.tar.gz",
168*60517a1eSAndroid Build Coastguard Worker        "sha256": {
169*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "64dc7e1013481c9864152c3dd806c41144c79d5e9cd3140e185c6a5060bdc9ab",
170*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "52a8c0a67fb919f80962d992da1bddb511cdf92faf382701ce7673e10a8ff98f",
171*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "f2bcade6fc976c472f18f2b3204d67202d43ae55cf6f9e670f95e488f780da08",
172*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "022daacab215679b87f0d200d08b9068a721605fa4721ebeda38220fc641ccf6",
173*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "cdc3a4cfddcd63b6cebdd75b14970e02d8ef0ac5be4d350e57ab5df56c19e85e",
174*60517a1eSAndroid Build Coastguard Worker        },
175*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
176*60517a1eSAndroid Build Coastguard Worker    },
177*60517a1eSAndroid Build Coastguard Worker    "3.9.16": {
178*60517a1eSAndroid Build Coastguard Worker        "url": "20230507/cpython-{python_version}+20230507-{platform}-{build}.tar.gz",
179*60517a1eSAndroid Build Coastguard Worker        "sha256": {
180*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "c1de1d854717a6245f45262ef1bb17b09e2c587590e7e3f406593c143ff875bd",
181*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "f629b75ebfcafe9ceee2e796b7e4df5cf8dbd14f3c021afca078d159ab797acf",
182*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "ff3ac35c58f67839aff9b5185a976abd3d1abbe61af02089f7105e876c1fe284",
183*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "3abc4d5fbbc80f5f848f280927ac5d13de8dc03aabb6ae65d8247cbb68e6f6bf",
184*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "cdabb47204e96ce7ea31fbd0b5ed586114dd7d8f8eddf60a509a7f70b48a1c5e",
185*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "2b6e146234a4ef2a8946081fc3fbfffe0765b80b690425a49ebe40b47c33445b",
186*60517a1eSAndroid Build Coastguard Worker        },
187*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
188*60517a1eSAndroid Build Coastguard Worker    },
189*60517a1eSAndroid Build Coastguard Worker    "3.9.17": {
190*60517a1eSAndroid Build Coastguard Worker        "url": "20230726/cpython-{python_version}+20230726-{platform}-{build}.tar.gz",
191*60517a1eSAndroid Build Coastguard Worker        "sha256": {
192*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "73dbe2d702210b566221da9265acc274ba15275c5d0d1fa327f44ad86cde9aa1",
193*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "b77012ddaf7e0673e4aa4b1c5085275a06eee2d66f33442b5c54a12b62b96cbe",
194*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "c591a28d943dce5cf9833e916125fdfbeb3120270c4866ee214493ccb5b83c3c",
195*60517a1eSAndroid Build Coastguard Worker            "s390x-unknown-linux-gnu": "01454d7cc7c9c2fccde42ba868c4f372eaaafa48049d49dd94c9cf2875f497e6",
196*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "dfe1bea92c94b9cb779288b0b06e39157c5ff7e465cdd24032ac147c2af485c0",
197*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "9b9a1e21eff29dcf043cea38180cf8ca3604b90117d00062a7b31605d4157714",
198*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "26c4a712b4b8e11ed5c027db5654eb12927c02da4857b777afb98f7a930ce637",
199*60517a1eSAndroid Build Coastguard Worker        },
200*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
201*60517a1eSAndroid Build Coastguard Worker    },
202*60517a1eSAndroid Build Coastguard Worker    "3.9.18": {
203*60517a1eSAndroid Build Coastguard Worker        "url": "20240224/cpython-{python_version}+20240224-{platform}-{build}.tar.gz",
204*60517a1eSAndroid Build Coastguard Worker        "sha256": {
205*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "2548f911a6e316575c303ba42bb51540dc9b47a9f76a06a2a37460d93b177aa2",
206*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "e5bc5196baa603d635ee6b0cd141e359752ad3e8ea76127eb9141a3155c51200",
207*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "d6b18df7a25fe034fd5ce4e64216df2cc78b2d4d908d2a1c94058ae700d73d22",
208*60517a1eSAndroid Build Coastguard Worker            "s390x-unknown-linux-gnu": "15d059507c7e900e9665f31e8d903e5a24a68ceed24f9a1c5ac06ab42a354f3f",
209*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "171d8b472fce0295be0e28bb702c43d5a2a39feccb3e72efe620ac3843c3e402",
210*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "a9bdbd728ed4c353a4157ecf74386117fb2a2769a9353f491c528371cfe7f6cd",
211*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "0e5663025121186bd17d331538a44f48b41baff247891d014f3f962cbe2716b4",
212*60517a1eSAndroid Build Coastguard Worker        },
213*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
214*60517a1eSAndroid Build Coastguard Worker    },
215*60517a1eSAndroid Build Coastguard Worker    "3.9.19": {
216*60517a1eSAndroid Build Coastguard Worker        "url": "20240726/cpython-{python_version}+20240726-{platform}-{build}.tar.gz",
217*60517a1eSAndroid Build Coastguard Worker        "sha256": {
218*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "0e5a7aae57c53d7a849bc7f67764a947b626e3fe8d4d41a8eed11d9e4be0b1c6",
219*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "05ec896db9a9d4fe8004b4e4b6a6fdc588a015fedbddb475490885b0d9c7d9b3",
220*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "bfff0e3d536b2f0c315e85926cc317b7b756701b6de781a8972cefbdbc991ca2",
221*60517a1eSAndroid Build Coastguard Worker            "s390x-unknown-linux-gnu": "059ec97080b205ea5f1ddf71c18e22b691e8d68192bd37d13ad8f4359915299d",
222*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "f2ae9fcac044a329739b8c1676245e8cb6b3094416220e71823d2673bdea0bdb",
223*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "a8df6a00140055c9accb0be632e7add951d587bbe3d63c40827bbd5145d8f557",
224*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "cbf94cb1c9d4b5501d9b3652f6e8400c2cab7c41dfea48d344d9e7f29692b91b",
225*60517a1eSAndroid Build Coastguard Worker        },
226*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
227*60517a1eSAndroid Build Coastguard Worker    },
228*60517a1eSAndroid Build Coastguard Worker    "3.10.2": {
229*60517a1eSAndroid Build Coastguard Worker        "url": "20220227/cpython-{python_version}+20220227-{platform}-{build}.tar.gz",
230*60517a1eSAndroid Build Coastguard Worker        "sha256": {
231*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "1409acd9a506e2d1d3b65c1488db4e40d8f19d09a7df099667c87a506f71c0ef",
232*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "8f351a8cc348bb45c0f95b8634c8345ec6e749e483384188ad865b7428342703",
233*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "8146ad4390710ec69b316a5649912df0247d35f4a42e2aa9615bffd87b3e235a",
234*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "a1d9a594cd3103baa24937ad9150c1a389544b4350e859200b3e5c036ac352bd",
235*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "9b64eca2a94f7aff9409ad70bdaa7fbbf8148692662e764401883957943620dd",
236*60517a1eSAndroid Build Coastguard Worker        },
237*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
238*60517a1eSAndroid Build Coastguard Worker    },
239*60517a1eSAndroid Build Coastguard Worker    "3.10.4": {
240*60517a1eSAndroid Build Coastguard Worker        "url": "20220502/cpython-{python_version}+20220502-{platform}-{build}.tar.gz",
241*60517a1eSAndroid Build Coastguard Worker        "sha256": {
242*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "2c99983d1e83e4b6e7411ed9334019f193fba626344a50c36fba6c25d4de78a2",
243*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "d8098c0c54546637e7516f93b13403b11f9db285def8d7abd825c31407a13d7e",
244*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "f2711eaffff3477826a401d09a013c6802f11c04c63ab3686aa72664f1216a05",
245*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "bee24a3a5c83325215521d261d73a5207ab7060ef3481f76f69b4366744eb81d",
246*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "f6f871e53a7b1469c13f9bd7920ad98c4589e549acad8e5a1e14760fff3dd5c9",
247*60517a1eSAndroid Build Coastguard Worker        },
248*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
249*60517a1eSAndroid Build Coastguard Worker    },
250*60517a1eSAndroid Build Coastguard Worker    "3.10.6": {
251*60517a1eSAndroid Build Coastguard Worker        "url": "20220802/cpython-{python_version}+20220802-{platform}-{build}.tar.gz",
252*60517a1eSAndroid Build Coastguard Worker        "sha256": {
253*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "efaf66acdb9a4eb33d57702607d2e667b1a319d58c167a43c96896b97419b8b7",
254*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "81625f5c97f61e2e3d7e9f62c484b1aa5311f21bd6545451714b949a29da5435",
255*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "7718411adf3ea1480f3f018a643eb0550282aefe39e5ecb3f363a4a566a9398c",
256*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "91889a7dbdceea585ff4d3b7856a6bb8f8a4eca83a0ff52a73542c2e67220eaa",
257*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "55aa2190d28dcfdf414d96dc5dcea9fe048fadcd583dc3981fec020869826111",
258*60517a1eSAndroid Build Coastguard Worker        },
259*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
260*60517a1eSAndroid Build Coastguard Worker    },
261*60517a1eSAndroid Build Coastguard Worker    "3.10.8": {
262*60517a1eSAndroid Build Coastguard Worker        "url": "20221106/cpython-{python_version}+20221106-{platform}-{build}.tar.gz",
263*60517a1eSAndroid Build Coastguard Worker        "sha256": {
264*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "d52b03817bd245d28e0a8b2f715716cd0fcd112820ccff745636932c76afa20a",
265*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "33170bef18c811906b738be530f934640491b065bf16c4d276c6515321918132",
266*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "525b79c7ce5de90ab66bd07b0ac1008bafa147ddc8a41bef15ffb7c9c1e9e7c5",
267*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "f2b6d2f77118f06dd2ca04dae1175e44aaa5077a5ed8ddc63333c15347182bfe",
268*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "6c8db44ae0e18e320320bbaaafd2d69cde8bfea171ae2d651b7993d1396260b7",
269*60517a1eSAndroid Build Coastguard Worker        },
270*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
271*60517a1eSAndroid Build Coastguard Worker    },
272*60517a1eSAndroid Build Coastguard Worker    "3.10.9": {
273*60517a1eSAndroid Build Coastguard Worker        "url": "20230116/cpython-{python_version}+20230116-{platform}-{build}.tar.gz",
274*60517a1eSAndroid Build Coastguard Worker        "sha256": {
275*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "018d05a779b2de7a476f3b3ff2d10f503d69d14efcedd0774e6dab8c22ef84ff",
276*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "2003750f40cd09d4bf7a850342613992f8d9454f03b3c067989911fb37e7a4d1",
277*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "0e685f98dce0e5bc8da93c7081f4e6c10219792e223e4b5886730fd73a7ba4c6",
278*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "59c6970cecb357dc1d8554bd0540eb81ee7f6d16a07acf3d14ed294ece02c035",
279*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "d196347aeb701a53fe2bb2b095abec38d27d0fa0443f8a1c2023a1bed6e18cdf",
280*60517a1eSAndroid Build Coastguard Worker        },
281*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
282*60517a1eSAndroid Build Coastguard Worker    },
283*60517a1eSAndroid Build Coastguard Worker    "3.10.11": {
284*60517a1eSAndroid Build Coastguard Worker        "url": "20230507/cpython-{python_version}+20230507-{platform}-{build}.tar.gz",
285*60517a1eSAndroid Build Coastguard Worker        "sha256": {
286*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "8348bc3c2311f94ec63751fb71bd0108174be1c4def002773cf519ee1506f96f",
287*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "c7573fdb00239f86b22ea0e8e926ca881d24fde5e5890851339911d76110bc35",
288*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "73a9d4c89ed51be39dd2de4e235078281087283e9fdedef65bec02f503e906ee",
289*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "bd3fc6e4da6f4033ebf19d66704e73b0804c22641ddae10bbe347c48f82374ad",
290*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "9c2d3604a06fcd422289df73015cd00e7271d90de28d2c910f0e2309a7f73a68",
291*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "c5bcaac91bc80bfc29cf510669ecad12d506035ecb3ad85ef213416d54aecd79",
292*60517a1eSAndroid Build Coastguard Worker        },
293*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
294*60517a1eSAndroid Build Coastguard Worker    },
295*60517a1eSAndroid Build Coastguard Worker    "3.10.12": {
296*60517a1eSAndroid Build Coastguard Worker        "url": "20230726/cpython-{python_version}+20230726-{platform}-{build}.tar.gz",
297*60517a1eSAndroid Build Coastguard Worker        "sha256": {
298*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "bc66c706ea8c5fc891635fda8f9da971a1a901d41342f6798c20ad0b2a25d1d6",
299*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "fee80e221663eca5174bd794cb5047e40d3910dbeadcdf1f09d405a4c1c15fe4",
300*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "bb5e8cb0d2e44241725fa9b342238245503e7849917660006b0246a9c97b1d6c",
301*60517a1eSAndroid Build Coastguard Worker            "s390x-unknown-linux-gnu": "8d33d435ae6fb93ded7fc26798cc0a1a4f546a4e527012a1e2909cc314b332df",
302*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "8a6e3ed973a671de468d9c691ed9cb2c3a4858c5defffcf0b08969fba9c1dd04",
303*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "c1a31c353ca44de7d1b1a3b6c55a823e9c1eed0423d4f9f66e617bdb1b608685",
304*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "a476dbca9184df9fc69fe6309cda5ebaf031d27ca9e529852437c94ec1bc43d3",
305*60517a1eSAndroid Build Coastguard Worker        },
306*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
307*60517a1eSAndroid Build Coastguard Worker    },
308*60517a1eSAndroid Build Coastguard Worker    "3.10.13": {
309*60517a1eSAndroid Build Coastguard Worker        "url": "20240224/cpython-{python_version}+20240224-{platform}-{build}.tar.gz",
310*60517a1eSAndroid Build Coastguard Worker        "sha256": {
311*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "5fdc0f6a5b5a90fd3c528e8b1da8e3aac931ea8690126c2fdb4254c84a3ff04a",
312*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "a898a88705611b372297bb8fe4d23cc16b8603ce5f24494c3a8cfa65d83787f9",
313*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "c23706e138a0351fc1e9def2974af7b8206bac7ecbbb98a78f5aa9e7535fee42",
314*60517a1eSAndroid Build Coastguard Worker            "s390x-unknown-linux-gnu": "09be8fb2cdfbb4a93d555f268f244dbe4d8ff1854b2658e8043aa4ec08aede3e",
315*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "6378dfd22f58bb553ddb02be28304d739cd730c1f95c15c74955c923a1bc3d6a",
316*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "086f7fe9156b897bb401273db8359017104168ac36f60f3af4e31ac7acd6634e",
317*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "d995d032ca702afd2fc3a689c1f84a6c64972ecd82bba76a61d525f08eb0e195",
318*60517a1eSAndroid Build Coastguard Worker        },
319*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
320*60517a1eSAndroid Build Coastguard Worker    },
321*60517a1eSAndroid Build Coastguard Worker    "3.10.14": {
322*60517a1eSAndroid Build Coastguard Worker        "url": "20240726/cpython-{python_version}+20240726-{platform}-{build}.tar.gz",
323*60517a1eSAndroid Build Coastguard Worker        "sha256": {
324*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "164d89f0df2feb689981864ecc1dffb19e6aa3696c8880166de555494fe92607",
325*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "39bcd46b4d70e40da177c55259be16d5c2be7a3f7f93f1e3bde47e71b4833f29",
326*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "549d38b9ef59cba9ab2990025255231bfa1cb32b4bc5eac321667640fdee19d1",
327*60517a1eSAndroid Build Coastguard Worker            "s390x-unknown-linux-gnu": "de4bc878a8666c734f983db971610980870148f333bda8b0c34abfaeae88d7ec",
328*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "1a1455838cd1e8ed0da14a152a2d559a2fd3a6047ba7013e841db4a35a228c1d",
329*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "7f68821a8b5445267eca480660364ebd06ec84632b336770c6e39de07ac0f6c3",
330*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "32b34cd13d9d745b3db3f3b8398ab2c07de74544829915dbebd8dce39bdc405e",
331*60517a1eSAndroid Build Coastguard Worker        },
332*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
333*60517a1eSAndroid Build Coastguard Worker    },
334*60517a1eSAndroid Build Coastguard Worker    "3.11.1": {
335*60517a1eSAndroid Build Coastguard Worker        "url": "20230116/cpython-{python_version}+20230116-{platform}-{build}.tar.gz",
336*60517a1eSAndroid Build Coastguard Worker        "sha256": {
337*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "4918cdf1cab742a90f85318f88b8122aeaa2d04705803c7b6e78e81a3dd40f80",
338*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "debf15783bdcb5530504f533d33fda75a7b905cec5361ae8f33da5ba6599f8b4",
339*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "20a4203d069dc9b710f70b09e7da2ce6f473d6b1110f9535fb6f4c469ed54733",
340*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "edc08979cb0666a597466176511529c049a6f0bba8adf70df441708f766de5bf",
341*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "02a551fefab3750effd0e156c25446547c238688a32fabde2995c941c03a6423",
342*60517a1eSAndroid Build Coastguard Worker        },
343*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
344*60517a1eSAndroid Build Coastguard Worker    },
345*60517a1eSAndroid Build Coastguard Worker    "3.11.3": {
346*60517a1eSAndroid Build Coastguard Worker        "url": "20230507/cpython-{python_version}+20230507-{platform}-{build}.tar.gz",
347*60517a1eSAndroid Build Coastguard Worker        "sha256": {
348*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "09e412506a8d63edbb6901742b54da9aa7faf120b8dbdce56c57b303fc892c86",
349*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "8190accbbbbcf7620f1ff6d668e4dd090c639665d11188ce864b62554d40e5ab",
350*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "767d24f3570b35fedb945f5ac66224c8983f2d556ab83c5cfaa5f3666e9c212c",
351*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "f710b8d60621308149c100d5175fec39274ed0b9c99645484fd93d1716ef4310",
352*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "24741066da6f35a7ff67bee65ce82eae870d84e1181843e64a7076d1571e95af",
353*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "da50b87d1ec42b3cb577dfd22a3655e43a53150f4f98a4bfb40757c9d7839ab5",
354*60517a1eSAndroid Build Coastguard Worker        },
355*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
356*60517a1eSAndroid Build Coastguard Worker    },
357*60517a1eSAndroid Build Coastguard Worker    "3.11.4": {
358*60517a1eSAndroid Build Coastguard Worker        "url": "20230726/cpython-{python_version}+20230726-{platform}-{build}.tar.gz",
359*60517a1eSAndroid Build Coastguard Worker        "sha256": {
360*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "cb6d2948384a857321f2aa40fa67744cd9676a330f08b6dad7070bda0b6120a4",
361*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "2e84fc53f4e90e11963281c5c871f593abcb24fc796a50337fa516be99af02fb",
362*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "df7b92ed9cec96b3bb658fb586be947722ecd8e420fb23cee13d2e90abcfcf25",
363*60517a1eSAndroid Build Coastguard Worker            "s390x-unknown-linux-gnu": "e477f0749161f9aa7887964f089d9460a539f6b4a8fdab5166f898210e1a87a4",
364*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "47e1557d93a42585972772e82661047ca5f608293158acb2778dccf120eabb00",
365*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "878614c03ea38538ae2f758e36c85d2c0eb1eaaca86cd400ff8c76693ee0b3e1",
366*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "e26247302bc8e9083a43ce9e8dd94905b40d464745b1603041f7bc9a93c65d05",
367*60517a1eSAndroid Build Coastguard Worker        },
368*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
369*60517a1eSAndroid Build Coastguard Worker    },
370*60517a1eSAndroid Build Coastguard Worker    "3.11.5": {
371*60517a1eSAndroid Build Coastguard Worker        "url": "20230826/cpython-{python_version}+20230826-{platform}-{build}.tar.gz",
372*60517a1eSAndroid Build Coastguard Worker        "sha256": {
373*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "dab64b3580118ad2073babd7c29fd2053b616479df5c107d31fe2af1f45e948b",
374*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "bb5c5d1ea0f199fe2d3f0996fff4b48ca6ddc415a3dbd98f50bff7fce48aac80",
375*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "14121b53e9c8c6d0741f911ae00102a35adbcf5c3cdf732687ef7617b7d7304d",
376*60517a1eSAndroid Build Coastguard Worker            "s390x-unknown-linux-gnu": "fe459da39874443579d6fe88c68777c6d3e331038e1fb92a0451879fb6beb16d",
377*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "4a4efa7378c72f1dd8ebcce1afb99b24c01b07023aa6b8fea50eaedb50bf2bfc",
378*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "00f002263efc8aea896bcfaaf906b1f4dab3e5cd3db53e2b69ab9a10ba220b97",
379*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "fbed6f7694b2faae5d7c401a856219c945397f772eea5ca50c6eb825cbc9d1e1",
380*60517a1eSAndroid Build Coastguard Worker        },
381*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
382*60517a1eSAndroid Build Coastguard Worker    },
383*60517a1eSAndroid Build Coastguard Worker    "3.11.6": {
384*60517a1eSAndroid Build Coastguard Worker        "url": "20231002/cpython-{python_version}+20231002-{platform}-{build}.tar.gz",
385*60517a1eSAndroid Build Coastguard Worker        "sha256": {
386*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "916c35125b5d8323a21526d7a9154ca626453f63d0878e95b9f613a95006c990",
387*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "3e26a672df17708c4dc928475a5974c3fb3a34a9b45c65fb4bd1e50504cc84ec",
388*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "7937035f690a624dba4d014ffd20c342e843dd46f89b0b0a1e5726b85deb8eaf",
389*60517a1eSAndroid Build Coastguard Worker            "s390x-unknown-linux-gnu": "f9f19823dba3209cedc4647b00f46ed0177242917db20fb7fb539970e384531c",
390*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "178cb1716c2abc25cb56ae915096c1a083e60abeba57af001996e8bc6ce1a371",
391*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "3933545e6d41462dd6a47e44133ea40995bc6efeed8c2e4cbdf1a699303e95ea",
392*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "ee37a7eae6e80148c7e3abc56e48a397c1664f044920463ad0df0fc706eacea8",
393*60517a1eSAndroid Build Coastguard Worker        },
394*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
395*60517a1eSAndroid Build Coastguard Worker    },
396*60517a1eSAndroid Build Coastguard Worker    "3.11.7": {
397*60517a1eSAndroid Build Coastguard Worker        "url": "20240107/cpython-{python_version}+20240107-{platform}-{build}.tar.gz",
398*60517a1eSAndroid Build Coastguard Worker        "sha256": {
399*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "b042c966920cf8465385ca3522986b12d745151a72c060991088977ca36d3883",
400*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "b102eaf865eb715aa98a8a2ef19037b6cc3ae7dfd4a632802650f29de635aa13",
401*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "b44e1b74afe75c7b19143413632c4386708ae229117f8f950c2094e9681d34c7",
402*60517a1eSAndroid Build Coastguard Worker            "s390x-unknown-linux-gnu": "49520e3ff494708020f306e30b0964f079170be83e956be4504f850557378a22",
403*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "a0e615eef1fafdc742da0008425a9030b7ea68a4ae4e73ac557ef27b112836d4",
404*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "67077e6fa918e4f4fd60ba169820b00be7c390c497bf9bc9cab2c255ea8e6f3e",
405*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "4a51ce60007a6facf64e5495f4cf322e311ba9f39a8cd3f3e4c026eae488e140",
406*60517a1eSAndroid Build Coastguard Worker        },
407*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
408*60517a1eSAndroid Build Coastguard Worker    },
409*60517a1eSAndroid Build Coastguard Worker    "3.11.8": {
410*60517a1eSAndroid Build Coastguard Worker        "url": "20240224/cpython-{python_version}+20240224-{platform}-{build}.tar.gz",
411*60517a1eSAndroid Build Coastguard Worker        "sha256": {
412*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "389a51139f5abe071a0d70091ca5df3e7a3dfcfcbe3e0ba6ad85fb4c5638421e",
413*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "389b9005fb78dd5a6f68df5ea45ab7b30d9a4b3222af96999e94fd20d4ad0c6a",
414*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "eb2b31f8e50309aae493c6a359c32b723a676f07c641f5e8fe4b6aa4dbb50946",
415*60517a1eSAndroid Build Coastguard Worker            "s390x-unknown-linux-gnu": "844f64f4c16e24965778281da61d1e0e6cd1358a581df1662da814b1eed096b9",
416*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "097f467b0c36706bfec13f199a2eaf924e668f70c6e2bd1f1366806962f7e86e",
417*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "b618f1f047349770ee1ef11d1b05899840abd53884b820fd25c7dfe2ec1664d4",
418*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "94e13d0e5ad417035b80580f3e893a72e094b0900d5d64e7e34ab08e95439987",
419*60517a1eSAndroid Build Coastguard Worker        },
420*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
421*60517a1eSAndroid Build Coastguard Worker    },
422*60517a1eSAndroid Build Coastguard Worker    "3.11.9": {
423*60517a1eSAndroid Build Coastguard Worker        "url": "20240726/cpython-{python_version}+20240726-{platform}-{build}.tar.gz",
424*60517a1eSAndroid Build Coastguard Worker        "sha256": {
425*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "cbdac9462bab9671c8e84650e425d3f43b775752a930a2ef954a0d457d5c00c3",
426*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "4d17cf988abe24449d649aad3ef974091ab76807904d41839907061925b4c9e3",
427*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "fc4f3c9ef9bfac2ed0282126ff376e544697ad04a5408d6429d46899d7d3bf21",
428*60517a1eSAndroid Build Coastguard Worker            "s390x-unknown-linux-gnu": "e69b66e53e926460df044f44846eef3fea642f630e829719e1a4112fc370dc56",
429*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "dc3174666a30f4c38d04e79a80c3159b4b3aa69597c4676701c8386696811611",
430*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "f694be48bdfec1dace6d69a19906b6083f4dd7c7c61f1138ba520e433e5598f8",
431*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "f6e955dc9ddfcad74e77abe6f439dac48ebca14b101ed7c85a5bf3206ed2c53d",
432*60517a1eSAndroid Build Coastguard Worker        },
433*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
434*60517a1eSAndroid Build Coastguard Worker    },
435*60517a1eSAndroid Build Coastguard Worker    "3.12.0": {
436*60517a1eSAndroid Build Coastguard Worker        "url": "20231002/cpython-{python_version}+20231002-{platform}-{build}.tar.gz",
437*60517a1eSAndroid Build Coastguard Worker        "sha256": {
438*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "4734a2be2becb813830112c780c9879ac3aff111a0b0cd590e65ec7465774d02",
439*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "bccfe67cf5465a3dfb0336f053966e2613a9bc85a6588c2fcf1366ef930c4f88",
440*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "b5dae075467ace32c594c7877fe6ebe0837681f814601d5d90ba4c0dfd87a1f2",
441*60517a1eSAndroid Build Coastguard Worker            "s390x-unknown-linux-gnu": "5681621349dd85d9726d1b67c84a9686ce78f72e73a6f9e4cc4119911655759e",
442*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "5a9e88c8aa52b609d556777b52ebde464ae4b4f77e4aac4eb693af57395c9abf",
443*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "facfaa1fbc8653f95057f3c4a0f8aa833dab0e0b316e24ee8686bc761d4b4f8d",
444*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "e51a5293f214053ddb4645b2c9f84542e2ef86870b8655704367bd4b29d39fe9",
445*60517a1eSAndroid Build Coastguard Worker        },
446*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
447*60517a1eSAndroid Build Coastguard Worker    },
448*60517a1eSAndroid Build Coastguard Worker    "3.12.1": {
449*60517a1eSAndroid Build Coastguard Worker        "url": "20240107/cpython-{python_version}+20240107-{platform}-{build}.tar.gz",
450*60517a1eSAndroid Build Coastguard Worker        "sha256": {
451*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "f93f8375ca6ac0a35d58ff007043cbd3a88d9609113f1cb59cf7c8d215f064af",
452*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "236533ef20e665007a111c2f36efb59c87ae195ad7dca223b6dc03fb07064f0b",
453*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "78051f0d1411ee62bc2af5edfccf6e8400ac4ef82887a2affc19a7ace6a05267",
454*60517a1eSAndroid Build Coastguard Worker            "s390x-unknown-linux-gnu": "60631211c701f8d2c56e5dd7b154e68868128a019b9db1d53a264f56c0d4aee2",
455*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "eca96158c1568dedd9a0b3425375637a83764d1fa74446438293089a8bfac1f8",
456*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "fd5a9e0f41959d0341246d3643f2b8794f638adc0cec8dd5e1b6465198eae08a",
457*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "74e330b8212ca22fd4d9a2003b9eec14892155566738febc8e5e572f267b9472",
458*60517a1eSAndroid Build Coastguard Worker        },
459*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
460*60517a1eSAndroid Build Coastguard Worker    },
461*60517a1eSAndroid Build Coastguard Worker    "3.12.2": {
462*60517a1eSAndroid Build Coastguard Worker        "url": "20240224/cpython-{python_version}+20240224-{platform}-{build}.tar.gz",
463*60517a1eSAndroid Build Coastguard Worker        "sha256": {
464*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "01c064c00013b0175c7858b159989819ead53f4746d40580b5b0b35b6e80fba6",
465*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "e52550379e7c4ac27a87de832d172658bc04150e4e27d4e858e6d8cbb96fd709",
466*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "74bc02c4bbbd26245c37b29b9e12d0a9c1b7ab93477fed8b651c988b6a9a6251",
467*60517a1eSAndroid Build Coastguard Worker            "s390x-unknown-linux-gnu": "ecd6b0285e5eef94deb784b588b4b425a15a43ae671bf206556659dc141a9825",
468*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "a53a6670a202c96fec0b8c55ccc780ea3af5307eb89268d5b41a9775b109c094",
469*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "1e5655a6ccb1a64a78460e4e3ee21036c70246800f176a6c91043a3fe3654a3b",
470*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "57a37b57f8243caa4cdac016176189573ad7620f0b6da5941c5e40660f9468ab",
471*60517a1eSAndroid Build Coastguard Worker        },
472*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
473*60517a1eSAndroid Build Coastguard Worker    },
474*60517a1eSAndroid Build Coastguard Worker    "3.12.3": {
475*60517a1eSAndroid Build Coastguard Worker        "url": "20240415/cpython-{python_version}+20240415-{platform}-{build}.tar.gz",
476*60517a1eSAndroid Build Coastguard Worker        "sha256": {
477*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "ccc40e5af329ef2af81350db2a88bbd6c17b56676e82d62048c15d548401519e",
478*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "ec8126de97945e629cca9aedc80a29c4ae2992c9d69f2655e27ae73906ba187d",
479*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "c5dcf08b8077e617d949bda23027c49712f583120b3ed744f9b143da1d580572",
480*60517a1eSAndroid Build Coastguard Worker            "s390x-unknown-linux-gnu": "872fc321363b8cdd826fd2cb1adfd1ceb813bc1281f9d410c1c2c4e177e8df86",
481*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "c37a22fca8f57d4471e3708de6d13097668c5f160067f264bb2b18f524c890c8",
482*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "f7cfa4ad072feb4578c8afca5ba9a54ad591d665a441dd0d63aa366edbe19279",
483*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "a73ba777b5d55ca89edef709e6b8521e3f3d4289581f174c8699adfb608d09d6",
484*60517a1eSAndroid Build Coastguard Worker        },
485*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
486*60517a1eSAndroid Build Coastguard Worker    },
487*60517a1eSAndroid Build Coastguard Worker    "3.12.4": {
488*60517a1eSAndroid Build Coastguard Worker        "url": "20240726/cpython-{python_version}+20240726-{platform}-{build}.tar.gz",
489*60517a1eSAndroid Build Coastguard Worker        "sha256": {
490*60517a1eSAndroid Build Coastguard Worker            "aarch64-apple-darwin": "1801025e825c04b3907e4ef6220a13607bc0397628c9485897073110ef7fde15",
491*60517a1eSAndroid Build Coastguard Worker            "aarch64-unknown-linux-gnu": "a098b18b7e9fea0c66867b76c0124fce9465765017572b2e7b522154c87c78d7",
492*60517a1eSAndroid Build Coastguard Worker            "ppc64le-unknown-linux-gnu": "04011c4c5b7fe34b0b895edf4ad8748e410686c1d69aaee11d6688d481023bcb",
493*60517a1eSAndroid Build Coastguard Worker            "s390x-unknown-linux-gnu": "8f8f3e29cf0c2facdbcfee70660939fda7667ac24fee8656d3388fc72f3acc7c",
494*60517a1eSAndroid Build Coastguard Worker            "x86_64-apple-darwin": "4c325838c1b0ed13698506fcd515be25c73dcbe195f8522cf98f9148a97601ed",
495*60517a1eSAndroid Build Coastguard Worker            "x86_64-pc-windows-msvc": "74309b0f322716409883d38c621743ea7fa0376eb00927b8ee1e1671d3aff450",
496*60517a1eSAndroid Build Coastguard Worker            "x86_64-unknown-linux-gnu": "e133dd6fc6a2d0033e2658637cc22e9c95f9d7073b80115037ee1f16417a54ac",
497*60517a1eSAndroid Build Coastguard Worker        },
498*60517a1eSAndroid Build Coastguard Worker        "strip_prefix": "python",
499*60517a1eSAndroid Build Coastguard Worker    },
500*60517a1eSAndroid Build Coastguard Worker}
501*60517a1eSAndroid Build Coastguard Worker
502*60517a1eSAndroid Build Coastguard Worker# buildifier: disable=unsorted-dict-items
503*60517a1eSAndroid Build Coastguard WorkerMINOR_MAPPING = {
504*60517a1eSAndroid Build Coastguard Worker    "3.8": "3.8.19",
505*60517a1eSAndroid Build Coastguard Worker    "3.9": "3.9.19",
506*60517a1eSAndroid Build Coastguard Worker    "3.10": "3.10.14",
507*60517a1eSAndroid Build Coastguard Worker    "3.11": "3.11.9",
508*60517a1eSAndroid Build Coastguard Worker    "3.12": "3.12.4",
509*60517a1eSAndroid Build Coastguard Worker}
510*60517a1eSAndroid Build Coastguard Worker
511*60517a1eSAndroid Build Coastguard WorkerPLATFORMS = {
512*60517a1eSAndroid Build Coastguard Worker    "aarch64-apple-darwin": struct(
513*60517a1eSAndroid Build Coastguard Worker        compatible_with = [
514*60517a1eSAndroid Build Coastguard Worker            "@platforms//os:macos",
515*60517a1eSAndroid Build Coastguard Worker            "@platforms//cpu:aarch64",
516*60517a1eSAndroid Build Coastguard Worker        ],
517*60517a1eSAndroid Build Coastguard Worker        flag_values = {},
518*60517a1eSAndroid Build Coastguard Worker        os_name = MACOS_NAME,
519*60517a1eSAndroid Build Coastguard Worker        # Matches the value returned from:
520*60517a1eSAndroid Build Coastguard Worker        # repository_ctx.execute(["uname", "-m"]).stdout.strip()
521*60517a1eSAndroid Build Coastguard Worker        arch = "arm64",
522*60517a1eSAndroid Build Coastguard Worker    ),
523*60517a1eSAndroid Build Coastguard Worker    "aarch64-unknown-linux-gnu": struct(
524*60517a1eSAndroid Build Coastguard Worker        compatible_with = [
525*60517a1eSAndroid Build Coastguard Worker            "@platforms//os:linux",
526*60517a1eSAndroid Build Coastguard Worker            "@platforms//cpu:aarch64",
527*60517a1eSAndroid Build Coastguard Worker        ],
528*60517a1eSAndroid Build Coastguard Worker        flag_values = {
529*60517a1eSAndroid Build Coastguard Worker            Label("//python/config_settings:py_linux_libc"): "glibc",
530*60517a1eSAndroid Build Coastguard Worker        },
531*60517a1eSAndroid Build Coastguard Worker        os_name = LINUX_NAME,
532*60517a1eSAndroid Build Coastguard Worker        # Note: this string differs between OSX and Linux
533*60517a1eSAndroid Build Coastguard Worker        # Matches the value returned from:
534*60517a1eSAndroid Build Coastguard Worker        # repository_ctx.execute(["uname", "-m"]).stdout.strip()
535*60517a1eSAndroid Build Coastguard Worker        arch = "aarch64",
536*60517a1eSAndroid Build Coastguard Worker    ),
537*60517a1eSAndroid Build Coastguard Worker    "armv7-unknown-linux-gnu": struct(
538*60517a1eSAndroid Build Coastguard Worker        compatible_with = [
539*60517a1eSAndroid Build Coastguard Worker            "@platforms//os:linux",
540*60517a1eSAndroid Build Coastguard Worker            "@platforms//cpu:armv7",
541*60517a1eSAndroid Build Coastguard Worker        ],
542*60517a1eSAndroid Build Coastguard Worker        flag_values = {
543*60517a1eSAndroid Build Coastguard Worker            Label("//python/config_settings:py_linux_libc"): "glibc",
544*60517a1eSAndroid Build Coastguard Worker        },
545*60517a1eSAndroid Build Coastguard Worker        os_name = LINUX_NAME,
546*60517a1eSAndroid Build Coastguard Worker        arch = "armv7",
547*60517a1eSAndroid Build Coastguard Worker    ),
548*60517a1eSAndroid Build Coastguard Worker    "i386-unknown-linux-gnu": struct(
549*60517a1eSAndroid Build Coastguard Worker        compatible_with = [
550*60517a1eSAndroid Build Coastguard Worker            "@platforms//os:linux",
551*60517a1eSAndroid Build Coastguard Worker            "@platforms//cpu:i386",
552*60517a1eSAndroid Build Coastguard Worker        ],
553*60517a1eSAndroid Build Coastguard Worker        flag_values = {
554*60517a1eSAndroid Build Coastguard Worker            Label("//python/config_settings:py_linux_libc"): "glibc",
555*60517a1eSAndroid Build Coastguard Worker        },
556*60517a1eSAndroid Build Coastguard Worker        os_name = LINUX_NAME,
557*60517a1eSAndroid Build Coastguard Worker        arch = "i386",
558*60517a1eSAndroid Build Coastguard Worker    ),
559*60517a1eSAndroid Build Coastguard Worker    "ppc64le-unknown-linux-gnu": struct(
560*60517a1eSAndroid Build Coastguard Worker        compatible_with = [
561*60517a1eSAndroid Build Coastguard Worker            "@platforms//os:linux",
562*60517a1eSAndroid Build Coastguard Worker            "@platforms//cpu:ppc",
563*60517a1eSAndroid Build Coastguard Worker        ],
564*60517a1eSAndroid Build Coastguard Worker        flag_values = {
565*60517a1eSAndroid Build Coastguard Worker            Label("//python/config_settings:py_linux_libc"): "glibc",
566*60517a1eSAndroid Build Coastguard Worker        },
567*60517a1eSAndroid Build Coastguard Worker        os_name = LINUX_NAME,
568*60517a1eSAndroid Build Coastguard Worker        # Note: this string differs between OSX and Linux
569*60517a1eSAndroid Build Coastguard Worker        # Matches the value returned from:
570*60517a1eSAndroid Build Coastguard Worker        # repository_ctx.execute(["uname", "-m"]).stdout.strip()
571*60517a1eSAndroid Build Coastguard Worker        arch = "ppc64le",
572*60517a1eSAndroid Build Coastguard Worker    ),
573*60517a1eSAndroid Build Coastguard Worker    "riscv64-unknown-linux-gnu": struct(
574*60517a1eSAndroid Build Coastguard Worker        compatible_with = [
575*60517a1eSAndroid Build Coastguard Worker            "@platforms//os:linux",
576*60517a1eSAndroid Build Coastguard Worker            "@platforms//cpu:riscv64",
577*60517a1eSAndroid Build Coastguard Worker        ],
578*60517a1eSAndroid Build Coastguard Worker        flag_values = {
579*60517a1eSAndroid Build Coastguard Worker            Label("//python/config_settings:py_linux_libc"): "glibc",
580*60517a1eSAndroid Build Coastguard Worker        },
581*60517a1eSAndroid Build Coastguard Worker        os_name = LINUX_NAME,
582*60517a1eSAndroid Build Coastguard Worker        arch = "riscv64",
583*60517a1eSAndroid Build Coastguard Worker    ),
584*60517a1eSAndroid Build Coastguard Worker    "s390x-unknown-linux-gnu": struct(
585*60517a1eSAndroid Build Coastguard Worker        compatible_with = [
586*60517a1eSAndroid Build Coastguard Worker            "@platforms//os:linux",
587*60517a1eSAndroid Build Coastguard Worker            "@platforms//cpu:s390x",
588*60517a1eSAndroid Build Coastguard Worker        ],
589*60517a1eSAndroid Build Coastguard Worker        flag_values = {
590*60517a1eSAndroid Build Coastguard Worker            Label("//python/config_settings:py_linux_libc"): "glibc",
591*60517a1eSAndroid Build Coastguard Worker        },
592*60517a1eSAndroid Build Coastguard Worker        os_name = LINUX_NAME,
593*60517a1eSAndroid Build Coastguard Worker        # Note: this string differs between OSX and Linux
594*60517a1eSAndroid Build Coastguard Worker        # Matches the value returned from:
595*60517a1eSAndroid Build Coastguard Worker        # repository_ctx.execute(["uname", "-m"]).stdout.strip()
596*60517a1eSAndroid Build Coastguard Worker        arch = "s390x",
597*60517a1eSAndroid Build Coastguard Worker    ),
598*60517a1eSAndroid Build Coastguard Worker    "x86_64-apple-darwin": struct(
599*60517a1eSAndroid Build Coastguard Worker        compatible_with = [
600*60517a1eSAndroid Build Coastguard Worker            "@platforms//os:macos",
601*60517a1eSAndroid Build Coastguard Worker            "@platforms//cpu:x86_64",
602*60517a1eSAndroid Build Coastguard Worker        ],
603*60517a1eSAndroid Build Coastguard Worker        flag_values = {},
604*60517a1eSAndroid Build Coastguard Worker        os_name = MACOS_NAME,
605*60517a1eSAndroid Build Coastguard Worker        arch = "x86_64",
606*60517a1eSAndroid Build Coastguard Worker    ),
607*60517a1eSAndroid Build Coastguard Worker    "x86_64-pc-windows-msvc": struct(
608*60517a1eSAndroid Build Coastguard Worker        compatible_with = [
609*60517a1eSAndroid Build Coastguard Worker            "@platforms//os:windows",
610*60517a1eSAndroid Build Coastguard Worker            "@platforms//cpu:x86_64",
611*60517a1eSAndroid Build Coastguard Worker        ],
612*60517a1eSAndroid Build Coastguard Worker        flag_values = {},
613*60517a1eSAndroid Build Coastguard Worker        os_name = WINDOWS_NAME,
614*60517a1eSAndroid Build Coastguard Worker        arch = "x86_64",
615*60517a1eSAndroid Build Coastguard Worker    ),
616*60517a1eSAndroid Build Coastguard Worker    "x86_64-unknown-linux-gnu": struct(
617*60517a1eSAndroid Build Coastguard Worker        compatible_with = [
618*60517a1eSAndroid Build Coastguard Worker            "@platforms//os:linux",
619*60517a1eSAndroid Build Coastguard Worker            "@platforms//cpu:x86_64",
620*60517a1eSAndroid Build Coastguard Worker        ],
621*60517a1eSAndroid Build Coastguard Worker        flag_values = {
622*60517a1eSAndroid Build Coastguard Worker            Label("//python/config_settings:py_linux_libc"): "glibc",
623*60517a1eSAndroid Build Coastguard Worker        },
624*60517a1eSAndroid Build Coastguard Worker        os_name = LINUX_NAME,
625*60517a1eSAndroid Build Coastguard Worker        arch = "x86_64",
626*60517a1eSAndroid Build Coastguard Worker    ),
627*60517a1eSAndroid Build Coastguard Worker}
628*60517a1eSAndroid Build Coastguard Worker
629*60517a1eSAndroid Build Coastguard Workerdef get_release_info(platform, python_version, base_url = DEFAULT_RELEASE_BASE_URL, tool_versions = TOOL_VERSIONS):
630*60517a1eSAndroid Build Coastguard Worker    """Resolve the release URL for the requested interpreter version
631*60517a1eSAndroid Build Coastguard Worker
632*60517a1eSAndroid Build Coastguard Worker    Args:
633*60517a1eSAndroid Build Coastguard Worker        platform: The platform string for the interpreter
634*60517a1eSAndroid Build Coastguard Worker        python_version: The version of the interpreter to get
635*60517a1eSAndroid Build Coastguard Worker        base_url: The URL to prepend to the 'url' attr in the tool_versions dict
636*60517a1eSAndroid Build Coastguard Worker        tool_versions: A dict listing the interpreter versions, their SHAs and URL
637*60517a1eSAndroid Build Coastguard Worker
638*60517a1eSAndroid Build Coastguard Worker    Returns:
639*60517a1eSAndroid Build Coastguard Worker        A tuple of (filename, url, archive strip prefix, patches, patch_strip)
640*60517a1eSAndroid Build Coastguard Worker    """
641*60517a1eSAndroid Build Coastguard Worker
642*60517a1eSAndroid Build Coastguard Worker    url = tool_versions[python_version]["url"]
643*60517a1eSAndroid Build Coastguard Worker
644*60517a1eSAndroid Build Coastguard Worker    if type(url) == type({}):
645*60517a1eSAndroid Build Coastguard Worker        url = url[platform]
646*60517a1eSAndroid Build Coastguard Worker
647*60517a1eSAndroid Build Coastguard Worker    if type(url) != type([]):
648*60517a1eSAndroid Build Coastguard Worker        url = [url]
649*60517a1eSAndroid Build Coastguard Worker
650*60517a1eSAndroid Build Coastguard Worker    strip_prefix = tool_versions[python_version].get("strip_prefix", None)
651*60517a1eSAndroid Build Coastguard Worker    if type(strip_prefix) == type({}):
652*60517a1eSAndroid Build Coastguard Worker        strip_prefix = strip_prefix[platform]
653*60517a1eSAndroid Build Coastguard Worker
654*60517a1eSAndroid Build Coastguard Worker    release_filename = None
655*60517a1eSAndroid Build Coastguard Worker    rendered_urls = []
656*60517a1eSAndroid Build Coastguard Worker    for u in url:
657*60517a1eSAndroid Build Coastguard Worker        release_filename = u.format(
658*60517a1eSAndroid Build Coastguard Worker            platform = platform,
659*60517a1eSAndroid Build Coastguard Worker            python_version = python_version,
660*60517a1eSAndroid Build Coastguard Worker            build = "shared-install_only" if (WINDOWS_NAME in platform) else "install_only",
661*60517a1eSAndroid Build Coastguard Worker        )
662*60517a1eSAndroid Build Coastguard Worker        if "://" in release_filename:  # is absolute url?
663*60517a1eSAndroid Build Coastguard Worker            rendered_urls.append(release_filename)
664*60517a1eSAndroid Build Coastguard Worker        else:
665*60517a1eSAndroid Build Coastguard Worker            rendered_urls.append("/".join([base_url, release_filename]))
666*60517a1eSAndroid Build Coastguard Worker
667*60517a1eSAndroid Build Coastguard Worker    if release_filename == None:
668*60517a1eSAndroid Build Coastguard Worker        fail("release_filename should be set by now; were any download URLs given?")
669*60517a1eSAndroid Build Coastguard Worker
670*60517a1eSAndroid Build Coastguard Worker    patches = tool_versions[python_version].get("patches", [])
671*60517a1eSAndroid Build Coastguard Worker    if type(patches) == type({}):
672*60517a1eSAndroid Build Coastguard Worker        if platform in patches.keys():
673*60517a1eSAndroid Build Coastguard Worker            patches = patches[platform]
674*60517a1eSAndroid Build Coastguard Worker        else:
675*60517a1eSAndroid Build Coastguard Worker            patches = []
676*60517a1eSAndroid Build Coastguard Worker    patch_strip = tool_versions[python_version].get("patch_strip", None)
677*60517a1eSAndroid Build Coastguard Worker    if type(patch_strip) == type({}):
678*60517a1eSAndroid Build Coastguard Worker        if platform in patch_strip.keys():
679*60517a1eSAndroid Build Coastguard Worker            patch_strip = patch_strip[platform]
680*60517a1eSAndroid Build Coastguard Worker        else:
681*60517a1eSAndroid Build Coastguard Worker            patch_strip = None
682*60517a1eSAndroid Build Coastguard Worker
683*60517a1eSAndroid Build Coastguard Worker    return (release_filename, rendered_urls, strip_prefix, patches, patch_strip)
684*60517a1eSAndroid Build Coastguard Worker
685*60517a1eSAndroid Build Coastguard Workerdef print_toolchains_checksums(name):
686*60517a1eSAndroid Build Coastguard Worker    native.genrule(
687*60517a1eSAndroid Build Coastguard Worker        name = name,
688*60517a1eSAndroid Build Coastguard Worker        srcs = [],
689*60517a1eSAndroid Build Coastguard Worker        outs = ["print_toolchains_checksums.sh"],
690*60517a1eSAndroid Build Coastguard Worker        cmd = """\
691*60517a1eSAndroid Build Coastguard Workercat > "$@" <<'EOF'
692*60517a1eSAndroid Build Coastguard Worker#!/bin/bash
693*60517a1eSAndroid Build Coastguard Worker
694*60517a1eSAndroid Build Coastguard Workerset -o errexit -o nounset -o pipefail
695*60517a1eSAndroid Build Coastguard Worker
696*60517a1eSAndroid Build Coastguard Workerecho "Fetching hashes..."
697*60517a1eSAndroid Build Coastguard Worker
698*60517a1eSAndroid Build Coastguard Worker{commands}
699*60517a1eSAndroid Build Coastguard WorkerEOF
700*60517a1eSAndroid Build Coastguard Worker        """.format(
701*60517a1eSAndroid Build Coastguard Worker            commands = "\n".join([
702*60517a1eSAndroid Build Coastguard Worker                _commands_for_version(python_version)
703*60517a1eSAndroid Build Coastguard Worker                for python_version in TOOL_VERSIONS.keys()
704*60517a1eSAndroid Build Coastguard Worker            ]),
705*60517a1eSAndroid Build Coastguard Worker        ),
706*60517a1eSAndroid Build Coastguard Worker        executable = True,
707*60517a1eSAndroid Build Coastguard Worker    )
708*60517a1eSAndroid Build Coastguard Worker
709*60517a1eSAndroid Build Coastguard Workerdef _commands_for_version(python_version):
710*60517a1eSAndroid Build Coastguard Worker    return "\n".join([
711*60517a1eSAndroid Build Coastguard Worker        "echo \"{python_version}: {platform}: $$(curl --location --fail {release_url_sha256} 2>/dev/null || curl --location --fail {release_url} 2>/dev/null | shasum -a 256 | awk '{{ print $$1 }}')\"".format(
712*60517a1eSAndroid Build Coastguard Worker            python_version = python_version,
713*60517a1eSAndroid Build Coastguard Worker            platform = platform,
714*60517a1eSAndroid Build Coastguard Worker            release_url = release_url,
715*60517a1eSAndroid Build Coastguard Worker            release_url_sha256 = release_url + ".sha256",
716*60517a1eSAndroid Build Coastguard Worker        )
717*60517a1eSAndroid Build Coastguard Worker        for platform in TOOL_VERSIONS[python_version]["sha256"].keys()
718*60517a1eSAndroid Build Coastguard Worker        for release_url in get_release_info(platform, python_version)[1]
719*60517a1eSAndroid Build Coastguard Worker    ])
720*60517a1eSAndroid Build Coastguard Worker
721*60517a1eSAndroid Build Coastguard Workerdef gen_python_config_settings(name = ""):
722*60517a1eSAndroid Build Coastguard Worker    for platform in PLATFORMS.keys():
723*60517a1eSAndroid Build Coastguard Worker        native.config_setting(
724*60517a1eSAndroid Build Coastguard Worker            name = "{name}{platform}".format(name = name, platform = platform),
725*60517a1eSAndroid Build Coastguard Worker            flag_values = PLATFORMS[platform].flag_values,
726*60517a1eSAndroid Build Coastguard Worker            constraint_values = PLATFORMS[platform].compatible_with,
727*60517a1eSAndroid Build Coastguard Worker        )
728