langs, ci fix, tidying

This commit is contained in:
Eric 2022-09-29 14:32:18 -07:00
parent 2c694ebd7e
commit a7fed1d62e
No known key found for this signature in database
GPG Key ID: 89C93F0F8D6D5A98
9 changed files with 78 additions and 35 deletions

View File

@ -420,7 +420,7 @@
"assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/60/ad/38269b7f1c7dc20cb9a506cd0681", "assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/60/ad/38269b7f1c7dc20cb9a506cd0681",
"assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/72/85/d6fc4d16b7081d91fba2850b5b10", "assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/72/85/d6fc4d16b7081d91fba2850b5b10",
"assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/e9/ae/1d674d0c086eaa0bd1c3b1db0505", "assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/e9/ae/1d674d0c086eaa0bd1c3b1db0505",
"assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/5a/10/dae249cdd589b795fd341ebbec42", "assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/7d/d4/6a32da2a6a5d1f8d71f65ac65792",
"assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/e2/24/5e7ea9ca5c9de4d3b7a28e53564d", "assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/e2/24/5e7ea9ca5c9de4d3b7a28e53564d",
"assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/61/03/89070ca765e06da3a419a579f503", "assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/61/03/89070ca765e06da3a419a579f503",
"assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/f8/15/e1a2fa38697417bcf2cf19cd34ef", "assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/f8/15/e1a2fa38697417bcf2cf19cd34ef",
@ -438,24 +438,24 @@
"assets/build/ba_data/data/languages/greek.json": "https://files.ballistica.net/cache/ba1/e0/04/6be14bff785255719756e0906ea9", "assets/build/ba_data/data/languages/greek.json": "https://files.ballistica.net/cache/ba1/e0/04/6be14bff785255719756e0906ea9",
"assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/91/98/42701cd595c2f70b7484614a8f49", "assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/91/98/42701cd595c2f70b7484614a8f49",
"assets/build/ba_data/data/languages/hungarian.json": "https://files.ballistica.net/cache/ba1/d8/f2/aa16bc336bd7660cc86c3264bfc4", "assets/build/ba_data/data/languages/hungarian.json": "https://files.ballistica.net/cache/ba1/d8/f2/aa16bc336bd7660cc86c3264bfc4",
"assets/build/ba_data/data/languages/indonesian.json": "https://files.ballistica.net/cache/ba1/7f/a9/db86d4c8b70f06fd8a1fe0c0511b", "assets/build/ba_data/data/languages/indonesian.json": "https://files.ballistica.net/cache/ba1/82/76/1ca7ba627f34be34961de40fe91f",
"assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/1a/10/9563348e729d1e5c8ae8c9cbc1f2", "assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/1a/10/9563348e729d1e5c8ae8c9cbc1f2",
"assets/build/ba_data/data/languages/korean.json": "https://files.ballistica.net/cache/ba1/a8/e9/171a904f1331fdb7b1918a0f2598", "assets/build/ba_data/data/languages/korean.json": "https://files.ballistica.net/cache/ba1/7c/38/d4a44c481757d355836f292ede48",
"assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/df/b1/b2c9ebaad5e873ebedd365726d3d", "assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/df/b1/b2c9ebaad5e873ebedd365726d3d",
"assets/build/ba_data/data/languages/polish.json": "https://files.ballistica.net/cache/ba1/19/e9/59c891b1fb85f3ba9f19283c233d", "assets/build/ba_data/data/languages/polish.json": "https://files.ballistica.net/cache/ba1/19/e9/59c891b1fb85f3ba9f19283c233d",
"assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/da/95/36797ec53a697a04e55b225a701d", "assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/6b/9c/0c8fe0e4d5fc0c29b95ad798ee23",
"assets/build/ba_data/data/languages/romanian.json": "https://files.ballistica.net/cache/ba1/d7/06/9d70642d0a4d1e3b1c2149d7a17c", "assets/build/ba_data/data/languages/romanian.json": "https://files.ballistica.net/cache/ba1/d7/06/9d70642d0a4d1e3b1c2149d7a17c",
"assets/build/ba_data/data/languages/russian.json": "https://files.ballistica.net/cache/ba1/8d/c1/90cc02326100ccee7f03d0cb42b7", "assets/build/ba_data/data/languages/russian.json": "https://files.ballistica.net/cache/ba1/8d/c1/90cc02326100ccee7f03d0cb42b7",
"assets/build/ba_data/data/languages/serbian.json": "https://files.ballistica.net/cache/ba1/4e/91/6f2a9a3ce733908e91377a6ddb9a", "assets/build/ba_data/data/languages/serbian.json": "https://files.ballistica.net/cache/ba1/4e/91/6f2a9a3ce733908e91377a6ddb9a",
"assets/build/ba_data/data/languages/slovak.json": "https://files.ballistica.net/cache/ba1/f9/4b/d9f01814224066856695452ef57c", "assets/build/ba_data/data/languages/slovak.json": "https://files.ballistica.net/cache/ba1/f9/4b/d9f01814224066856695452ef57c",
"assets/build/ba_data/data/languages/spanish.json": "https://files.ballistica.net/cache/ba1/e1/83/07b3561f8b15b782ff968dbaf919", "assets/build/ba_data/data/languages/spanish.json": "https://files.ballistica.net/cache/ba1/12/8e/8bc7f197b725da644ca4869f8854",
"assets/build/ba_data/data/languages/swedish.json": "https://files.ballistica.net/cache/ba1/91/0a/35c4baf539d5951fc03a794c0e0b", "assets/build/ba_data/data/languages/swedish.json": "https://files.ballistica.net/cache/ba1/91/0a/35c4baf539d5951fc03a794c0e0b",
"assets/build/ba_data/data/languages/tamil.json": "https://files.ballistica.net/cache/ba1/94/1a/533bc718e676191bafc25e2dc98f", "assets/build/ba_data/data/languages/tamil.json": "https://files.ballistica.net/cache/ba1/94/1a/533bc718e676191bafc25e2dc98f",
"assets/build/ba_data/data/languages/thai.json": "https://files.ballistica.net/cache/ba1/f7/df/7ba5f99c5c2c4c86fc0503fcf0b7", "assets/build/ba_data/data/languages/thai.json": "https://files.ballistica.net/cache/ba1/f7/df/7ba5f99c5c2c4c86fc0503fcf0b7",
"assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/9a/90/8e2ed626def09f88c3b9ab5215a3", "assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/9a/90/8e2ed626def09f88c3b9ab5215a3",
"assets/build/ba_data/data/languages/ukrainian.json": "https://files.ballistica.net/cache/ba1/ab/35/644e4239cfa62a597a905412b90c", "assets/build/ba_data/data/languages/ukrainian.json": "https://files.ballistica.net/cache/ba1/ab/35/644e4239cfa62a597a905412b90c",
"assets/build/ba_data/data/languages/venetian.json": "https://files.ballistica.net/cache/ba1/53/9e/068074156b38bab7f732977a4031", "assets/build/ba_data/data/languages/venetian.json": "https://files.ballistica.net/cache/ba1/53/9e/068074156b38bab7f732977a4031",
"assets/build/ba_data/data/languages/vietnamese.json": "https://files.ballistica.net/cache/ba1/25/13/b64b849fc9fedcc18d81f6e08c4d", "assets/build/ba_data/data/languages/vietnamese.json": "https://files.ballistica.net/cache/ba1/1f/ae/abe3f105b3c4b51f6b7942773305",
"assets/build/ba_data/data/maps/big_g.json": "https://files.ballistica.net/cache/ba1/47/0a/a617cc85d927b576c4e6fc1091ed", "assets/build/ba_data/data/maps/big_g.json": "https://files.ballistica.net/cache/ba1/47/0a/a617cc85d927b576c4e6fc1091ed",
"assets/build/ba_data/data/maps/bridgit.json": "https://files.ballistica.net/cache/ba1/03/4b/57ee9b42854b26f23f81bd8c58ef", "assets/build/ba_data/data/maps/bridgit.json": "https://files.ballistica.net/cache/ba1/03/4b/57ee9b42854b26f23f81bd8c58ef",
"assets/build/ba_data/data/maps/courtyard.json": "https://files.ballistica.net/cache/ba1/03/38/344dd05bfef7bbdf464035ec5aa2", "assets/build/ba_data/data/maps/courtyard.json": "https://files.ballistica.net/cache/ba1/03/38/344dd05bfef7bbdf464035ec5aa2",
@ -3995,26 +3995,26 @@
"assets/src/ba_data/python/ba/_generated/__init__.py": "https://files.ballistica.net/cache/ba1/ee/e8/cad05aa531c7faf7ff7b96db7f6e", "assets/src/ba_data/python/ba/_generated/__init__.py": "https://files.ballistica.net/cache/ba1/ee/e8/cad05aa531c7faf7ff7b96db7f6e",
"assets/src/ba_data/python/ba/_generated/enums.py": "https://files.ballistica.net/cache/ba1/b2/e5/0ee0561e16257a32830645239f34", "assets/src/ba_data/python/ba/_generated/enums.py": "https://files.ballistica.net/cache/ba1/b2/e5/0ee0561e16257a32830645239f34",
"ballisticacore-windows/Generic/BallisticaCore.ico": "https://files.ballistica.net/cache/ba1/89/c0/e32c7d2a35dc9aef57cc73b0911a", "ballisticacore-windows/Generic/BallisticaCore.ico": "https://files.ballistica.net/cache/ba1/89/c0/e32c7d2a35dc9aef57cc73b0911a",
"build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/8a/a3/09c2e2c3c8486701a9ee5327b263", "build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/b4/b2/d9d81b227c329f77198d96ee2ae1",
"build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/9e/11/1da357b0f99d277a25e28cef667e", "build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/06/0d/c5503c7e9b4e8c5465b7df36c3ab",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/e7/be/d742c224a0d596e0dce2a5484562", "build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/2e/57/6c8e84496af8bcfc60b6030f9008",
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/3b/7d/790c154602635edb1a0b135b5b21", "build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/f1/37/e421b0f64743dd33ff9e3db54838",
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/e9/18/520b9da134c837a6888c30e97f19", "build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/3a/83/153f01e88ee01db4e2dd234ce189",
"build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/de/e5/ce18bd44acaea6fa0efce75997fa", "build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/0f/9b/66b3b2c089137e81496868f9c829",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/b1/12/5758a7ea749dae196ff895cae51e", "build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/5a/2e/0b387964a1cbe7658f353b0c3d58",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/b0/2c/7ead0f7195b764ec07a1a9370db3", "build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/77/52/ae35cb8cfea02c60417968702b3f",
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/79/32/79dea81648ee523d80b56723adcb", "build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/cf/55/d502cfa9bef1142b7cc240759c07",
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/e1/4c/abe20dc46ac5ab6dbc063d0ba665", "build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/c7/59/4d6c76a8e57478a81804b446cec7",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/cc/e7/989e658ad42701bb0b59917a4aa0", "build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/ed/5c/68871f87dd6353ca6693b24c895c",
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/f4/5f/cf504d8fc3c164dbe4483ff97b54", "build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/69/34/d573542acf00286337a8a7d4070e",
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/81/79/a916d9439ff7bf8320dfe0834c1c", "build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/54/21/ad891fc900eb06eb307401887479",
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/c2/b5/280018b8d8d9c69969bbe32c9b38", "build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/10/6d/b079707d97db261651539cf42be4",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/de/f0/2ae295b8adb55a8fca413c2983c1", "build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/9f/ec/d6f090057a354d6f27778a79151d",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/59/ae/b2d08ff9b3a090e9eb0c36941505", "build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/2f/8d/7076055efd990269b20af15d092a",
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/e6/c2/70029cb62124d7e7cc56b4093063", "build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/b6/9b/04419fdb2911f107ba2cf3d1daef",
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/85/51/baa09a10bd02ecd687743ecb11dc", "build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/89/c0/d3b177978d11d0283b0290e88960",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/5e/c8/df6b785ea053fdc385284db9ce02", "build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/32/23/ce5919233ff0438442f6e6e66a62",
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/96/5a/9e78e672ff1d12e0e03339a33ee4", "build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/99/51/13dbd2e177dd17314b4bc86fe200",
"build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e2/88/53757bc9fd92d49bd35dc6d3be0e", "build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/e2/88/53757bc9fd92d49bd35dc6d3be0e",
"build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/06/69/078f7eef49a1127a1492db4703f6", "build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/06/69/078f7eef49a1127a1492db4703f6",
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/82/f1/2b13fe77164f72d2bf57453bb8e5", "build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/82/f1/2b13fe77164f72d2bf57453bb8e5",

