From 690ca375afd09456c7933f8347909656f0714a13 Mon Sep 17 00:00:00 2001 From: Eric Froemling Date: Wed, 3 Jun 2020 22:59:00 -0700 Subject: [PATCH] Updated python build setup for 3.7.7 and latest site-packges --- .efrocachemap | 104 ++++++++++++++++++------------------- tools/efrotools/pybuild.py | 30 +++++++---- 2 files changed, 73 insertions(+), 61 deletions(-) diff --git a/.efrocachemap b/.efrocachemap index 250ee99d..b4a793fe 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -2567,7 +2567,7 @@ "assets/build/pylib-android/_markupbase.py": "https://files.ballistica.net/cache/ba1/a5/5e/6ad43bfbcd054529b852fa9d9919", "assets/build/pylib-android/_osx_support.py": "https://files.ballistica.net/cache/ba1/61/30/ac3f83f7567392218242dc1bd371", "assets/build/pylib-android/_py_abc.py": "https://files.ballistica.net/cache/ba1/63/57/80933fee0979574b2d3b1172cdc8", - "assets/build/pylib-android/_pydecimal.py": "https://files.ballistica.net/cache/ba1/3f/40/99f6dc63cecd617696a3c6fb2804", + "assets/build/pylib-android/_pydecimal.py": "https://files.ballistica.net/cache/ba1/78/1c/999595e074c71574c01ff521a6e0", "assets/build/pylib-android/_pyio.py": "https://files.ballistica.net/cache/ba1/e6/8e/da9cef09b9375b297ccc45cbedf7", "assets/build/pylib-android/_sitebuiltins.py": "https://files.ballistica.net/cache/ba1/6d/7a/d76775d8f9d27c45135ca654dfd0", "assets/build/pylib-android/_strptime.py": "https://files.ballistica.net/cache/ba1/59/74/f1350b09c0bd4924be716707ba93", @@ -2580,7 +2580,7 @@ "assets/build/pylib-android/ast.py": "https://files.ballistica.net/cache/ba1/4d/98/0c14a8fb30313b4f4d9650772599", "assets/build/pylib-android/asynchat.py": "https://files.ballistica.net/cache/ba1/5e/b1/f69db224de08b5e119f5c0f425a8", "assets/build/pylib-android/asyncio/__init__.py": "https://files.ballistica.net/cache/ba1/6d/27/61dd597138eea19aaf7d724ee691", - "assets/build/pylib-android/asyncio/base_events.py": "https://files.ballistica.net/cache/ba1/d5/95/d7a6113215758f48a5d775fb9123", + "assets/build/pylib-android/asyncio/base_events.py": "https://files.ballistica.net/cache/ba1/93/62/5ee3d4885bf7d85654964fb065e3", "assets/build/pylib-android/asyncio/base_futures.py": "https://files.ballistica.net/cache/ba1/a7/f3/869a086bf784ae308d02e15d3c0b", "assets/build/pylib-android/asyncio/base_subprocess.py": "https://files.ballistica.net/cache/ba1/38/b3/a183c0e04a18def5f39acb4ef3b5", "assets/build/pylib-android/asyncio/base_tasks.py": "https://files.ballistica.net/cache/ba1/28/a0/90a971561cc54a06d1c683cc1562", @@ -2605,8 +2605,8 @@ "assets/build/pylib-android/asyncio/windows_events.py": "https://files.ballistica.net/cache/ba1/3d/20/87bd62ba23f5d9f81421eb287041", "assets/build/pylib-android/asyncio/windows_utils.py": "https://files.ballistica.net/cache/ba1/2e/f9/7642257a860d664f7242efecb3f7", "assets/build/pylib-android/asyncore.py": "https://files.ballistica.net/cache/ba1/25/1f/ccae9e6cdd0885f9d989a3902e9b", - "assets/build/pylib-android/base64.py": "https://files.ballistica.net/cache/ba1/ba/b9/bb8f6861712922c4ee7bbb6a9ed2", - "assets/build/pylib-android/bdb.py": "https://files.ballistica.net/cache/ba1/02/b7/17d359fd061e74e62d54bfb996d2", + "assets/build/pylib-android/base64.py": "https://files.ballistica.net/cache/ba1/4f/23/c5419203b2ccd1ae27fd49d2cc56", + "assets/build/pylib-android/bdb.py": "https://files.ballistica.net/cache/ba1/f6/27/ce7dcdf436e9b9b4f9b87568794d", "assets/build/pylib-android/binhex.py": "https://files.ballistica.net/cache/ba1/54/6a/c80667fe1186c14eda368148b7c3", "assets/build/pylib-android/bisect.py": "https://files.ballistica.net/cache/ba1/67/2a/ac7f3e408cbfe1d697e44a420aac", "assets/build/pylib-android/bz2.py": "https://files.ballistica.net/cache/ba1/84/cb/27cdd0e9186f848fe949c2a3bee7", @@ -2616,13 +2616,13 @@ "assets/build/pylib-android/cgitb.py": "https://files.ballistica.net/cache/ba1/45/67/f3f215ae81b670ba05d94706a2ab", "assets/build/pylib-android/chunk.py": "https://files.ballistica.net/cache/ba1/f6/fe/3c43d1dc84ee74b8a170c61271a3", "assets/build/pylib-android/cmd.py": "https://files.ballistica.net/cache/ba1/f0/d9/8cec4bcbbfd195d46c3ad637df71", - "assets/build/pylib-android/code.py": "https://files.ballistica.net/cache/ba1/e6/ec/de81e7e500b6aae41292320f3f02", - "assets/build/pylib-android/codecs.py": "https://files.ballistica.net/cache/ba1/75/0f/e06af8024b16ae3d6ad6406a622f", + "assets/build/pylib-android/code.py": "https://files.ballistica.net/cache/ba1/7a/a4/ee660f11ad995354a3b21efbfb1c", + "assets/build/pylib-android/codecs.py": "https://files.ballistica.net/cache/ba1/ed/16/584061843712bbb77342ee17c423", "assets/build/pylib-android/codeop.py": "https://files.ballistica.net/cache/ba1/19/1a/47fd0ef5269e708ad2faf50db559", "assets/build/pylib-android/collections/__init__.py": "https://files.ballistica.net/cache/ba1/96/31/74bf91d70ac53f56c651ea0b1c6f", "assets/build/pylib-android/collections/abc.py": "https://files.ballistica.net/cache/ba1/29/45/a03469c0f5eb61d823b277d547ce", "assets/build/pylib-android/colorsys.py": "https://files.ballistica.net/cache/ba1/d6/3b/b932055a535b017694e91296168c", - "assets/build/pylib-android/compileall.py": "https://files.ballistica.net/cache/ba1/63/dc/6feca206d0f5885ac8a0573f6fd0", + "assets/build/pylib-android/compileall.py": "https://files.ballistica.net/cache/ba1/1e/8e/a36de40dc3e6cca8103c8d3e762c", "assets/build/pylib-android/concurrent/__init__.py": "https://files.ballistica.net/cache/ba1/37/3e/87f9ab4111608e0442bc82ff572f", "assets/build/pylib-android/concurrent/futures/__init__.py": "https://files.ballistica.net/cache/ba1/32/bd/77be7db5fed1029c0363bccf4456", "assets/build/pylib-android/concurrent/futures/_base.py": "https://files.ballistica.net/cache/ba1/7f/16/02e7e8e860f0648dbd22db4daebd", @@ -2631,7 +2631,7 @@ "assets/build/pylib-android/configparser.py": "https://files.ballistica.net/cache/ba1/af/7d/8334b15bad238a5e38a3af40b4f4", "assets/build/pylib-android/contextlib.py": "https://files.ballistica.net/cache/ba1/fd/9e/5ec1f12da2b8bcee39dabc218650", "assets/build/pylib-android/contextvars.py": "https://files.ballistica.net/cache/ba1/ed/ff/2f1089520caf4910564799a71d33", - "assets/build/pylib-android/copy.py": "https://files.ballistica.net/cache/ba1/f8/af/4ea2911df9313c7a7a4f34d6c9eb", + "assets/build/pylib-android/copy.py": "https://files.ballistica.net/cache/ba1/f7/ba/bbbc0523aa05bf7dc78f2ef3812a", "assets/build/pylib-android/copyreg.py": "https://files.ballistica.net/cache/ba1/df/0f/5d29c5993a73e81bdc4f2b4b9fb6", "assets/build/pylib-android/crypt.py": "https://files.ballistica.net/cache/ba1/ae/e1/e2f82225c1a189679f80c95c4476", "assets/build/pylib-android/csv.py": "https://files.ballistica.net/cache/ba1/eb/b9/8acd5724cdb94c8fb446e87e85da", @@ -2654,7 +2654,7 @@ "assets/build/pylib-android/decimal.py": "https://files.ballistica.net/cache/ba1/92/94/b8be378718b3ede8f05f07aa257b", "assets/build/pylib-android/difflib.py": "https://files.ballistica.net/cache/ba1/6c/c2/0e781f8333593d5cb5890f702476", "assets/build/pylib-android/dis.py": "https://files.ballistica.net/cache/ba1/a1/d1/7ccecfaa71f7cd43ce504eb53194", - "assets/build/pylib-android/doctest.py": "https://files.ballistica.net/cache/ba1/c2/a0/8cda971687fd0e88982b557d4d47", + "assets/build/pylib-android/doctest.py": "https://files.ballistica.net/cache/ba1/5b/27/a20fbc6e0c46230b9d02d0e016a5", "assets/build/pylib-android/dummy_threading.py": "https://files.ballistica.net/cache/ba1/20/2f/ec8e68634908312148b53a5dfd4c", "assets/build/pylib-android/email/__init__.py": "https://files.ballistica.net/cache/ba1/2b/f0/8c85ab15e7cdbdaa0e1705223012", "assets/build/pylib-android/email/_encoded_words.py": "https://files.ballistica.net/cache/ba1/08/fa/de22bc96e1e332bbe1cf76162a1c", @@ -2788,7 +2788,7 @@ "assets/build/pylib-android/encodings/oem.py": "https://files.ballistica.net/cache/ba1/89/7c/80a3ecd4520886dc361cfc656f3c", "assets/build/pylib-android/encodings/palmos.py": "https://files.ballistica.net/cache/ba1/78/a9/9ef953f611452d621d44ac394e79", "assets/build/pylib-android/encodings/ptcp154.py": "https://files.ballistica.net/cache/ba1/1c/c2/03b9c034f875cb7ec719396258d0", - "assets/build/pylib-android/encodings/punycode.py": "https://files.ballistica.net/cache/ba1/a0/c1/870e6bfb76eb8fd60b0e42a648a5", + "assets/build/pylib-android/encodings/punycode.py": "https://files.ballistica.net/cache/ba1/5c/08/5f08b470b9dfeca97acb5e500fab", "assets/build/pylib-android/encodings/quopri_codec.py": "https://files.ballistica.net/cache/ba1/75/d7/28a861eed016c9c3054a32732575", "assets/build/pylib-android/encodings/raw_unicode_escape.py": "https://files.ballistica.net/cache/ba1/20/0b/657a7fc32f133a16ddbe91ef0011", "assets/build/pylib-android/encodings/rot_13.py": "https://files.ballistica.net/cache/ba1/38/24/555e226e476d804d5f79ca0e65b8", @@ -2815,7 +2815,7 @@ "assets/build/pylib-android/fileinput.py": "https://files.ballistica.net/cache/ba1/00/79/91b5218d122a5ede37fb0c821b22", "assets/build/pylib-android/fnmatch.py": "https://files.ballistica.net/cache/ba1/d5/44/0a58d9161ae9d2409ae2477b5948", "assets/build/pylib-android/formatter.py": "https://files.ballistica.net/cache/ba1/8d/5e/9b9d7451083fbae7ee678ad8f51e", - "assets/build/pylib-android/fractions.py": "https://files.ballistica.net/cache/ba1/53/37/cf10d9be60223979783bd58eed99", + "assets/build/pylib-android/fractions.py": "https://files.ballistica.net/cache/ba1/36/80/23d5c7f0ea189309e0b7e10fa86e", "assets/build/pylib-android/ftplib.py": "https://files.ballistica.net/cache/ba1/3b/4f/055a7aa1c640ee3163992f99a4ba", "assets/build/pylib-android/functools.py": "https://files.ballistica.net/cache/ba1/7c/3f/5c9e15f26ce747d1a37890e18640", "assets/build/pylib-android/genericpath.py": "https://files.ballistica.net/cache/ba1/0e/6a/8fc3f6769f820b90d5b6c43e49df", @@ -2823,7 +2823,7 @@ "assets/build/pylib-android/getpass.py": "https://files.ballistica.net/cache/ba1/76/37/f0df6882db44ee701aea35e235bb", "assets/build/pylib-android/gettext.py": "https://files.ballistica.net/cache/ba1/76/6b/e08db748cbde1d300c69c3a844d2", "assets/build/pylib-android/glob.py": "https://files.ballistica.net/cache/ba1/92/ce/6d2048bd82599fb386c8a439de58", - "assets/build/pylib-android/gzip.py": "https://files.ballistica.net/cache/ba1/92/ee/ebce7cc0a8c7a8c49e03603f5f84", + "assets/build/pylib-android/gzip.py": "https://files.ballistica.net/cache/ba1/83/fa/8e6c94112337bfb2b405d81328d2", "assets/build/pylib-android/hashlib.py": "https://files.ballistica.net/cache/ba1/c6/5a/91b854e2bae475daed521a56319b", "assets/build/pylib-android/heapq.py": "https://files.ballistica.net/cache/ba1/17/a3/02bee5cf92dbd2a1937056dbcb9c", "assets/build/pylib-android/hmac.py": "https://files.ballistica.net/cache/ba1/08/7a/a9980f4c7dd15295192da2ff8033", @@ -2844,7 +2844,7 @@ "assets/build/pylib-android/importlib/machinery.py": "https://files.ballistica.net/cache/ba1/a1/8f/18e6ff954af6e29a2c06701e426d", "assets/build/pylib-android/importlib/resources.py": "https://files.ballistica.net/cache/ba1/6f/5f/01901b3cc59aa8e5e91e78bf62e9", "assets/build/pylib-android/importlib/util.py": "https://files.ballistica.net/cache/ba1/74/6c/cf680cfd666f5e08fc17e1e02e21", - "assets/build/pylib-android/inspect.py": "https://files.ballistica.net/cache/ba1/8f/95/52b0949ceed253c834f3d683a26c", + "assets/build/pylib-android/inspect.py": "https://files.ballistica.net/cache/ba1/91/29/9a58f7871ce7d9f87586d2e105ef", "assets/build/pylib-android/io.py": "https://files.ballistica.net/cache/ba1/fa/0b/9a8c9ecdd79242fe6c5dd40f3784", "assets/build/pylib-android/ipaddress.py": "https://files.ballistica.net/cache/ba1/1e/73/43ed03804d0553b409f9452d6a7e", "assets/build/pylib-android/json/__init__.py": "https://files.ballistica.net/cache/ba1/8a/76/868c50cd60069c48f130f3a95fb7", @@ -2855,8 +2855,8 @@ "assets/build/pylib-android/keyword.py": "https://files.ballistica.net/cache/ba1/1d/8a/1cdb5840e8f561ec69407f898752", "assets/build/pylib-android/linecache.py": "https://files.ballistica.net/cache/ba1/60/c9/68f020023d9b6d0e7f1f7d6d6b50", "assets/build/pylib-android/locale.py": "https://files.ballistica.net/cache/ba1/ab/cf/da9a211a39662f631b6869e1c28b", - "assets/build/pylib-android/logging/__init__.py": "https://files.ballistica.net/cache/ba1/19/75/05927c752840da64b42ac594e944", - "assets/build/pylib-android/logging/config.py": "https://files.ballistica.net/cache/ba1/e7/17/c42b6051d993ba8292cf4d1746ac", + "assets/build/pylib-android/logging/__init__.py": "https://files.ballistica.net/cache/ba1/0d/d3/3460e7bd9309e2e09cbbac2c2f66", + "assets/build/pylib-android/logging/config.py": "https://files.ballistica.net/cache/ba1/14/a0/a315016fa0d6d748d204acde0c8d", "assets/build/pylib-android/logging/handlers.py": "https://files.ballistica.net/cache/ba1/34/92/8a7b95239e1d0751e49fd01c2a21", "assets/build/pylib-android/lzma.py": "https://files.ballistica.net/cache/ba1/9c/2e/978f3aa52af60fce9a819dc7de7c", "assets/build/pylib-android/macpath.py": "https://files.ballistica.net/cache/ba1/5c/d5/64f70a6aefd047187ab55eb0a239", @@ -2865,14 +2865,14 @@ "assets/build/pylib-android/mimetypes.py": "https://files.ballistica.net/cache/ba1/19/08/5481aa7dca208be033099bbba366", "assets/build/pylib-android/modulefinder.py": "https://files.ballistica.net/cache/ba1/0c/30/5e90e7723ca80176807ea7e41a95", "assets/build/pylib-android/netrc.py": "https://files.ballistica.net/cache/ba1/8f/80/36bb48bf9d57e4e5d2840bbc39ed", - "assets/build/pylib-android/nntplib.py": "https://files.ballistica.net/cache/ba1/ef/5c/151088e70abae8056339e146b943", + "assets/build/pylib-android/nntplib.py": "https://files.ballistica.net/cache/ba1/68/3f/b1b40b66ab19e7674529236a75de", "assets/build/pylib-android/ntpath.py": "https://files.ballistica.net/cache/ba1/69/86/c1b59b30cc6c61143e054fe4539c", "assets/build/pylib-android/nturl2path.py": "https://files.ballistica.net/cache/ba1/b4/46/c374747761328b745d54c20fb2d4", "assets/build/pylib-android/numbers.py": "https://files.ballistica.net/cache/ba1/b3/ec/5cbca4da9a176673ac3502dfe3ce", "assets/build/pylib-android/opcode.py": "https://files.ballistica.net/cache/ba1/a2/30/da96e8dba5f6b098839e1adb2e86", "assets/build/pylib-android/operator.py": "https://files.ballistica.net/cache/ba1/03/ac/fc74fa2a3146b00f9ee1921996c5", "assets/build/pylib-android/optparse.py": "https://files.ballistica.net/cache/ba1/56/b4/9ae8b02341d9b2b5c1a75d5f8729", - "assets/build/pylib-android/os.py": "https://files.ballistica.net/cache/ba1/dc/1f/590aefc42b2767560874eebd21ca", + "assets/build/pylib-android/os.py": "https://files.ballistica.net/cache/ba1/d0/78/d8693c3a2c5c4684faadf46ebed5", "assets/build/pylib-android/pathlib.py": "https://files.ballistica.net/cache/ba1/f6/90/a68b8e0dffc669ae7aec2c95010c", "assets/build/pylib-android/pdb.py": "https://files.ballistica.net/cache/ba1/84/4f/9fc933776560b7e45cb7ef3bcfa9", "assets/build/pylib-android/pickle.py": "https://files.ballistica.net/cache/ba1/81/cf/a94f6e8a45671c34c1d9d4efdc13", @@ -2889,7 +2889,7 @@ "assets/build/pylib-android/pty.py": "https://files.ballistica.net/cache/ba1/96/53/727538ed8a1ed56729d6732f4930", "assets/build/pylib-android/py_compile.py": "https://files.ballistica.net/cache/ba1/d3/c0/4464545ef3eb1a6d29ab57099b13", "assets/build/pylib-android/pyclbr.py": "https://files.ballistica.net/cache/ba1/ca/2d/70c81bfd320a52431b6e941198db", - "assets/build/pylib-android/pydoc.py": "https://files.ballistica.net/cache/ba1/9a/10/3c865fb4550ae8be364729806f6d", + "assets/build/pylib-android/pydoc.py": "https://files.ballistica.net/cache/ba1/15/f7/67affd41a830edfa22d087b213dd", "assets/build/pylib-android/queue.py": "https://files.ballistica.net/cache/ba1/8c/f8/37f30b7f7500462869580f7eb14c", "assets/build/pylib-android/quopri.py": "https://files.ballistica.net/cache/ba1/f3/08/1d7b3e0f7ce1ad649b1abf08f8ac", "assets/build/pylib-android/random.py": "https://files.ballistica.net/cache/ba1/f3/8e/b752b23583b23a38bb15cb176522", @@ -2922,13 +2922,13 @@ "assets/build/pylib-android/string.py": "https://files.ballistica.net/cache/ba1/b3/a4/ac5ce6361b4e350127bed3d9b66b", "assets/build/pylib-android/stringprep.py": "https://files.ballistica.net/cache/ba1/20/41/fcfc5f510286ead5f7f4678ac9ec", "assets/build/pylib-android/struct.py": "https://files.ballistica.net/cache/ba1/37/67/74dea8e8f3831e802c3b5288e901", - "assets/build/pylib-android/subprocess.py": "https://files.ballistica.net/cache/ba1/a0/56/4fa028b39079ffceaef1a683f2ff", + "assets/build/pylib-android/subprocess.py": "https://files.ballistica.net/cache/ba1/f6/bf/640ac9ceb0e3d7cfbe02bef64557", "assets/build/pylib-android/sunau.py": "https://files.ballistica.net/cache/ba1/ff/0e/1a6c5fd41803511cad28595dc248", "assets/build/pylib-android/symbol.py": "https://files.ballistica.net/cache/ba1/a5/26/eea6d483c82e7b4048937832889d", "assets/build/pylib-android/symtable.py": "https://files.ballistica.net/cache/ba1/46/92/4be884871052300c5e7b9a11164b", "assets/build/pylib-android/sysconfig.py": "https://files.ballistica.net/cache/ba1/9b/d7/6b01292e81749e4d3fd2bf762f7f", "assets/build/pylib-android/tabnanny.py": "https://files.ballistica.net/cache/ba1/f3/7e/b463d5f4ead23d34a36d0e559447", - "assets/build/pylib-android/tarfile.py": "https://files.ballistica.net/cache/ba1/ae/f0/6c4f055f0967dabbdd06d7566eac", + "assets/build/pylib-android/tarfile.py": "https://files.ballistica.net/cache/ba1/46/a6/9d1a46c06d7b5e787efbfeadec05", "assets/build/pylib-android/telnetlib.py": "https://files.ballistica.net/cache/ba1/60/28/4aab22dece4896a4d32694bbe282", "assets/build/pylib-android/tempfile.py": "https://files.ballistica.net/cache/ba1/69/88/1a506e6ee4ff144b2aecd4e98ad2", "assets/build/pylib-android/textwrap.py": "https://files.ballistica.net/cache/ba1/4c/4b/c743c5e7427b00f428c318a9673b", @@ -2937,24 +2937,24 @@ "assets/build/pylib-android/timeit.py": "https://files.ballistica.net/cache/ba1/b3/b7/a2c93ac110fde00eebcb74a7ced1", "assets/build/pylib-android/token.py": "https://files.ballistica.net/cache/ba1/2d/f8/943c252465b687a5bc367315432f", "assets/build/pylib-android/tokenize.py": "https://files.ballistica.net/cache/ba1/07/cc/13a7ec5c4d674ab025cb19186f7c", - "assets/build/pylib-android/trace.py": "https://files.ballistica.net/cache/ba1/66/df/150eca452f2b75d80a915656ceb1", + "assets/build/pylib-android/trace.py": "https://files.ballistica.net/cache/ba1/9b/9d/d6806d339c36bfc6a2b4769688e0", "assets/build/pylib-android/traceback.py": "https://files.ballistica.net/cache/ba1/8b/67/e189e176678255fe36a67f9cfe71", "assets/build/pylib-android/tracemalloc.py": "https://files.ballistica.net/cache/ba1/46/49/5683d0d9e0e342392361adb6e9a3", "assets/build/pylib-android/tty.py": "https://files.ballistica.net/cache/ba1/ad/19/a6ad29b8958fa9f5acc3cf71d3b2", "assets/build/pylib-android/types.py": "https://files.ballistica.net/cache/ba1/b9/5d/5467b37ac0f36b2ff4dd8ef458fd", - "assets/build/pylib-android/typing.py": "https://files.ballistica.net/cache/ba1/70/c4/6cbac5be937c037fcc4a26d2e4b1", + "assets/build/pylib-android/typing.py": "https://files.ballistica.net/cache/ba1/bf/f6/998b69740a766155dee2eabdf859", "assets/build/pylib-android/urllib/__init__.py": "https://files.ballistica.net/cache/ba1/b0/56/87601ed47a5181d1e6a40eb4ea40", "assets/build/pylib-android/urllib/error.py": "https://files.ballistica.net/cache/ba1/07/8c/573897fc3bdc6d3e2e8d449f17c7", - "assets/build/pylib-android/urllib/parse.py": "https://files.ballistica.net/cache/ba1/79/d2/5d0e60d8d55efe5d786cdc13934d", - "assets/build/pylib-android/urllib/request.py": "https://files.ballistica.net/cache/ba1/6f/71/7040b124f0939959054c494c864c", + "assets/build/pylib-android/urllib/parse.py": "https://files.ballistica.net/cache/ba1/14/09/ffed6f45250b0b2dc1a86f3eb700", + "assets/build/pylib-android/urllib/request.py": "https://files.ballistica.net/cache/ba1/fd/2c/abd2d31e790eb1bf4c6e19eacfd8", "assets/build/pylib-android/urllib/response.py": "https://files.ballistica.net/cache/ba1/c4/d5/676a8e9fc4f7bd21ac2f555fc3fc", "assets/build/pylib-android/urllib/robotparser.py": "https://files.ballistica.net/cache/ba1/c7/a8/487a1aeccfbf4370fdb33b136b51", "assets/build/pylib-android/uu.py": "https://files.ballistica.net/cache/ba1/a1/89/070ed8553858a75fcafae4b7bd37", "assets/build/pylib-android/uuid.py": "https://files.ballistica.net/cache/ba1/6e/d5/cf315a28420c9f6bd5a95acd116d", - "assets/build/pylib-android/warnings.py": "https://files.ballistica.net/cache/ba1/8c/4a/f5bf646482975256f504c6543192", + "assets/build/pylib-android/warnings.py": "https://files.ballistica.net/cache/ba1/74/1f/097efcf5f38c0b41fcba3f60b44d", "assets/build/pylib-android/wave.py": "https://files.ballistica.net/cache/ba1/f8/72/9e060ca777991ea45d71eed336ca", "assets/build/pylib-android/weakref.py": "https://files.ballistica.net/cache/ba1/d2/48/f82fb97686199616e57417ee9e7a", - "assets/build/pylib-android/webbrowser.py": "https://files.ballistica.net/cache/ba1/0b/6d/0f525ade5e00c82e252347350d0d", + "assets/build/pylib-android/webbrowser.py": "https://files.ballistica.net/cache/ba1/c4/03/bd37d4bb045d5c20b78c518574fe", "assets/build/pylib-android/xdrlib.py": "https://files.ballistica.net/cache/ba1/ec/bf/84d830dca1231ec1a67d8ccbb21f", "assets/build/pylib-android/xml/__init__.py": "https://files.ballistica.net/cache/ba1/ba/67/bbd97e53f3db5ebc3abd3fef2275", "assets/build/pylib-android/xml/dom/NodeFilter.py": "https://files.ballistica.net/cache/ba1/36/76/2a47e7bc727db1c44d157b23d2c3", @@ -2993,7 +2993,7 @@ "assets/build/pylib-apple/_markupbase.py": "https://files.ballistica.net/cache/ba1/06/64/d7715998bc60bfd5235f96b1a779", "assets/build/pylib-apple/_osx_support.py": "https://files.ballistica.net/cache/ba1/0d/a6/91bbc7f4ec229327c92ab11b096d", "assets/build/pylib-apple/_py_abc.py": "https://files.ballistica.net/cache/ba1/1c/5c/a9fd7d6a37d72eacde407a919fd2", - "assets/build/pylib-apple/_pydecimal.py": "https://files.ballistica.net/cache/ba1/3e/7f/2bb850aa1eadc23656adf8fb4fbf", + "assets/build/pylib-apple/_pydecimal.py": "https://files.ballistica.net/cache/ba1/d9/61/6db82a7db9a9802eeb7186194014", "assets/build/pylib-apple/_pyio.py": "https://files.ballistica.net/cache/ba1/eb/50/29e2234098f0db705aad0f1d2ce5", "assets/build/pylib-apple/_sitebuiltins.py": "https://files.ballistica.net/cache/ba1/3b/91/55e882376c694fefc106067d0b3b", "assets/build/pylib-apple/_strptime.py": "https://files.ballistica.net/cache/ba1/d3/f5/e8851ba114168136272f4c5d142e", @@ -3006,7 +3006,7 @@ "assets/build/pylib-apple/ast.py": "https://files.ballistica.net/cache/ba1/60/dd/6fd420ffc9156f54fb4fc5f7b753", "assets/build/pylib-apple/asynchat.py": "https://files.ballistica.net/cache/ba1/af/53/8002843655550b707f97b0aef513", "assets/build/pylib-apple/asyncio/__init__.py": "https://files.ballistica.net/cache/ba1/67/54/3680c6d920cad0475d3f75f44688", - "assets/build/pylib-apple/asyncio/base_events.py": "https://files.ballistica.net/cache/ba1/f0/53/9c53a7f4251a321eebcf44e64578", + "assets/build/pylib-apple/asyncio/base_events.py": "https://files.ballistica.net/cache/ba1/3d/0b/e197b883f420b0f8f9ae89d68505", "assets/build/pylib-apple/asyncio/base_futures.py": "https://files.ballistica.net/cache/ba1/1f/5e/13cd4e323a6a7468c048a0279d84", "assets/build/pylib-apple/asyncio/base_subprocess.py": "https://files.ballistica.net/cache/ba1/21/8d/9cbca0cea8e700d27a09d120fcc1", "assets/build/pylib-apple/asyncio/base_tasks.py": "https://files.ballistica.net/cache/ba1/3a/dc/1214dddea378aa08daffdb7e786b", @@ -3031,8 +3031,8 @@ "assets/build/pylib-apple/asyncio/windows_events.py": "https://files.ballistica.net/cache/ba1/47/6d/08eb442641ad579db371699d8247", "assets/build/pylib-apple/asyncio/windows_utils.py": "https://files.ballistica.net/cache/ba1/87/0a/f0cc4e03e7c3b8fb1b50fe6699fe", "assets/build/pylib-apple/asyncore.py": "https://files.ballistica.net/cache/ba1/2b/72/df815a3b340e40f3f1cac9e54f7c", - "assets/build/pylib-apple/base64.py": "https://files.ballistica.net/cache/ba1/53/54/290a4616d369c2c7302b294b3fa9", - "assets/build/pylib-apple/bdb.py": "https://files.ballistica.net/cache/ba1/d6/f3/69b2555c4a9e5c47e3541059b897", + "assets/build/pylib-apple/base64.py": "https://files.ballistica.net/cache/ba1/fc/aa/394cb22a0c927c575758eacd5d3c", + "assets/build/pylib-apple/bdb.py": "https://files.ballistica.net/cache/ba1/3f/5f/710f2f84bfda88f21b25ad5084f0", "assets/build/pylib-apple/binhex.py": "https://files.ballistica.net/cache/ba1/8a/1b/9e5f7d1c262ecbed4f2f1a127564", "assets/build/pylib-apple/bisect.py": "https://files.ballistica.net/cache/ba1/65/8d/7ee4b83ef17c4e12dbee3de0ed78", "assets/build/pylib-apple/bz2.py": "https://files.ballistica.net/cache/ba1/e2/fb/aebb1af1f3c9772be84d9907fefa", @@ -3042,13 +3042,13 @@ "assets/build/pylib-apple/cgitb.py": "https://files.ballistica.net/cache/ba1/2d/55/8d7d0ed1a9fce5117c8404567af9", "assets/build/pylib-apple/chunk.py": "https://files.ballistica.net/cache/ba1/e0/4d/8609a028d890841ff867e97f0869", "assets/build/pylib-apple/cmd.py": "https://files.ballistica.net/cache/ba1/33/25/43fd9394378dd3db266dd35af46e", - "assets/build/pylib-apple/code.py": "https://files.ballistica.net/cache/ba1/20/45/546d47fe7d97dea6e9913763b620", - "assets/build/pylib-apple/codecs.py": "https://files.ballistica.net/cache/ba1/19/1d/22a9ce945677366fbd99db8d84e2", + "assets/build/pylib-apple/code.py": "https://files.ballistica.net/cache/ba1/18/fc/d667016222e466707ec5d0991810", + "assets/build/pylib-apple/codecs.py": "https://files.ballistica.net/cache/ba1/59/5e/1db8ca057d9140fc441eddbba66a", "assets/build/pylib-apple/codeop.py": "https://files.ballistica.net/cache/ba1/53/e6/d9b2676f59dad4386c740ce4b551", "assets/build/pylib-apple/collections/__init__.py": "https://files.ballistica.net/cache/ba1/e9/19/524a6966561435000ebf610762b4", "assets/build/pylib-apple/collections/abc.py": "https://files.ballistica.net/cache/ba1/78/dd/38815f6fb41c45822afef8fb1b71", "assets/build/pylib-apple/colorsys.py": "https://files.ballistica.net/cache/ba1/ae/99/594631454b09ad4d5c34ec54a344", - "assets/build/pylib-apple/compileall.py": "https://files.ballistica.net/cache/ba1/d1/2c/f08c9cc11d79e1cfae3d347396d7", + "assets/build/pylib-apple/compileall.py": "https://files.ballistica.net/cache/ba1/03/97/c2f9709dc47ca3b1cba99aba338a", "assets/build/pylib-apple/concurrent/__init__.py": "https://files.ballistica.net/cache/ba1/f8/0b/346441ef94908fb806338d0510b6", "assets/build/pylib-apple/concurrent/futures/__init__.py": "https://files.ballistica.net/cache/ba1/6e/57/3bbd8b7b6f315e106ad0d5653e38", "assets/build/pylib-apple/concurrent/futures/_base.py": "https://files.ballistica.net/cache/ba1/fe/10/4e0ed0d4f044863838e2980b7ab0", @@ -3057,7 +3057,7 @@ "assets/build/pylib-apple/configparser.py": "https://files.ballistica.net/cache/ba1/ad/48/0318a7ab517f1f3240e77ac0bdc5", "assets/build/pylib-apple/contextlib.py": "https://files.ballistica.net/cache/ba1/11/ad/4518abe76a5e3ab825d158f01172", "assets/build/pylib-apple/contextvars.py": "https://files.ballistica.net/cache/ba1/02/52/e520b59b10124c813468252fee2a", - "assets/build/pylib-apple/copy.py": "https://files.ballistica.net/cache/ba1/f6/46/146e39a5c6ad47cee4019027d60b", + "assets/build/pylib-apple/copy.py": "https://files.ballistica.net/cache/ba1/84/d0/d769d275a0fa46184eee8c534bc8", "assets/build/pylib-apple/copyreg.py": "https://files.ballistica.net/cache/ba1/a3/31/65d0b18e801caa2bef11d6ac93b4", "assets/build/pylib-apple/crypt.py": "https://files.ballistica.net/cache/ba1/54/c9/5286313c50d32918803c57359099", "assets/build/pylib-apple/csv.py": "https://files.ballistica.net/cache/ba1/9a/6f/e4a900981552c661cf8f1ce3a5ad", @@ -3080,7 +3080,7 @@ "assets/build/pylib-apple/decimal.py": "https://files.ballistica.net/cache/ba1/dd/5d/8d0f90ec4e20c613b6ce2a88bc60", "assets/build/pylib-apple/difflib.py": "https://files.ballistica.net/cache/ba1/81/ae/5c878b083eddc6db9624fe75c96a", "assets/build/pylib-apple/dis.py": "https://files.ballistica.net/cache/ba1/77/ac/6444908dfe3e74dd1041b41d2934", - "assets/build/pylib-apple/doctest.py": "https://files.ballistica.net/cache/ba1/61/33/15b14b81d37827fa9a64a97fca65", + "assets/build/pylib-apple/doctest.py": "https://files.ballistica.net/cache/ba1/9d/79/f582a06f080421d6ac02ad15909c", "assets/build/pylib-apple/dummy_threading.py": "https://files.ballistica.net/cache/ba1/5b/60/6a2a69960c1c982fa667f3fd8051", "assets/build/pylib-apple/email/__init__.py": "https://files.ballistica.net/cache/ba1/2f/8e/c14225900357ac302213f5b4d674", "assets/build/pylib-apple/email/_encoded_words.py": "https://files.ballistica.net/cache/ba1/c6/3d/d686aa9a7ddbee790ad558b25661", @@ -3214,7 +3214,7 @@ "assets/build/pylib-apple/encodings/oem.py": "https://files.ballistica.net/cache/ba1/95/72/044008306f724b5b7ed437b33345", "assets/build/pylib-apple/encodings/palmos.py": "https://files.ballistica.net/cache/ba1/6a/11/ea725dae02d1d9efe32deeddfa6f", "assets/build/pylib-apple/encodings/ptcp154.py": "https://files.ballistica.net/cache/ba1/64/3f/a54d9272029e4ea2c2c334eefe5e", - "assets/build/pylib-apple/encodings/punycode.py": "https://files.ballistica.net/cache/ba1/98/d3/9989cfbc3a09b98b420a91bb0012", + "assets/build/pylib-apple/encodings/punycode.py": "https://files.ballistica.net/cache/ba1/cf/31/c8cf7953762f98ac90c097a4b865", "assets/build/pylib-apple/encodings/quopri_codec.py": "https://files.ballistica.net/cache/ba1/7c/99/e1ba630b5466e0b9b1cd6ff779f7", "assets/build/pylib-apple/encodings/raw_unicode_escape.py": "https://files.ballistica.net/cache/ba1/ef/f7/9403c0484bd76983c3b23c1980e0", "assets/build/pylib-apple/encodings/rot_13.py": "https://files.ballistica.net/cache/ba1/ef/32/5aa7862c190b7246f8592bdeca9e", @@ -3241,7 +3241,7 @@ "assets/build/pylib-apple/fileinput.py": "https://files.ballistica.net/cache/ba1/08/d2/236f7a90d9c686581e6456e06229", "assets/build/pylib-apple/fnmatch.py": "https://files.ballistica.net/cache/ba1/00/11/7533d94880452cc0ab88f9373642", "assets/build/pylib-apple/formatter.py": "https://files.ballistica.net/cache/ba1/b3/5f/58445670edaf8bb748c745197fa7", - "assets/build/pylib-apple/fractions.py": "https://files.ballistica.net/cache/ba1/36/53/449e18911808fbb40428ad9d314d", + "assets/build/pylib-apple/fractions.py": "https://files.ballistica.net/cache/ba1/bb/20/945accff09d654218c4f4929f9b1", "assets/build/pylib-apple/ftplib.py": "https://files.ballistica.net/cache/ba1/a5/0f/4be26d989b3a1431da319d403f04", "assets/build/pylib-apple/functools.py": "https://files.ballistica.net/cache/ba1/82/f9/b13ce3b3135bad32a49fce297507", "assets/build/pylib-apple/genericpath.py": "https://files.ballistica.net/cache/ba1/e4/e1/3097bbebdff714b5ef8bb74759f9", @@ -3249,7 +3249,7 @@ "assets/build/pylib-apple/getpass.py": "https://files.ballistica.net/cache/ba1/02/a1/d4249edfdf76656945cda335490b", "assets/build/pylib-apple/gettext.py": "https://files.ballistica.net/cache/ba1/e1/68/e0f1837f5894efe656c47ae2fb37", "assets/build/pylib-apple/glob.py": "https://files.ballistica.net/cache/ba1/96/c2/9d910d21ac8886d2423287d0ef00", - "assets/build/pylib-apple/gzip.py": "https://files.ballistica.net/cache/ba1/38/c2/5a14bc48b9488c4d3a1552891035", + "assets/build/pylib-apple/gzip.py": "https://files.ballistica.net/cache/ba1/d9/fc/f621c55b5af86da312e264966efc", "assets/build/pylib-apple/hashlib.py": "https://files.ballistica.net/cache/ba1/ea/1c/7cef23322a343b2cb0dd0672a579", "assets/build/pylib-apple/heapq.py": "https://files.ballistica.net/cache/ba1/a5/e7/f4748c3884acf2e4e8ccc8034566", "assets/build/pylib-apple/hmac.py": "https://files.ballistica.net/cache/ba1/6e/dc/c724c3184b473c12632485fb1041", @@ -3270,7 +3270,7 @@ "assets/build/pylib-apple/importlib/machinery.py": "https://files.ballistica.net/cache/ba1/1f/fe/2a27ae49f0c0db298c9eac2d6fa4", "assets/build/pylib-apple/importlib/resources.py": "https://files.ballistica.net/cache/ba1/ca/1a/f4d3e74466144c4852c53acf559c", "assets/build/pylib-apple/importlib/util.py": "https://files.ballistica.net/cache/ba1/28/14/519fd434e756d3e630d96cbc4d4f", - "assets/build/pylib-apple/inspect.py": "https://files.ballistica.net/cache/ba1/6a/be/1af85e9e3760a22210875ea1e66a", + "assets/build/pylib-apple/inspect.py": "https://files.ballistica.net/cache/ba1/c5/4d/ff30d22c573701958e1dc84c0d05", "assets/build/pylib-apple/io.py": "https://files.ballistica.net/cache/ba1/3b/5f/d80c2277bbb2e8be716d497d19c3", "assets/build/pylib-apple/ipaddress.py": "https://files.ballistica.net/cache/ba1/fe/be/a8b89725129a490eb4250a4c42dd", "assets/build/pylib-apple/json/__init__.py": "https://files.ballistica.net/cache/ba1/a7/14/b50d2bae12ae876dce4d674aa000", @@ -3281,8 +3281,8 @@ "assets/build/pylib-apple/keyword.py": "https://files.ballistica.net/cache/ba1/43/a9/76fa84b2f2a17fc06fbbf42e6a15", "assets/build/pylib-apple/linecache.py": "https://files.ballistica.net/cache/ba1/74/13/4df2fa7a9a0d1879e928afd1b3fa", "assets/build/pylib-apple/locale.py": "https://files.ballistica.net/cache/ba1/90/f9/938e5408764ae6a0fc378cc301bb", - "assets/build/pylib-apple/logging/__init__.py": "https://files.ballistica.net/cache/ba1/e1/88/9e5fca4749f8280fca94da8f5417", - "assets/build/pylib-apple/logging/config.py": "https://files.ballistica.net/cache/ba1/95/22/3cba6f6a0fb56dba5f6bb89df250", + "assets/build/pylib-apple/logging/__init__.py": "https://files.ballistica.net/cache/ba1/31/a7/d4a9cfdb9568e90c10cf674d2058", + "assets/build/pylib-apple/logging/config.py": "https://files.ballistica.net/cache/ba1/8c/0b/15a5fdbb610e26f973bf46ac4287", "assets/build/pylib-apple/logging/handlers.py": "https://files.ballistica.net/cache/ba1/58/a5/99e0d1cf6e9a35c11d349341f7c6", "assets/build/pylib-apple/lzma.py": "https://files.ballistica.net/cache/ba1/8d/4c/6289a712439521bf99a154d316ab", "assets/build/pylib-apple/macpath.py": "https://files.ballistica.net/cache/ba1/23/b7/d83ee2887e3ebdef21b5b592fd52", @@ -3291,14 +3291,14 @@ "assets/build/pylib-apple/mimetypes.py": "https://files.ballistica.net/cache/ba1/61/0f/15449b27ff2d27b50d55e387738a", "assets/build/pylib-apple/modulefinder.py": "https://files.ballistica.net/cache/ba1/44/03/57c041ddca84c7ba9986605820df", "assets/build/pylib-apple/netrc.py": "https://files.ballistica.net/cache/ba1/35/a9/0a1e1c8ecab734c09a5f8d64b51a", - "assets/build/pylib-apple/nntplib.py": "https://files.ballistica.net/cache/ba1/dc/56/f52a56f95fd67017773f6c0f5ed2", + "assets/build/pylib-apple/nntplib.py": "https://files.ballistica.net/cache/ba1/2b/92/a3a80b9a4e7730490198a548204c", "assets/build/pylib-apple/ntpath.py": "https://files.ballistica.net/cache/ba1/80/a7/462a2b4b0008f7dccd3c759f8857", "assets/build/pylib-apple/nturl2path.py": "https://files.ballistica.net/cache/ba1/d8/fa/0d625b59939d483cafa553790235", "assets/build/pylib-apple/numbers.py": "https://files.ballistica.net/cache/ba1/92/16/807de1550920d485c87f3d587d5d", "assets/build/pylib-apple/opcode.py": "https://files.ballistica.net/cache/ba1/d7/aa/1d37b642b89086fcc2d437d4adf8", "assets/build/pylib-apple/operator.py": "https://files.ballistica.net/cache/ba1/f0/07/a8b8b5f50e9abf13c9996e9b9434", "assets/build/pylib-apple/optparse.py": "https://files.ballistica.net/cache/ba1/7e/57/af779a7d4606910039060c7c9409", - "assets/build/pylib-apple/os.py": "https://files.ballistica.net/cache/ba1/34/9d/3198644aa260798e7d3279ada7e6", + "assets/build/pylib-apple/os.py": "https://files.ballistica.net/cache/ba1/c1/ab/b842eb67df94b7f66b20cf4e4fa9", "assets/build/pylib-apple/pathlib.py": "https://files.ballistica.net/cache/ba1/fc/c8/bd4616a80bfb3afcc77556e701a1", "assets/build/pylib-apple/pdb.py": "https://files.ballistica.net/cache/ba1/ca/29/76a70d0f97b46a7ac2fd3b26ef56", "assets/build/pylib-apple/pickle.py": "https://files.ballistica.net/cache/ba1/81/97/17747f0115fb9620c787b1c342d4", @@ -3315,7 +3315,7 @@ "assets/build/pylib-apple/pty.py": "https://files.ballistica.net/cache/ba1/26/71/f89485d103b2a80ec4198de7f3a6", "assets/build/pylib-apple/py_compile.py": "https://files.ballistica.net/cache/ba1/fe/6a/5b863bc38a0efa02e5a2e8df9758", "assets/build/pylib-apple/pyclbr.py": "https://files.ballistica.net/cache/ba1/44/3a/442c56a5f5f8b4c2c992cc12ed35", - "assets/build/pylib-apple/pydoc.py": "https://files.ballistica.net/cache/ba1/fe/32/9d910017079288d032c48a1c5739", + "assets/build/pylib-apple/pydoc.py": "https://files.ballistica.net/cache/ba1/be/f8/b7b3ffa4342672f71c578ac23d4a", "assets/build/pylib-apple/queue.py": "https://files.ballistica.net/cache/ba1/0b/69/f9e2c026824fe1d4602a6183b56c", "assets/build/pylib-apple/quopri.py": "https://files.ballistica.net/cache/ba1/34/a2/7e15c991e3a6ba75d988323117e8", "assets/build/pylib-apple/random.py": "https://files.ballistica.net/cache/ba1/07/b5/9ac8faa65ff3e80827b59fa931e4", @@ -3348,13 +3348,13 @@ "assets/build/pylib-apple/string.py": "https://files.ballistica.net/cache/ba1/87/20/f6260e9d53689af592a629332612", "assets/build/pylib-apple/stringprep.py": "https://files.ballistica.net/cache/ba1/f0/9b/77cc5580b139f527ee84fff812fc", "assets/build/pylib-apple/struct.py": "https://files.ballistica.net/cache/ba1/10/6d/7a6c0fbac83b2680bbeda8585f8f", - "assets/build/pylib-apple/subprocess.py": "https://files.ballistica.net/cache/ba1/0e/51/da9258c7d2f36f01a9e2af0c037e", + "assets/build/pylib-apple/subprocess.py": "https://files.ballistica.net/cache/ba1/d1/81/62496e6cd420342a1c254c31a461", "assets/build/pylib-apple/sunau.py": "https://files.ballistica.net/cache/ba1/99/de/eb56408801fec20de1d7c4a745c8", "assets/build/pylib-apple/symbol.py": "https://files.ballistica.net/cache/ba1/24/f5/3d4dc0c06af3af1051b792f63cdf", "assets/build/pylib-apple/symtable.py": "https://files.ballistica.net/cache/ba1/bb/be/5b97a512ed9e491ce7e8be113b61", "assets/build/pylib-apple/sysconfig.py": "https://files.ballistica.net/cache/ba1/31/09/41072e6015063a344086eca43827", "assets/build/pylib-apple/tabnanny.py": "https://files.ballistica.net/cache/ba1/f7/ba/da1e12d53ebdf326581c99c7d29b", - "assets/build/pylib-apple/tarfile.py": "https://files.ballistica.net/cache/ba1/9f/18/42078f0f0874ca3580d498740657", + "assets/build/pylib-apple/tarfile.py": "https://files.ballistica.net/cache/ba1/27/2c/ea8b64ffbe47c056fa5084893abd", "assets/build/pylib-apple/telnetlib.py": "https://files.ballistica.net/cache/ba1/12/a2/9022d2838d85ac4a84a5c9ef2e2c", "assets/build/pylib-apple/tempfile.py": "https://files.ballistica.net/cache/ba1/63/8a/6cce413f8da1bb559e542786db4f", "assets/build/pylib-apple/textwrap.py": "https://files.ballistica.net/cache/ba1/a9/d4/996c224bb06520a10b7bd86f8ee0", @@ -3363,24 +3363,24 @@ "assets/build/pylib-apple/timeit.py": "https://files.ballistica.net/cache/ba1/a5/a4/7e5f848d094fbf83e52dcd8f48c6", "assets/build/pylib-apple/token.py": "https://files.ballistica.net/cache/ba1/36/b9/9ae6aa89c0baadc5d80dd4127b7f", "assets/build/pylib-apple/tokenize.py": "https://files.ballistica.net/cache/ba1/73/b0/fd1563d114d63bdd21bceefa56be", - "assets/build/pylib-apple/trace.py": "https://files.ballistica.net/cache/ba1/7e/18/925baccd96ba96a79f03d91e762e", + "assets/build/pylib-apple/trace.py": "https://files.ballistica.net/cache/ba1/57/17/40229e4893d4eb9a5faaae113139", "assets/build/pylib-apple/traceback.py": "https://files.ballistica.net/cache/ba1/ac/cc/3f70a62f7cca00e4107df8cfa112", "assets/build/pylib-apple/tracemalloc.py": "https://files.ballistica.net/cache/ba1/b5/1e/62e69ad7c2181e30fac478d4f936", "assets/build/pylib-apple/tty.py": "https://files.ballistica.net/cache/ba1/ec/ea/2421fecb0e38e38d55cf0ce2b0e2", "assets/build/pylib-apple/types.py": "https://files.ballistica.net/cache/ba1/2f/7a/3bd0b56fdcddfc3e9edb6b556925", - "assets/build/pylib-apple/typing.py": "https://files.ballistica.net/cache/ba1/26/a2/14eb22ed632f5ba571783f4ca9f6", + "assets/build/pylib-apple/typing.py": "https://files.ballistica.net/cache/ba1/76/b3/0ae27201749a7b8e6ae9325d2a06", "assets/build/pylib-apple/urllib/__init__.py": "https://files.ballistica.net/cache/ba1/a2/c9/6d1cda1b043897ad0b5b043e7112", "assets/build/pylib-apple/urllib/error.py": "https://files.ballistica.net/cache/ba1/09/dd/15e4e9e675bd3242b0d5fb0f2707", - "assets/build/pylib-apple/urllib/parse.py": "https://files.ballistica.net/cache/ba1/89/94/ce115dee299d7cc3bcb8b5f76907", - "assets/build/pylib-apple/urllib/request.py": "https://files.ballistica.net/cache/ba1/42/b4/b5823f8d3ffdbf333a756d9a21e7", + "assets/build/pylib-apple/urllib/parse.py": "https://files.ballistica.net/cache/ba1/0f/18/3bc3354a5520bc6e0f892404028f", + "assets/build/pylib-apple/urllib/request.py": "https://files.ballistica.net/cache/ba1/03/9e/0da6865195d8e69d43ff47c43efe", "assets/build/pylib-apple/urllib/response.py": "https://files.ballistica.net/cache/ba1/03/b2/ec9cd1798de4004d98d213362713", "assets/build/pylib-apple/urllib/robotparser.py": "https://files.ballistica.net/cache/ba1/23/40/c172a9879ccb2bd76adf0db29567", "assets/build/pylib-apple/uu.py": "https://files.ballistica.net/cache/ba1/02/7a/d6fed645dcff0d4aff84e3cea58e", "assets/build/pylib-apple/uuid.py": "https://files.ballistica.net/cache/ba1/fa/e3/1abf5dee0941c2d15cf45f9f95be", - "assets/build/pylib-apple/warnings.py": "https://files.ballistica.net/cache/ba1/8c/ad/2d445d2598c0f588db88e9780221", + "assets/build/pylib-apple/warnings.py": "https://files.ballistica.net/cache/ba1/08/9c/d3b49f9ffdf97270f336a4abb83b", "assets/build/pylib-apple/wave.py": "https://files.ballistica.net/cache/ba1/4d/a0/b093aa87d58ab11be45e1e8dd05a", "assets/build/pylib-apple/weakref.py": "https://files.ballistica.net/cache/ba1/19/e6/014589327dc84e8fd0e5fb180345", - "assets/build/pylib-apple/webbrowser.py": "https://files.ballistica.net/cache/ba1/29/57/574eac7a24d3fca5921287a4e42e", + "assets/build/pylib-apple/webbrowser.py": "https://files.ballistica.net/cache/ba1/66/26/d905690b0376e7ff4c36a5a5b31b", "assets/build/pylib-apple/xdrlib.py": "https://files.ballistica.net/cache/ba1/b7/83/ac6e63a15cead601475a09350849", "assets/build/pylib-apple/xml/__init__.py": "https://files.ballistica.net/cache/ba1/3f/bd/6072ff48fc04c3af1dcbb8005adf", "assets/build/pylib-apple/xml/dom/NodeFilter.py": "https://files.ballistica.net/cache/ba1/97/e8/e3ea178b500cab89a64c7e5d3d81", diff --git a/tools/efrotools/pybuild.py b/tools/efrotools/pybuild.py index f8bd65f8..865d270f 100644 --- a/tools/efrotools/pybuild.py +++ b/tools/efrotools/pybuild.py @@ -38,6 +38,18 @@ ENABLE_OPENSSL = True def build_apple(arch: str, debug: bool = False) -> None: """Run a build for the provided apple arch (mac, ios, or tvos).""" + import platform + import subprocess + from efro.error import CleanError + + # IMPORTANT; seems we currently wind up building against /usr/local gettext + # stuff. Hopefully the maintainer fixes this, but for now I need to + # remind myself to blow it away while building. + if 'MacBook-Fro' in platform.node(): + if (subprocess.run('which gettext', shell=True, + check=False).returncode == 0): + raise CleanError('NEED TO TEMP-KILL GETTEXT') + builddir = 'build/python_apple_' + arch + ('_debug' if debug else '') efrotools.run('rm -rf "' + builddir + '"') efrotools.run('mkdir -p build') @@ -50,8 +62,8 @@ def build_apple(arch: str, debug: bool = False) -> None: # We can actually fix this to use the current one, but something # broke in the underlying build even on old commits so keeping it # locked for now... - efrotools.run('git checkout bf1ed73d0d5ff46862ba69dd5eb2ffaeff6f19b6') - # efrotools.run(f'git checkout {PYTHON_VERSION_MAJOR}') + # efrotools.run('git checkout bf1ed73d0d5ff46862ba69dd5eb2ffaeff6f19b6') + efrotools.run(f'git checkout {PYTHON_VERSION_MAJOR}') # On mac we currently have to add the _scproxy module or urllib will # fail. @@ -146,10 +158,10 @@ def build_apple(arch: str, debug: bool = False) -> None: ('build/$2/Support/OpenSSL ' if ENABLE_OPENSSL else '') + 'build/$2/Support/XZ $$(PYTHON_DIR-$1)/Makefile\n#' + srctxt) srctxt = ('dist/Python-$(PYTHON_VER)-$1-support.' - 'b$(BUILD_NUMBER).tar.gz: ') + '$(BUILD_NUMBER).tar.gz: ') txt = efrotools.replace_one( txt, srctxt, - 'dist/Python-$(PYTHON_VER)-$1-support.b$(BUILD_NUMBER).tar.gz:' + 'dist/Python-$(PYTHON_VER)-$1-support.$(BUILD_NUMBER).tar.gz:' ' $$(PYTHON_FRAMEWORK-$1)\n#' + srctxt) # Turn doc strings on; looks like it only adds a few hundred k. @@ -158,13 +170,13 @@ def build_apple(arch: str, debug: bool = False) -> None: # Set mac/ios version reqs # (see issue with utimensat and futimens). txt = efrotools.replace_one(txt, 'MACOSX_DEPLOYMENT_TARGET=10.8', - 'MACOSX_DEPLOYMENT_TARGET=10.13') + 'MACOSX_DEPLOYMENT_TARGET=10.14') # And equivalent iOS (11+). txt = efrotools.replace_one(txt, 'CFLAGS-iOS=-mios-version-min=8.0', - 'CFLAGS-iOS=-mios-version-min=11.0') + 'CFLAGS-iOS=-mios-version-min=12.0') # Ditto for tvOS. txt = efrotools.replace_one(txt, 'CFLAGS-tvOS=-mtvos-version-min=9.0', - 'CFLAGS-tvOS=-mtvos-version-min=11.0') + 'CFLAGS-tvOS=-mtvos-version-min=12.0') if debug: @@ -177,10 +189,10 @@ def build_apple(arch: str, debug: bool = False) -> None: txt = txt.replace(dline, '--with-pydebug ' + dline) # Debug has a different name. - # (Currently expect to replace 13 instances of this). + # (Currently expect to replace 12 instances of this). dline = 'python$(PYTHON_VER)m' splitlen = len(txt.split(dline)) - if splitlen != 14: + if splitlen != 13: raise RuntimeError(f'Unexpected configure line count {splitlen}.') txt = txt.replace(dline, 'python$(PYTHON_VER)dm')