View File

@ -65,6 +65,8 @@
<w>alarmsound</w> <w>alarmsound</w>
<w>alibaba</w> <w>alibaba</w>
<w>allerrors</w> <w>allerrors</w>
<w>allobjc</w>
<w>allobjs</w>
<w>allpaths</w> <w>allpaths</w>
<w>allsettings</w> <w>allsettings</w>
<w>allteams</w> <w>allteams</w>
@ -1729,6 +1731,7 @@
<w>objt</w> <w>objt</w>
<w>objtoyaml</w> <w>objtoyaml</w>
<w>objtype</w> <w>objtype</w>
<w>objtypes</w>
<w>obval</w> <w>obval</w>
<w>occurrances</w> <w>occurrances</w>
<w>oculus</w> <w>oculus</w>
@ -1957,6 +1960,7 @@
<w>printobjects</w> <w>printobjects</w>
<w>printpaths</w> <w>printpaths</w>
<w>printrefs</w> <w>printrefs</w>
<w>printtypes</w>
<w>priv</w> <w>priv</w>
<w>privatetab</w> <w>privatetab</w>
<w>proactor</w> <w>proactor</w>
@ -2637,11 +2641,14 @@
<w>tpimport</w> <w>tpimport</w>
<w>tpimportex</w> <w>tpimportex</w>
<w>tpimports</w> <w>tpimports</w>
<w>tpitem</w>
<w>tplayer</w> <w>tplayer</w>
<w>tpname</w>
<w>tpos</w> <w>tpos</w>
<w>tproxy</w> <w>tproxy</w>
<w>tpsj</w> <w>tpsj</w>
<w>tpss</w> <w>tpss</w>
<w>tpval</w>
<w>tracebacks</w> <w>tracebacks</w>
<w>tracemalloc</w> <w>tracemalloc</w>
<w>tradeoff</w> <w>tradeoff</w>

View File

@ -1,4 +1,4 @@
### 1.7.10 (build 20885, api 7, 2022-09-28) ### 1.7.10 (build 20887, api 7, 2022-09-29)
- Added eval support for cloud-console. This means you can type something like '1+1' in the console and see '2' printed. This is how Python behaves in the stdin console or in-game console or the standard Python interpreter. - Added eval support for cloud-console. This means you can type something like '1+1' in the console and see '2' printed. This is how Python behaves in the stdin console or in-game console or the standard Python interpreter.
- Exceptions in the cloud-console now print to stderr instead of logging.exception(). This means they aren't a pretty red color anymore, but this will keep cloud-console behaving well with things like servers where logging.exception() might trigger alarms or otherwise. This is also consistent with standard interactive Python behavior. - Exceptions in the cloud-console now print to stderr instead of logging.exception(). This means they aren't a pretty red color anymore, but this will keep cloud-console behaving well with things like servers where logging.exception() might trigger alarms or otherwise. This is also consistent with standard interactive Python behavior.
- Cloud console now shows the device name at the top instead of simply 'Console' while connected. - Cloud console now shows the device name at the top instead of simply 'Console' while connected.

View File

@ -45,7 +45,7 @@ def bootstrap() -> None:
# Give a soft warning if we're being used with a different binary # Give a soft warning if we're being used with a different binary
# version than we expect. # version than we expect.
expected_build = 20885 expected_build = 20887
running_build: int = env['build_number'] running_build: int = env['build_number']
if running_build != expected_build: if running_build != expected_build:
print( print(

View File

@ -42,6 +42,8 @@
<w>alext</w> <w>alext</w>
<w>alibaba</w> <w>alibaba</w>
<w>allerrors</w> <w>allerrors</w>
<w>allobjc</w>
<w>allobjs</w>
<w>allocs</w> <w>allocs</w>
<w>allwarnings</w> <w>allwarnings</w>
<w>alot</w> <w>alot</w>
@ -907,6 +909,7 @@
<w>objexists</w> <w>objexists</w>
<w>objid</w> <w>objid</w>
<w>objtoyaml</w> <w>objtoyaml</w>
<w>objtypes</w>
<w>obstack</w> <w>obstack</w>
<w>obvs</w> <w>obvs</w>
<w>oculus</w> <w>oculus</w>
@ -1020,6 +1023,7 @@
<w>printnodes</w> <w>printnodes</w>
<w>printobjects</w> <w>printobjects</w>
<w>printrefs</w> <w>printrefs</w>
<w>printtypes</w>
<w>priv</w> <w>priv</w>
<w>privatetab</w> <w>privatetab</w>
<w>processinfoplistfile</w> <w>processinfoplistfile</w>
@ -1356,8 +1360,11 @@
<w>tpimport</w> <w>tpimport</w>
<w>tpimportex</w> <w>tpimportex</w>
<w>tpimports</w> <w>tpimports</w>
<w>tpitem</w>
<w>tpname</w>
<w>tpsj</w> <w>tpsj</w>
<w>tpss</w> <w>tpss</w>
<w>tpval</w>
<w>tracebacks</w> <w>tracebacks</w>
<w>tracestr</w> <w>tracestr</w>
<w>trackpad</w> <w>trackpad</w>

View File

@ -16,6 +16,9 @@ no_implicit_reexport = False
[mypy-ba.deprecated] [mypy-ba.deprecated]
no_implicit_reexport = False no_implicit_reexport = False
[mypy-psutil]
ignore_missing_imports = True
[mypy-Cocoa.*] [mypy-Cocoa.*]
ignore_missing_imports = True ignore_missing_imports = True
@ -39,3 +42,4 @@ disallow_any_unimported = False
[mypy-pdoc] [mypy-pdoc]
ignore_missing_imports = True ignore_missing_imports = True

View File

@ -32,7 +32,7 @@
namespace ballistica { namespace ballistica {
// These are set automatically via script; don't modify them here. // These are set automatically via script; don't modify them here.
const int kAppBuildNumber = 20885; const int kAppBuildNumber = 20887;
const char* kAppVersion = "1.7.10"; const char* kAppVersion = "1.7.10";
// Our standalone globals. // Our standalone globals.

View File

@ -62,9 +62,17 @@ class RemoteError(Exception):
as a catch-all. as a catch-all.
""" """
def __init__(self, msg: str, peer_desc: str):
super().__init__(msg)
self._peer_desc = peer_desc
def __str__(self) -> str: def __str__(self) -> str:
s = ''.join(str(arg) for arg in self.args) s = ''.join(str(arg) for arg in self.args)
return f'Remote Exception Follows:\n{s}' # Indent so we can more easily tell what is the remote part when
# this is in the middle of a long exception chain.
padding = ' '
s = ''.join(padding + line for line in s.splitlines(keepends=True))
return f'The following occurred on {self._peer_desc}:\n{s}'
class IntegrityError(ValueError): class IntegrityError(ValueError):

View File

@ -48,6 +48,7 @@ class MessageSender:
None] | None = None None] | None = None
self._decode_filter_call: Callable[ self._decode_filter_call: Callable[
[Any, Message, dict, Response | SysResponse], None] | None = None [Any, Message, dict, Response | SysResponse], None] | None = None
self._peer_desc_call: Callable[[Any], str] | None = None
def send_method( def send_method(
self, call: Callable[[Any, str], self, call: Callable[[Any, str],
@ -102,9 +103,20 @@ class MessageSender:
self._decode_filter_call = call self._decode_filter_call = call
return call return call
def peer_desc_method(self, call: Callable[[Any],
str]) -> Callable[[Any], str]:
"""Function decorator for defining peer descriptions.
These are included in error messages or other diagnostics.
"""
assert self._peer_desc_call is None
self._peer_desc_call = call
return call
def send(self, bound_obj: Any, message: Message) -> Response | None: def send(self, bound_obj: Any, message: Message) -> Response | None:
"""Send a message synchronously.""" """Send a message synchronously."""
return self.send_split_part_2( return self.send_split_part_2(
bound_obj=bound_obj,
message=message, message=message,
raw_response=self.send_split_part_1( raw_response=self.send_split_part_1(
bound_obj=bound_obj, bound_obj=bound_obj,
@ -116,6 +128,7 @@ class MessageSender:
message: Message) -> Response | None: message: Message) -> Response | None:
"""Send a message asynchronously.""" """Send a message asynchronously."""
return self.send_split_part_2( return self.send_split_part_2(
bound_obj=bound_obj,
message=message, message=message,
raw_response=await self.send_split_part_1_async( raw_response=await self.send_split_part_1_async(
bound_obj=bound_obj, bound_obj=bound_obj,
@ -178,7 +191,7 @@ class MessageSender:
return self._decode_raw_response(bound_obj, message, response_encoded) return self._decode_raw_response(bound_obj, message, response_encoded)
def send_split_part_2( def send_split_part_2(
self, message: Message, self, bound_obj: Any, message: Message,
raw_response: Response | SysResponse) -> Response | None: raw_response: Response | SysResponse) -> Response | None:
"""Complete message sending (both sync and async). """Complete message sending (both sync and async).
@ -186,7 +199,7 @@ class MessageSender:
for when message sending and response handling need to happen for when message sending and response handling need to happen
in different contexts/threads. in different contexts/threads.
""" """
response = self._unpack_raw_response(raw_response) response = self._unpack_raw_response(bound_obj, raw_response)
assert (response is None assert (response is None
or type(response) in type(message).get_response_types()) or type(response) in type(message).get_response_types())
return response return response
@ -228,7 +241,8 @@ class MessageSender:
return response return response
def _unpack_raw_response( def _unpack_raw_response(
self, raw_response: Response | SysResponse) -> Response | None: self, bound_obj: Any,
raw_response: Response | SysResponse) -> Response | None:
"""Given a raw Response, unpacks to special values or Exceptions. """Given a raw Response, unpacks to special values or Exceptions.
The result of this call is what should be passed to users. The result of this call is what should be passed to users.
@ -259,7 +273,9 @@ class MessageSender:
raise CleanError(raw_response.error_message) raise CleanError(raw_response.error_message)
# Everything else gets lumped in as a remote error. # Everything else gets lumped in as a remote error.
raise RemoteError(raw_response.error_message) raise RemoteError(raw_response.error_message,
peer_desc=('peer' if self._peer_desc_call is None
else self._peer_desc_call(bound_obj)))
assert isinstance(raw_response, Response) assert isinstance(raw_response, Response)
return raw_response return raw_response
@ -309,5 +325,6 @@ class BoundMessageSender:
self, message: Message, self, message: Message,
raw_response: Response | SysResponse) -> Response | None: raw_response: Response | SysResponse) -> Response | None:
"""Split send (part 2 of 2).""" """Split send (part 2 of 2)."""
return self._sender.send_split_part_2(message=message, return self._sender.send_split_part_2(bound_obj=self._obj,
message=message,
raw_response=raw_response) raw_response=raw_response)