common lib, lang, and lint tweaks

This commit is contained in:
Eric Froemling 2021-12-17 09:22:38 -06:00
parent 326f6677a0
commit 5382fe1c5f
No known key found for this signature in database
GPG Key ID: 89C93F0F8D6D5A98
39 changed files with 247 additions and 163 deletions

View File

@ -420,31 +420,31 @@
"assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/41/a0/d7edfdeada25eb8310de177ab7f5",
"assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/15/ba/7db3f4534699517b8bff3ffae4b6",
"assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/6d/de/d973377a4f5f975470f958119b0b",
"assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/37/de/401548e7d95a407e0e99ef9391f3",
"assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/8c/fd/162ab3530e31d8cdcbf83de0f49d",
"assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/ab/fd/cb157afc98dbe055ba63cf4c2f6f",
"assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/28/96/397e5c164a595c2b6c2d3eb2d4f1",
"assets/build/ba_data/data/languages/chinesetraditional.json": "https://files.ballistica.net/cache/ba1/05/2d/42e361ce039cd8ca26af0e594b46",
"assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/c7/34/1a9fa903adfbde472a0a7e97cc4b",
"assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/68/6d/7a251c216dda7550ca871871e2d1",
"assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/55/8c/8d0a0585e434b94865ae4befc090",
"assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/29/0a/2a796246ae05dbf316a3551b8970",
"assets/build/ba_data/data/languages/chinesetraditional.json": "https://files.ballistica.net/cache/ba1/ff/7c/3bcab4ae1f39977434acb0d6f795",
"assets/build/ba_data/data/languages/croatian.json": "https://files.ballistica.net/cache/ba1/66/bf/6e98398016da261296b8c306560e",
"assets/build/ba_data/data/languages/czech.json": "https://files.ballistica.net/cache/ba1/17/33/503a32d478e70661d09bcb7d2a82",
"assets/build/ba_data/data/languages/czech.json": "https://files.ballistica.net/cache/ba1/f1/be/7b998f990a40c8d94003fa954853",
"assets/build/ba_data/data/languages/danish.json": "https://files.ballistica.net/cache/ba1/3f/46/e4da3c1d2b0ebf916df55c608b28",
"assets/build/ba_data/data/languages/dutch.json": "https://files.ballistica.net/cache/ba1/d1/07/37b7adc3dbec7328d26c5325f212",
"assets/build/ba_data/data/languages/english.json": "https://files.ballistica.net/cache/ba1/00/a6/3563b95117cad093c9e56a27ba24",
"assets/build/ba_data/data/languages/esperanto.json": "https://files.ballistica.net/cache/ba1/6e/fd/685a4e1da031474d47a1d9eb2731",
"assets/build/ba_data/data/languages/french.json": "https://files.ballistica.net/cache/ba1/7f/ac/fd0257aba3ed874f69c30fd333ff",
"assets/build/ba_data/data/languages/german.json": "https://files.ballistica.net/cache/ba1/a0/65/0802d58fd002738faa5fca0ac200",
"assets/build/ba_data/data/languages/esperanto.json": "https://files.ballistica.net/cache/ba1/4c/c7/0184b8178869d1a3827a1bfcd5bb",
"assets/build/ba_data/data/languages/french.json": "https://files.ballistica.net/cache/ba1/94/66/31892eb13c227d10562b1af3e0ac",
"assets/build/ba_data/data/languages/german.json": "https://files.ballistica.net/cache/ba1/86/69/bba214c3bf4f9cdd4732ea331ac7",
"assets/build/ba_data/data/languages/gibberish.json": "https://files.ballistica.net/cache/ba1/19/a6/47fd52b8890573fd0e54b9f7b7fd",
"assets/build/ba_data/data/languages/greek.json": "https://files.ballistica.net/cache/ba1/87/ae/4b9de749699bfebb12c83ad8c1ac",
"assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/d9/57/0106b2a51dda269473f043e050d3",
"assets/build/ba_data/data/languages/greek.json": "https://files.ballistica.net/cache/ba1/01/ea/cd9dac4a24a5c92495c37cd98371",
"assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/40/d7/84b6bc5eaef05145af3bef5e5e1c",
"assets/build/ba_data/data/languages/hungarian.json": "https://files.ballistica.net/cache/ba1/2d/e5/3737c6c3979cf381321c5472bea5",
"assets/build/ba_data/data/languages/indonesian.json": "https://files.ballistica.net/cache/ba1/69/80/7fb8313fee506801754937a92bd2",
"assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/dd/97/42d117db366ad4584eb8c58d191e",
"assets/build/ba_data/data/languages/italian.json": "https://files.ballistica.net/cache/ba1/6a/89/696e26d4372ccde4a9b30e04ff62",
"assets/build/ba_data/data/languages/korean.json": "https://files.ballistica.net/cache/ba1/7f/57/fd4b9a63be0207ba2ad49e19253c",
"assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/2d/d5/661c050696d5a2e70e678054b9e7",
"assets/build/ba_data/data/languages/persian.json": "https://files.ballistica.net/cache/ba1/99/04/90b3005df45d258406caa4d439f8",
"assets/build/ba_data/data/languages/polish.json": "https://files.ballistica.net/cache/ba1/04/fa/b24dd48bfbf3c2d67ee5ad1269c3",
"assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/fe/6d/751277bc6b704d4f2a54cf1a9cfa",
"assets/build/ba_data/data/languages/portuguese.json": "https://files.ballistica.net/cache/ba1/7c/34/8fefa40f6b2d59d1b3755e5aa715",
"assets/build/ba_data/data/languages/romanian.json": "https://files.ballistica.net/cache/ba1/82/12/57bf144e12be229a9b70da9c45cb",
"assets/build/ba_data/data/languages/russian.json": "https://files.ballistica.net/cache/ba1/6e/5c/ed5c985d25c0ebbd7e47a89cb6c3",
"assets/build/ba_data/data/languages/russian.json": "https://files.ballistica.net/cache/ba1/22/ae/7398a74f9d86248169a675a7f2bd",
"assets/build/ba_data/data/languages/serbian.json": "https://files.ballistica.net/cache/ba1/38/d6/376433fa66f1798c64035efc1371",
"assets/build/ba_data/data/languages/slovak.json": "https://files.ballistica.net/cache/ba1/9f/a6/a2c9d7f3f90a2320aa45ccfd65cd",
"assets/build/ba_data/data/languages/spanish.json": "https://files.ballistica.net/cache/ba1/66/9e/df12c6325c503f8eaef4a83259c4",
@ -453,8 +453,8 @@
"assets/build/ba_data/data/languages/thai.json": "https://files.ballistica.net/cache/ba1/dd/de/c197fa9aff42e4422bc66b95ad88",
"assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/65/e4/b9308f15437972209b4d3fce7abd",
"assets/build/ba_data/data/languages/ukrainian.json": "https://files.ballistica.net/cache/ba1/8f/42/56f3ebcc6005f382449c1c2422fd",
"assets/build/ba_data/data/languages/venetian.json": "https://files.ballistica.net/cache/ba1/4f/cc/285443e3e8e65a318df338bbc7f7",
"assets/build/ba_data/data/languages/vietnamese.json": "https://files.ballistica.net/cache/ba1/e4/8b/93243a2723b04ff70580afc9ebb7",
"assets/build/ba_data/data/languages/venetian.json": "https://files.ballistica.net/cache/ba1/ff/a7/d74151ee6fa1d228cafb52e52f04",
"assets/build/ba_data/data/languages/vietnamese.json": "https://files.ballistica.net/cache/ba1/0b/24/3cc2b5a6ebe4bca1e01b40f8ed09",
"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/courtyard.json": "https://files.ballistica.net/cache/ba1/03/38/344dd05bfef7bbdf464035ec5aa2",
@ -3966,26 +3966,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/enums.py": "https://files.ballistica.net/cache/ba1/72/82/86956fae909ac2fe2a1abd84a361",
"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/5a/bd/c4f53db2e9c242c3ec20ea993d0c",
"build/prefab/full/linux_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/5a/43/31f1e7a1f06ff634e853b2fe478b",
"build/prefab/full/linux_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/74/1d/fc9e33e565475daaac80da5252f0",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/d5/ec/fc764a22eecbe3d9718a7f74f445",
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/13/58/58ef70e856ea2b396a337ad6a6ec",
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/6d/4a/9ba90e9fd61755076d5fbcb58ae3",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/a1/2b/84b86a21eaa2622439ddf96a879e",
"build/prefab/full/linux_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/fb/ba/c6f4160413f84da9fc199eba8906",
"build/prefab/full/linux_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/2d/6e/32e40af876d49a80c3cda22395ee",
"build/prefab/full/linux_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/9c/7b/ac1a200be0f37078af0991faca3b",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/55/d2/4567b7d25fe0a029d32768bd46af",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/8b/e0/ecbdbf83e5a7616badddfe77f18f",
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/d6/63/7efe2c4dbeaf51d8a82db50a57fe",
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/ef/2a/69c1beeac35c146d64114c08e91e",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/09/cb/4817cd1ac9cc3f531880ac94ca50",
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/5e/5f/06e653fe68ae2c2e0854049bc82d",
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/98/91/df35b46c01a9b41c711119804803",
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/9b/32/302e9723c2a9639c2535f9c5a4ea",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/dc/80/0586887648abd48e1ad560f29b38",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/c0/91/0146b1d2b7d37164e70587320f75",
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/c8/28/adc7da698869a06ed823e5db852b",
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/2c/2b/95ea5843e16a38e454140d9645bb",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/fa/55/d98fc407a25d56e3248c7fd0d582",
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/79/87/02fd242badf5b6a3e108624522db",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/03/c5/dcd0c09e5b0020923459abc08d76",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/52/61/4ee73c405443f6807611f0ab4d65",
"build/prefab/full/mac_arm64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/bd/25/4532f4fec61de6c5d3c0dc3e37dd",
"build/prefab/full/mac_arm64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/af/4d/3d6f711c2b06ac774609bdb563b0",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/8b/7a/35d194e46cf4329d2da83de82f21",
"build/prefab/full/mac_arm64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/44/4f/c7f841bc873cf278c25dd983c97c",
"build/prefab/full/mac_x86_64_gui/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/67/d7/97716594f45bdbee32f45d6416bd",
"build/prefab/full/mac_x86_64_gui/release/ballisticacore": "https://files.ballistica.net/cache/ba1/63/5f/3e20ac2d36d2c1746fe5a1b57759",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/5c/60/946f24032d0a9981663bc26bf1e4",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/4c/17/6afb195ab8ec46b8ed76b940d2ed",
"build/prefab/full/windows_x86_gui/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/4f/59/4e0f38c6ca7b876e121c4e911dc7",
"build/prefab/full/windows_x86_gui/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/2d/66/c1d56619c94d1203b4a7a73959a0",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/71/98/e4589dd1fd33c8483281a72d5ef5",
"build/prefab/full/windows_x86_server/release/dist/BallisticaCoreHeadless.exe": "https://files.ballistica.net/cache/ba1/ac/46/d501ee43d3204887092560d25de0",
"build/prefab/lib/linux_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/5f/7c/427e8a1af1c95bf40211adb1a10e",
"build/prefab/lib/linux_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/5e/fe/0366d7ace626419f14c2bd80e266",
"build/prefab/lib/linux_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/9b/2c/7be9dce2d9aff8cf04508d07dff0",
@ -3994,22 +3994,22 @@
"build/prefab/lib/linux_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d7/2c/9fa96710e25f6242c42ff3efd309",
"build/prefab/lib/linux_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/89/45/43b51cddf1b4655d31018158b344",
"build/prefab/lib/linux_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/8c/6d/c3f165109101ae65f3ecbc556492",
"build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/44/f1/1cfd8a4bc54d87f86bbfdd9fa439",
"build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/d9/c2/15a504dbea88fe4eda1c57f67c76",
"build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/3f/1e/3e78487f4d70a2c5974ec0198fb1",
"build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/18/4a/48fd42b279a165b41c43c7973f5b",
"build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ae/61/8f2ab7f636f09ff8cabf7e5d8d37",
"build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/66/bb/3f0591d11d845c285ceb0e322121",
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/81/a4/21f0084dde2fc524b4683b5efed0",
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/9f/03/dbe0091c812e01eb84b66de55b36",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/d9/52/cdf3f127aba14e60602cc69c9276",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/04/c9/aacaa7d3bd8a8bc2241134ed0260",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/fe/ea/eb5e2898022397cb0e4767ac7750",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/3c/e1/79d74d48c4ba188fca80a1911bed",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/89/85/396c695524487fc4617051a1068f",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/62/ff/49923c4896cde6c1ade47f98c79c",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/db/0b/8f5e7a6bbdedde91e4b02d4b9e4e",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/bb/0b/6133175db0936836a527b1ebddb1",
"build/prefab/lib/mac_arm64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/1a/12/fd3382e3ae5c5810b00a988540ec",
"build/prefab/lib/mac_arm64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/b7/5d/bd55990fe03531e438000d5f0aab",
"build/prefab/lib/mac_arm64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/6b/9b/0a5965e1714cdda72a9a0417ff04",
"build/prefab/lib/mac_arm64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/ed/f6/c40b675afed682fc96684228dd37",
"build/prefab/lib/mac_x86_64_gui/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/9f/1e/41254c471d95083243bd146e35ae",
"build/prefab/lib/mac_x86_64_gui/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/cf/68/90f68e1e6d2fd75c340dfc85f982",
"build/prefab/lib/mac_x86_64_server/debug/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/6d/c6/e4f93048d8dbcfb7f451aeacd2c9",
"build/prefab/lib/mac_x86_64_server/release/libballisticacore_internal.a": "https://files.ballistica.net/cache/ba1/08/bf/9e91d76ff229a92ed10cedbf8cb1",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/66/5f/b8abc6d993bb5296fc63853b21ce",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/2a/5b/dd04558a02272cb7e407bca63da7",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/37/1e/a81e165c91ddf8d8c6fe8e3f57f1",
"build/prefab/lib/windows/Debug_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/17/1b/c80441a942276010b6996b45df29",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.lib": "https://files.ballistica.net/cache/ba1/61/c8/3e2b5ed912cc252886b56445d1ad",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreGenericInternal.pdb": "https://files.ballistica.net/cache/ba1/67/c7/05b1673224fe473d83a03ec62a18",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.lib": "https://files.ballistica.net/cache/ba1/39/2e/30137404ba9e1504fc856a95594c",
"build/prefab/lib/windows/Release_Win32/BallisticaCoreHeadlessInternal.pdb": "https://files.ballistica.net/cache/ba1/13/0b/d55b28a1c60c55d34739185cc8ba",
"src/ballistica/generated/python_embedded/binding.inc": "https://files.ballistica.net/cache/ba1/f2/6c/5a0a4695dcc2a11e7941b8777e80",
"src/ballistica/generated/python_embedded/bootstrap.inc": "https://files.ballistica.net/cache/ba1/65/ac/d5c4162a71028c1bfa73ebc1f881"
}

View File

@ -20,18 +20,18 @@ https://github.com/efroemling/ballistica/wiki/Contributing
## Type of Changes
<!-- Leave the corresponding lines for the applicable type of change: -->
| | Type |
| ------------- | ------------- |
| ✓ | :bug: Bug fix |
| ✓ | :sparkles: New feature |
| ✓ | :hammer: Refactoring |
| ✓ | :scroll: Docs |
| | Type |
|-----|------------------------|
| ✓ | :bug: Bug fix |
| ✓ | :sparkles: New feature |
| ✓ | :hammer: Refactoring |
| ✓ | :scroll: Docs |
## Related Issue
<!--
<!--
If this PR fixes a particular issue, use the following to automatically close that issue
once this PR gets merged:
Closes #XXX
Closes #XXX
-->

View File

@ -699,6 +699,7 @@
<w>epicfail</w>
<w>ericf</w>
<w>ericfroemling</w>
<w>ericsson's</w>
<w>errcount</w>
<w>errname</w>
<w>errno</w>
@ -1521,6 +1522,7 @@
<w>nntplib</w>
<w>noassets</w>
<w>nodeactor</w>
<w>nodename</w>
<w>nodepos</w>
<w>nodpi</w>
<w>nofiles</w>
@ -2019,6 +2021,7 @@
<w>scrollw</w>
<w>scrollwidget</w>
<w>scsb</w>
<w>scutil</w>
<w>scyn</w>
<w>sdata</w>
<w>sdkcheck</w>

View File

@ -128,7 +128,7 @@ $1: $$(subst /__pycache__,,$$(subst .cpython-39.opt-1.pyc,.py,$1))
$$(TOOLS_DIR)/pcommand compile_python_files $$^ && chmod 444 $$@
endef
#__AUTOGENERATED_PUBLIC_BEGIN__
# __AUTOGENERATED_PUBLIC_BEGIN__
SCRIPT_TARGETS_PY_PUBLIC = \
build/ba_data/python/ba/__init__.py \
@ -687,9 +687,9 @@ $(SCRIPT_TARGETS_PY_PUBLIC_TOOLS) : build/ba_data/python/%.py : ../tools/%.py
# Instead we generate individual targets in a loop.
$(foreach element,$(SCRIPT_TARGETS_PYC_PUBLIC_TOOLS),\
$(eval $(call make-opt-pyc-target,$(element))))
#__AUTOGENERATED_PUBLIC_END__
# __AUTOGENERATED_PUBLIC_END__
#__AUTOGENERATED_PRIVATE_BEGIN__
# __AUTOGENERATED_PRIVATE_BEGIN__
SCRIPT_TARGETS_PY_PRIVATE_APPLE = \
build/pylib-apple/__future__.py \
@ -7052,7 +7052,7 @@ EXTRAS_TARGETS_WIN_X64 = \
$(EXTRAS_TARGETS_WIN_X64) : ../.efrocachemap
@cd .. && tools/pcommand efrocache_get assets/$@
#__AUTOGENERATED_PRIVATE_END__
# __AUTOGENERATED_PRIVATE_END__
ASSET_TARGETS_COMMON += $(MODEL_TARGETS)

View File

@ -1 +1 @@
20652393608393799870252825907573389372
128243803030405974762870876563323013389

View File

@ -148,7 +148,7 @@ class DependencyEntry:
instance = self.cls.__new__(self.cls)
# pylint: disable=protected-access
instance._dep_entry = weakref.ref(self)
instance.__init__()
instance.__init__() # type: ignore
assert self.depset
depset = self.depset()

View File

@ -549,7 +549,8 @@ class ServerManagerApp:
while not self._done:
self._run_server_cycle()
def _handle_term_signal(self, sig: int, frame: FrameType) -> None:
def _handle_term_signal(self, sig: int,
frame: Optional[FrameType]) -> None:
"""Handle signals (will always run in the main thread)."""
del sig, frame # Unused.
sys.exit(1 if self._should_report_subprocess_error else 0)

View File

@ -4,4 +4,4 @@
# Uncomment any of these values to override defaults.
#__CONFIG_TEMPLATE_VALUES__
# __CONFIG_TEMPLATE_VALUES__

View File

@ -330,6 +330,7 @@
<w>envval</w>
<w>ericf</w>
<w>ericsson</w>
<w>ericsson's</w>
<w>errname</w>
<w>erroring</w>
<w>etcdec</w>
@ -553,6 +554,7 @@
<w>jdict</w>
<w>jmessage</w>
<w>jnames</w>
<w>json's</w>
<w>keepalives</w>
<w>keyanntype</w>
<w>keycode</w>
@ -713,6 +715,7 @@
<w>nlpos</w>
<w>nmemb</w>
<w>noassets</w>
<w>nodename</w>
<w>nodetype</w>
<w>nofilename</w>
<w>noglobs</w>
@ -946,6 +949,7 @@
<w>scenetime</w>
<w>screenmessage</w>
<w>scrollwidget</w>
<w>scutil</w>
<w>sdkcheck</w>
<w>sdl's</w>
<w>sdlk</w>

View File

@ -5,9 +5,10 @@
<inspection_tool class="CannotResolve" enabled="false" level="ERROR" enabled_by_default="false" />
<inspection_tool class="ClangTidy" enabled="true" level="WARNING" enabled_by_default="true">
<scope name="External" level="WARNING" enabled="false">
<option name="clangTidyChecks" value="-*,bugprone-argument-comment,bugprone-assert-side-effect,bugprone-bad-signal-to-kill-thread,bugprone-branch-clone,bugprone-copy-constructor-init,bugprone-dangling-handle,bugprone-dynamic-static-initializers,bugprone-fold-init-type,bugprone-forward-declaration-namespace,bugprone-forwarding-reference-overload,bugprone-inaccurate-erase,bugprone-incorrect-roundings,bugprone-integer-division,bugprone-lambda-function-name,bugprone-macro-parentheses,bugprone-macro-repeated-side-effects,bugprone-misplaced-operator-in-strlen-in-alloc,bugprone-misplaced-pointer-arithmetic-in-alloc,bugprone-misplaced-widening-cast,bugprone-move-forwarding-reference,bugprone-multiple-statement-macro,bugprone-no-escape,bugprone-not-null-terminated-result,bugprone-parent-virtual-call,bugprone-posix-return,bugprone-sizeof-container,bugprone-sizeof-expression,bugprone-spuriously-wake-up-functions,bugprone-string-constructor,bugprone-string-integer-assignment,bugprone-string-literal-with-embedded-nul,bugprone-suspicious-enum-usage,bugprone-suspicious-include,bugprone-suspicious-memset-usage,bugprone-suspicious-missing-comma,bugprone-suspicious-semicolon,bugprone-suspicious-string-compare,bugprone-swapped-arguments,bugprone-terminating-continue,bugprone-throw-keyword-missing,bugprone-too-small-loop-variable,bugprone-undefined-memory-manipulation,bugprone-undelegated-constructor,bugprone-unhandled-self-assignment,bugprone-unused-raii,bugprone-unused-return-value,bugprone-use-after-move,bugprone-virtual-near-miss,cert-dcl21-cpp,cert-dcl58-cpp,cert-err34-c,cert-err52-cpp,cert-err58-cpp,cert-err60-cpp,cert-flp30-c,cert-msc50-cpp,cert-msc51-cpp,cppcoreguidelines-interfaces-global-init,cppcoreguidelines-narrowing-conversions,cppcoreguidelines-pro-type-member-init,cppcoreguidelines-slicing,google-default-arguments,google-explicit-constructor,google-runtime-operator,hicpp-exception-baseclass,hicpp-multiway-paths-covered,misc-misplaced-const,misc-new-delete-overloads,misc-no-recursion,misc-non-copyable-objects,misc-throw-by-value-catch-by-reference,misc-unconventional-assign-operator,misc-uniqueptr-reset-release,modernize-avoid-bind,modernize-concat-nested-namespaces,modernize-deprecated-headers,modernize-deprecated-ios-base-aliases,modernize-loop-convert,modernize-make-shared,modernize-make-unique,modernize-pass-by-value,modernize-raw-string-literal,modernize-redundant-void-arg,modernize-replace-auto-ptr,modernize-replace-disallow-copy-and-assign-macro,modernize-replace-random-shuffle,modernize-return-braced-init-list,modernize-shrink-to-fit,modernize-unary-static-assert,modernize-use-auto,modernize-use-bool-literals,modernize-use-emplace,modernize-use-equals-default,modernize-use-equals-delete,modernize-use-noexcept,modernize-use-nullptr,modernize-use-override,modernize-use-transparent-functors,modernize-use-uncaught-exceptions,mpi-buffer-deref,mpi-type-mismatch,openmp-use-default-none,performance-faster-string-find,performance-for-range-copy,performance-implicit-conversion-in-loop,performance-inefficient-algorithm,performance-inefficient-string-concatenation,performance-inefficient-vector-operation,performance-move-const-arg,performance-move-constructor-init,performance-no-automatic-move,performance-noexcept-move-constructor,performance-trivially-destructible,performance-type-promotion-in-math-fn,performance-unnecessary-copy-initialization,performance-unnecessary-value-param,portability-simd-intrinsics,readability-avoid-const-params-in-decls,readability-const-return-type,readability-container-size-empty,readability-delete-null-pointer,readability-deleted-default,readability-inconsistent-declaration-parameter-name,readability-misleading-indentation,readability-misplaced-array-index,readability-non-const-parameter,readability-redundant-control-flow,readability-redundant-declaration,readability-redundant-function-ptr-dereference,readability-redundant-smartptr-get,readability-redundant-string-cstr,readability-redundant-string-init,readability-simplify-subscript-expr,readability-static-accessed-through-instance,readability-static-definition-in-anonymous-namespace,readability-string-compare,readability-uniqueptr-delete-release,readability-use-anyofallof,-misc-no-recursion" />
<option name="clangTidyChecks" value="-*,bugprone-argument-comment,bugprone-assert-side-effect,bugprone-bad-signal-to-kill-thread,bugprone-branch-clone,bugprone-copy-constructor-init,bugprone-dangling-handle,bugprone-dynamic-static-initializers,bugprone-fold-init-type,bugprone-forward-declaration-namespace,bugprone-forwarding-reference-overload,bugprone-inaccurate-erase,bugprone-incorrect-roundings,bugprone-integer-division,bugprone-macro-parentheses,bugprone-macro-repeated-side-effects,bugprone-misplaced-operator-in-strlen-in-alloc,bugprone-misplaced-pointer-arithmetic-in-alloc,bugprone-misplaced-widening-cast,bugprone-move-forwarding-reference,bugprone-multiple-statement-macro,bugprone-no-escape,bugprone-not-null-terminated-result,bugprone-parent-virtual-call,bugprone-posix-return,bugprone-sizeof-container,bugprone-sizeof-expression,bugprone-spuriously-wake-up-functions,bugprone-string-constructor,bugprone-string-integer-assignment,bugprone-string-literal-with-embedded-nul,bugprone-suspicious-enum-usage,bugprone-suspicious-include,bugprone-suspicious-memset-usage,bugprone-suspicious-missing-comma,bugprone-suspicious-semicolon,bugprone-suspicious-string-compare,bugprone-swapped-arguments,bugprone-terminating-continue,bugprone-throw-keyword-missing,bugprone-too-small-loop-variable,bugprone-undefined-memory-manipulation,bugprone-undelegated-constructor,bugprone-unhandled-self-assignment,bugprone-unused-raii,bugprone-unused-return-value,bugprone-use-after-move,bugprone-virtual-near-miss,cert-dcl21-cpp,cert-dcl58-cpp,cert-err34-c,cert-err52-cpp,cert-err58-cpp,cert-err60-cpp,cert-flp30-c,cert-msc50-cpp,cert-msc51-cpp,cppcoreguidelines-interfaces-global-init,cppcoreguidelines-narrowing-conversions,cppcoreguidelines-pro-type-member-init,cppcoreguidelines-slicing,google-default-arguments,google-explicit-constructor,google-runtime-operator,hicpp-exception-baseclass,hicpp-multiway-paths-covered,misc-misplaced-const,misc-new-delete-overloads,misc-no-recursion,misc-non-copyable-objects,misc-throw-by-value-catch-by-reference,misc-unconventional-assign-operator,misc-uniqueptr-reset-release,modernize-avoid-bind,modernize-concat-nested-namespaces,modernize-deprecated-headers,modernize-deprecated-ios-base-aliases,modernize-loop-convert,modernize-make-shared,modernize-make-unique,modernize-pass-by-value,modernize-raw-string-literal,modernize-redundant-void-arg,modernize-replace-auto-ptr,modernize-replace-disallow-copy-and-assign-macro,modernize-replace-random-shuffle,modernize-return-braced-init-list,modernize-shrink-to-fit,modernize-unary-static-assert,modernize-use-auto,modernize-use-bool-literals,modernize-use-emplace,modernize-use-equals-default,modernize-use-equals-delete,modernize-use-noexcept,modernize-use-nullptr,modernize-use-override,modernize-use-transparent-functors,modernize-use-uncaught-exceptions,mpi-buffer-deref,mpi-type-mismatch,openmp-use-default-none,performance-faster-string-find,performance-for-range-copy,performance-implicit-conversion-in-loop,performance-inefficient-algorithm,performance-inefficient-string-concatenation,performance-inefficient-vector-operation,performance-move-const-arg,performance-move-constructor-init,performance-no-automatic-move,performance-noexcept-move-constructor,performance-trivially-destructible,performance-type-promotion-in-math-fn,performance-unnecessary-copy-initialization,performance-unnecessary-value-param,portability-simd-intrinsics,readability-avoid-const-params-in-decls,readability-const-return-type,readability-container-size-empty,readability-delete-null-pointer,readability-deleted-default,readability-inconsistent-declaration-parameter-name,readability-misleading-indentation,readability-misplaced-array-index,readability-non-const-parameter,readability-redundant-control-flow,readability-redundant-declaration,readability-redundant-function-ptr-dereference,readability-redundant-smartptr-get,readability-redundant-string-cstr,readability-redundant-string-init,readability-simplify-subscript-expr,readability-static-accessed-through-instance,readability-static-definition-in-anonymous-namespace,readability-string-compare,readability-uniqueptr-delete-release,readability-use-anyofallof,-misc-no-recursion,bugprone-easily-swappable-parameters,bugprone-suspicious-memory-comparison,cert-exp42-c,cert-flp37-c,cppcoreguidelines-virtual-class-destructor,readability-container-data-pointer,readability-identifier-length,readability-suspicious-call-argument" />
</scope>
<option name="clangTidyChecks" value="-*,bugprone-argument-comment,bugprone-assert-side-effect,bugprone-bad-signal-to-kill-thread,bugprone-branch-clone,bugprone-copy-constructor-init,bugprone-dangling-handle,bugprone-dynamic-static-initializers,bugprone-fold-init-type,bugprone-forward-declaration-namespace,bugprone-forwarding-reference-overload,bugprone-inaccurate-erase,bugprone-incorrect-roundings,bugprone-integer-division,bugprone-lambda-function-name,bugprone-macro-parentheses,bugprone-macro-repeated-side-effects,bugprone-misplaced-operator-in-strlen-in-alloc,bugprone-misplaced-pointer-arithmetic-in-alloc,bugprone-misplaced-widening-cast,bugprone-move-forwarding-reference,bugprone-multiple-statement-macro,bugprone-no-escape,bugprone-not-null-terminated-result,bugprone-parent-virtual-call,bugprone-posix-return,bugprone-sizeof-container,bugprone-sizeof-expression,bugprone-spuriously-wake-up-functions,bugprone-string-constructor,bugprone-string-integer-assignment,bugprone-string-literal-with-embedded-nul,bugprone-suspicious-enum-usage,bugprone-suspicious-include,bugprone-suspicious-memset-usage,bugprone-suspicious-missing-comma,bugprone-suspicious-semicolon,bugprone-suspicious-string-compare,bugprone-swapped-arguments,bugprone-terminating-continue,bugprone-throw-keyword-missing,bugprone-too-small-loop-variable,bugprone-undefined-memory-manipulation,bugprone-undelegated-constructor,bugprone-unhandled-self-assignment,bugprone-unused-raii,bugprone-unused-return-value,bugprone-use-after-move,bugprone-virtual-near-miss,cert-dcl21-cpp,cert-dcl58-cpp,cert-err34-c,cert-err52-cpp,cert-err58-cpp,cert-err60-cpp,cert-flp30-c,cert-msc50-cpp,cert-msc51-cpp,cppcoreguidelines-interfaces-global-init,cppcoreguidelines-narrowing-conversions,cppcoreguidelines-pro-type-member-init,cppcoreguidelines-slicing,google-default-arguments,google-explicit-constructor,google-runtime-operator,hicpp-exception-baseclass,hicpp-multiway-paths-covered,misc-misplaced-const,misc-new-delete-overloads,misc-no-recursion,misc-non-copyable-objects,misc-throw-by-value-catch-by-reference,misc-unconventional-assign-operator,misc-uniqueptr-reset-release,modernize-avoid-bind,modernize-concat-nested-namespaces,modernize-deprecated-headers,modernize-deprecated-ios-base-aliases,modernize-loop-convert,modernize-make-shared,modernize-make-unique,modernize-pass-by-value,modernize-raw-string-literal,modernize-redundant-void-arg,modernize-replace-auto-ptr,modernize-replace-disallow-copy-and-assign-macro,modernize-replace-random-shuffle,modernize-return-braced-init-list,modernize-shrink-to-fit,modernize-unary-static-assert,modernize-use-auto,modernize-use-bool-literals,modernize-use-emplace,modernize-use-equals-default,modernize-use-equals-delete,modernize-use-noexcept,modernize-use-nullptr,modernize-use-override,modernize-use-transparent-functors,modernize-use-uncaught-exceptions,mpi-buffer-deref,mpi-type-mismatch,openmp-use-default-none,performance-faster-string-find,performance-for-range-copy,performance-implicit-conversion-in-loop,performance-inefficient-algorithm,performance-inefficient-string-concatenation,performance-inefficient-vector-operation,performance-move-const-arg,performance-move-constructor-init,performance-no-automatic-move,performance-noexcept-move-constructor,performance-trivially-destructible,performance-type-promotion-in-math-fn,performance-unnecessary-copy-initialization,performance-unnecessary-value-param,portability-simd-intrinsics,readability-avoid-const-params-in-decls,readability-const-return-type,readability-container-size-empty,readability-delete-null-pointer,readability-deleted-default,readability-inconsistent-declaration-parameter-name,readability-misleading-indentation,readability-misplaced-array-index,readability-non-const-parameter,readability-redundant-control-flow,readability-redundant-declaration,readability-redundant-function-ptr-dereference,readability-redundant-smartptr-get,readability-redundant-string-cstr,readability-redundant-string-init,readability-simplify-subscript-expr,readability-static-accessed-through-instance,readability-static-definition-in-anonymous-namespace,readability-string-compare,readability-uniqueptr-delete-release,readability-use-anyofallof,-misc-no-recursion" />
<option name="clangTidyChecks" value="-*,bugprone-argument-comment,bugprone-assert-side-effect,bugprone-bad-signal-to-kill-thread,bugprone-branch-clone,bugprone-copy-constructor-init,bugprone-dangling-handle,bugprone-dynamic-static-initializers,bugprone-fold-init-type,bugprone-forward-declaration-namespace,bugprone-forwarding-reference-overload,bugprone-inaccurate-erase,bugprone-incorrect-roundings,bugprone-integer-division,bugprone-macro-parentheses,bugprone-macro-repeated-side-effects,bugprone-misplaced-operator-in-strlen-in-alloc,bugprone-misplaced-pointer-arithmetic-in-alloc,bugprone-misplaced-widening-cast,bugprone-move-forwarding-reference,bugprone-multiple-statement-macro,bugprone-no-escape,bugprone-not-null-terminated-result,bugprone-parent-virtual-call,bugprone-posix-return,bugprone-sizeof-container,bugprone-sizeof-expression,bugprone-spuriously-wake-up-functions,bugprone-string-constructor,bugprone-string-integer-assignment,bugprone-string-literal-with-embedded-nul,bugprone-suspicious-enum-usage,bugprone-suspicious-include,bugprone-suspicious-memset-usage,bugprone-suspicious-missing-comma,bugprone-suspicious-semicolon,bugprone-suspicious-string-compare,bugprone-swapped-arguments,bugprone-terminating-continue,bugprone-throw-keyword-missing,bugprone-too-small-loop-variable,bugprone-undefined-memory-manipulation,bugprone-undelegated-constructor,bugprone-unhandled-self-assignment,bugprone-unused-raii,bugprone-unused-return-value,bugprone-use-after-move,bugprone-virtual-near-miss,cert-dcl21-cpp,cert-dcl58-cpp,cert-err34-c,cert-err52-cpp,cert-err58-cpp,cert-err60-cpp,cert-flp30-c,cert-msc50-cpp,cert-msc51-cpp,cppcoreguidelines-interfaces-global-init,cppcoreguidelines-narrowing-conversions,cppcoreguidelines-pro-type-member-init,cppcoreguidelines-slicing,google-default-arguments,google-explicit-constructor,google-runtime-operator,hicpp-exception-baseclass,hicpp-multiway-paths-covered,misc-misplaced-const,misc-new-delete-overloads,misc-no-recursion,misc-non-copyable-objects,misc-throw-by-value-catch-by-reference,misc-unconventional-assign-operator,misc-uniqueptr-reset-release,modernize-avoid-bind,modernize-concat-nested-namespaces,modernize-deprecated-headers,modernize-deprecated-ios-base-aliases,modernize-loop-convert,modernize-make-shared,modernize-make-unique,modernize-pass-by-value,modernize-raw-string-literal,modernize-redundant-void-arg,modernize-replace-auto-ptr,modernize-replace-disallow-copy-and-assign-macro,modernize-replace-random-shuffle,modernize-return-braced-init-list,modernize-shrink-to-fit,modernize-unary-static-assert,modernize-use-auto,modernize-use-bool-literals,modernize-use-emplace,modernize-use-equals-default,modernize-use-equals-delete,modernize-use-noexcept,modernize-use-nullptr,modernize-use-override,modernize-use-transparent-functors,modernize-use-uncaught-exceptions,mpi-buffer-deref,mpi-type-mismatch,openmp-use-default-none,performance-faster-string-find,performance-for-range-copy,performance-implicit-conversion-in-loop,performance-inefficient-algorithm,performance-inefficient-string-concatenation,performance-inefficient-vector-operation,performance-move-const-arg,performance-move-constructor-init,performance-no-automatic-move,performance-noexcept-move-constructor,performance-trivially-destructible,performance-type-promotion-in-math-fn,performance-unnecessary-copy-initialization,performance-unnecessary-value-param,portability-simd-intrinsics,readability-avoid-const-params-in-decls,readability-const-return-type,readability-container-size-empty,readability-delete-null-pointer,readability-deleted-default,readability-inconsistent-declaration-parameter-name,readability-misleading-indentation,readability-misplaced-array-index,readability-non-const-parameter,readability-redundant-control-flow,readability-redundant-declaration,readability-redundant-function-ptr-dereference,readability-redundant-smartptr-get,readability-redundant-string-cstr,readability-redundant-string-init,readability-simplify-subscript-expr,readability-static-accessed-through-instance,readability-static-definition-in-anonymous-namespace,readability-string-compare,readability-uniqueptr-delete-release,readability-use-anyofallof,-misc-no-recursion" />
<option name="preferClangTidyFilesOverIDESettings" value="false" />
</inspection_tool>
<inspection_tool class="ConstructionIsNotAllowed" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="DuplicateSwitchCase" enabled="false" level="WARNING" enabled_by_default="false" />

View File

@ -1,5 +1,5 @@
<!-- THIS FILE IS AUTO GENERATED; DO NOT EDIT BY HAND -->
<h4><em>last updated on 2021-11-26 for Ballistica version 1.6.6 build 20410</em></h4>
<h4><em>last updated on 2021-12-17 for Ballistica version 1.6.6 build 20414</em></h4>
<p>This page documents the Python classes and functions in the 'ba' module,
which are the ones most relevant to modding in Ballistica. If you come across something you feel should be included here or could be better explained, please <a href="mailto:support@froemling.net">let me know</a>. Happy modding!</p>
<hr>

View File

@ -3,12 +3,12 @@
all: resources
# This section is autogenerated; do not edit by hand.
#__AUTOGENERATED_PUBLIC_BEGIN__
#__AUTOGENERATED_PUBLIC_END__
# __AUTOGENERATED_PUBLIC_BEGIN__
# __AUTOGENERATED_PUBLIC_END__
# This section is autogenerated; do not edit by hand.
#__AUTOGENERATED_PRIVATE_BEGIN__
# __AUTOGENERATED_PRIVATE_BEGIN__
resources: \
../ballisticacore-windows/Generic/BallisticaCore.ico
@ -26,4 +26,4 @@ efrocache-list:
efrocache-build: resources
#__AUTOGENERATED_PRIVATE_END__
# __AUTOGENERATED_PRIVATE_END__

View File

@ -144,6 +144,10 @@ AppConfig::AppConfig() {
SetupEntries();
}
// Clion think all calls of this are unreachable.
#pragma clang diagnostic push
#pragma ide diagnostic ignored "UnreachableCallsOfFunction"
template <typename T>
void AppConfig::CompleteMap(const T& entry_map) {
for (auto&& i : entry_map) {
@ -165,6 +169,8 @@ void AppConfig::CompleteMap(const T& entry_map) {
#endif
}
#pragma clang diagnostic pop
void AppConfig::SetupEntries() {
// Register all our typed entries.
float_entries_[FloatID::kScreenGamma] = FloatEntry("Screen Gamma", 1.0F);

View File

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

View File

@ -291,12 +291,12 @@ void Player::RunInput(InputType type, float value) {
}
} else {
if (arg >= threshold) {
if (!left_held_ && !up_held_ && !down_held_) {
if (!up_held_ && !down_held_) {
right_held_ = true;
RunInput(InputType::kRightPress);
}
} else if (arg <= -threshold) {
if (!right_held_ && !up_held_ && !down_held_) {
if (!up_held_ && !down_held_) {
left_held_ = true;
RunInput(InputType::kLeftPress);
}
@ -319,12 +319,12 @@ void Player::RunInput(InputType type, float value) {
}
} else {
if (arg <= -threshold) {
if (!left_held_ && !right_held_ && !up_held_) {
if (!left_held_ && !right_held_) {
down_held_ = true;
RunInput(InputType::kDownPress);
}
} else if (arg >= threshold) {
if (!left_held_ && !up_held_ && !right_held_) {
if (!left_held_ && !right_held_) {
up_held_ = true;
RunInput(InputType::kUpPress);
}

View File

@ -176,8 +176,14 @@ auto TimerList::NewTimer(TimerMedium current_time, TimerMedium length,
auto* t = new Timer(this, next_timer_id_++, current_time, length, offset,
repeat_count);
t->runnable_ = runnable;
// Clion (correctly) points out that t may get deallocated in this call,
// but the call returns nullptr in that case.
#pragma clang diagnostic push
#pragma ide diagnostic ignored "DanglingPointer"
t = SubmitTimer(t);
return t;
#pragma clang diagnostic pop
}
auto TimerList::GetTimeToNextExpire(TimerMedium current_time) -> TimerMedium {
@ -229,7 +235,9 @@ auto TimerList::SubmitTimer(Timer* t) -> Timer* {
return nullptr;
} else {
// Its still alive. Shove it back in line and tell it to keep working.
if (!t->initial_ && t->repeat_count_ > 0) t->repeat_count_--;
if (!t->initial_ && t->repeat_count_ > 0) {
t->repeat_count_--;
}
t->initial_ = false;
// No drift.

View File

@ -127,21 +127,31 @@ void GraphicsServer::PreprocessRenderFrameDef(FrameDef* frame_def) {
assert(InGraphicsThread());
// Now let the renderer do any preprocess passes (shadows, etc).
renderer_->PreprocessFrameDef(frame_def);
assert(renderer_);
if (renderer_ != nullptr) {
renderer_->PreprocessFrameDef(frame_def);
}
}
// Does the default drawing to the screen, either from the left or right stereo
// eye or in mono.
void GraphicsServer::DrawRenderFrameDef(FrameDef* frame_def, int eye) {
renderer_->RenderFrameDef(frame_def);
assert(renderer_);
if (renderer_) {
renderer_->RenderFrameDef(frame_def);
}
}
// Clean up the frame_def once done drawing it.
void GraphicsServer::FinishRenderFrameDef(FrameDef* frame_def) {
renderer_->FinishFrameDef(frame_def);
assert(renderer_);
if (renderer_) {
renderer_->FinishFrameDef(frame_def);
// Let the app know a frame render is complete (it may need to do a swap/etc).
g_app->DidFinishRenderingFrame(frame_def);
// Let the app know a frame render is complete (it may need to do a
// swap/etc).
g_app->DidFinishRenderingFrame(frame_def);
}
}
void GraphicsServer::TryRender() {
@ -514,6 +524,10 @@ void GraphicsServer::VideoResize(float h, float v) {
// FIXME: Shouldn't have android-specific code in here.
void GraphicsServer::HandlePushAndroidRes(const std::string& android_res) {
if (g_buildconfig.ostype_android()) {
assert(renderer_);
if (renderer_ == nullptr) {
return;
}
// We push android res to the java layer here. We don't actually worry
// about screen-size-changed callbacks and whatnot, since those will happen
// automatically once things actually change. We just want to be sure that

View File

@ -54,6 +54,12 @@ auto PythonClassCollideModel::GetCollideModel(bool doraise) const
return collide_model;
}
// Clion makes some incorrect inferences here.
#pragma clang diagnostic push
#pragma ide diagnostic ignored "UnreachableCode"
#pragma ide diagnostic ignored "ConstantConditionsOC"
#pragma ide diagnostic ignored "ConstantFunctionResult"
auto PythonClassCollideModel::tp_new(PyTypeObject* type, PyObject* args,
PyObject* kwds) -> PyObject* {
auto* self =
@ -67,10 +73,6 @@ auto PythonClassCollideModel::tp_new(PyTypeObject* type, PyObject* args,
+ GetCurrentThreadName() + ").");
}
// Clion incorrectly things s_create_empty will always be false.
#pragma clang diagnostic push
#pragma ide diagnostic ignored "UnreachableCode"
#pragma ide diagnostic ignored "ConstantConditionsOC"
if (!s_create_empty_) {
throw Exception(
"Can't instantiate CollideModels directly; use "
@ -78,11 +80,12 @@ auto PythonClassCollideModel::tp_new(PyTypeObject* type, PyObject* args,
}
self->collide_model_ = new Object::Ref<CollideModel>();
BA_PYTHON_NEW_CATCH;
#pragma clang diagnostic pop
}
return reinterpret_cast<PyObject*>(self);
}
#pragma clang diagnostic pop
void PythonClassCollideModel::Delete(Object::Ref<CollideModel>* ref) {
assert(InGameThread());
// if we're the py-object for a collide_model, clear them out

View File

@ -52,6 +52,11 @@ auto PythonClassData::GetData(bool doraise) const -> Data* {
}
return data;
}
// Clion makes some incorrect inferences here.
#pragma clang diagnostic push
#pragma ide diagnostic ignored "UnreachableCode"
#pragma ide diagnostic ignored "ConstantConditionsOC"
#pragma ide diagnostic ignored "ConstantFunctionResult"
auto PythonClassData::tp_new(PyTypeObject* type, PyObject* args, PyObject* kwds)
-> PyObject* {
@ -65,10 +70,6 @@ auto PythonClassData::tp_new(PyTypeObject* type, PyObject* args, PyObject* kwds)
+ GetCurrentThreadName() + ").");
}
// Clion incorrectly things s_create_empty will always be false.
#pragma clang diagnostic push
#pragma ide diagnostic ignored "UnreachableCode"
#pragma ide diagnostic ignored "ConstantConditionsOC"
if (!s_create_empty_) {
throw Exception(
"Can't instantiate Datas directly; use ba.getdata() to get "
@ -76,10 +77,10 @@ auto PythonClassData::tp_new(PyTypeObject* type, PyObject* args, PyObject* kwds)
}
self->data_ = new Object::Ref<Data>();
BA_PYTHON_NEW_CATCH;
#pragma clang diagnostic pop
}
return reinterpret_cast<PyObject*>(self);
}
#pragma clang diagnostic pop
void PythonClassData::Delete(Object::Ref<Data>* ref) {
assert(InGameThread());

View File

@ -53,6 +53,12 @@ auto PythonClassModel::GetModel(bool doraise) const -> Model* {
return model;
}
// Clion makes some incorrect inferences here.
#pragma clang diagnostic push
#pragma ide diagnostic ignored "UnreachableCode"
#pragma ide diagnostic ignored "ConstantConditionsOC"
#pragma ide diagnostic ignored "ConstantFunctionResult"
auto PythonClassModel::tp_new(PyTypeObject* type, PyObject* args,
PyObject* kwds) -> PyObject* {
auto* self = reinterpret_cast<PythonClassModel*>(type->tp_alloc(type, 0));
@ -64,10 +70,6 @@ auto PythonClassModel::tp_new(PyTypeObject* type, PyObject* args,
+ " objects must only be created in the game thread (current is ("
+ GetCurrentThreadName() + ").");
}
// Clion incorrectly things s_create_empty will always be false.
#pragma clang diagnostic push
#pragma ide diagnostic ignored "UnreachableCode"
#pragma ide diagnostic ignored "ConstantConditionsOC"
if (!s_create_empty_) {
throw Exception(
"Can't instantiate Models directly; use ba.getmodel() to get "
@ -75,11 +77,12 @@ auto PythonClassModel::tp_new(PyTypeObject* type, PyObject* args,
}
self->model_ = new Object::Ref<Model>();
BA_PYTHON_NEW_CATCH;
#pragma clang diagnostic pop
}
return reinterpret_cast<PyObject*>(self);
}
#pragma clang diagnostic pop
void PythonClassModel::Delete(Object::Ref<Model>* ref) {
assert(InGameThread());

View File

@ -52,6 +52,12 @@ auto PythonClassSound::GetSound(bool doraise) const -> Sound* {
return sound;
}
// Clion makes some incorrect inferences here.
#pragma clang diagnostic push
#pragma ide diagnostic ignored "UnreachableCode"
#pragma ide diagnostic ignored "ConstantConditionsOC"
#pragma ide diagnostic ignored "ConstantFunctionResult"
auto PythonClassSound::tp_new(PyTypeObject* type, PyObject* args,
PyObject* kwds) -> PyObject* {
auto* self = reinterpret_cast<PythonClassSound*>(type->tp_alloc(type, 0));
@ -63,10 +69,6 @@ auto PythonClassSound::tp_new(PyTypeObject* type, PyObject* args,
+ " objects must only be created in the game thread (current is ("
+ GetCurrentThreadName() + ").");
}
// Clion incorrectly things s_create_empty will always be false.
#pragma clang diagnostic push
#pragma ide diagnostic ignored "UnreachableCode"
#pragma ide diagnostic ignored "ConstantConditionsOC"
if (!s_create_empty_) {
throw Exception(
"Can't instantiate Sounds directly; use ba.getsound() to get "
@ -74,11 +76,12 @@ auto PythonClassSound::tp_new(PyTypeObject* type, PyObject* args,
}
self->sound_ = new Object::Ref<Sound>();
BA_PYTHON_NEW_CATCH;
#pragma clang diagnostic pop
}
return reinterpret_cast<PyObject*>(self);
}
#pragma clang diagnostic pop
void PythonClassSound::Delete(Object::Ref<Sound>* ref) {
assert(InGameThread());

View File

@ -139,7 +139,13 @@ auto PythonClassWidget::GetChildren(PythonClassWidget* self) -> PyObject* {
}
PyObject* py_list = PyList_New(0);
auto* cw = dynamic_cast<ContainerWidget*>(w);
// Clion seems to think dynamic_casting a Widget* to a ContainerWidget*
// will always succeed. Go home Clion; you're drunk.
#pragma clang diagnostic push
#pragma ide diagnostic ignored "ConstantConditionsOC"
if (cw) {
#pragma clang diagnostic pop
for (auto&& i : cw->widgets()) {
assert(i.exists());
PyList_Append(py_list, i->BorrowPyRef());
@ -156,7 +162,13 @@ auto PythonClassWidget::GetSelectedChild(PythonClassWidget* self) -> PyObject* {
throw Exception(PyExcType::kWidgetNotFound);
}
auto* cw = dynamic_cast<ContainerWidget*>(w);
// Clion seems to think dynamic_casting a Widget* to a ContainerWidget*
// will always succeed. Go home Clion; you're drunk.
#pragma clang diagnostic push
#pragma ide diagnostic ignored "ConstantConditionsOC"
if (cw) {
#pragma clang diagnostic pop
Widget* selected_widget = cw->selected_widget();
if (selected_widget) return selected_widget->NewPyRef();
}

View File

@ -9,7 +9,7 @@ clean:
# This section is autogenerated; do not edit by hand.
#__AUTOGENERATED_PUBLIC_BEGIN__
# __AUTOGENERATED_PUBLIC_BEGIN__
sources: \
../../assets/src/ba_data/python/ba/_generated/__init__.py \
@ -29,10 +29,10 @@ sources: \
../../assets/src/ba_data/python/ba/_generated/enums.py : ../ballistica/core/types.h ../../tools/batools/pythonenumsmodule.py
@$(PCOMMAND) gen_python_enums_module $< $@
#__AUTOGENERATED_PUBLIC_END__
# __AUTOGENERATED_PUBLIC_END__
# This section is autogenerated; do not edit by hand.
#__AUTOGENERATED_PRIVATE_BEGIN__
# __AUTOGENERATED_PRIVATE_BEGIN__
# Note: we include our public targets in efrocache even
# though they are buildable in public. This allows us to
@ -47,4 +47,4 @@ efrocache-list:
efrocache-build: sources
#__AUTOGENERATED_PRIVATE_END__
# __AUTOGENERATED_PRIVATE_END__

View File

@ -429,7 +429,7 @@ def test_protocol_creation() -> None:
response_types={0: _TResp1})
def test_sender_module_single_embedded() -> None:
def test_sender_module_single_emb() -> None:
"""Test generation of protocol-specific sender modules for typing/etc."""
# NOTE: Ideally we should be testing efro.message.create_sender_module()
# here, but it requires us to pass code which imports this test module
@ -462,7 +462,7 @@ def test_sender_module_single_embedded() -> None:
' See test stdout for new code.')
def test_sender_module_sync_embedded() -> None:
def test_sender_module_sync_emb() -> None:
"""Test generation of protocol-specific sender modules for typing/etc."""
# NOTE: Ideally we should be testing efro.message.create_sender_module()
# here, but it requires us to pass code which imports this test module
@ -495,7 +495,7 @@ def test_sender_module_sync_embedded() -> None:
' See test stdout for new code.')
def test_sender_module_async_embedded() -> None:
def test_sender_module_async_emb() -> None:
"""Test generation of protocol-specific sender modules for typing/etc."""
# NOTE: Ideally we should be testing efro.message.create_sender_module()
# here, but it requires us to pass code which imports this test module
@ -528,7 +528,7 @@ def test_sender_module_async_embedded() -> None:
' See test stdout for new code.')
def test_sender_module_both_embedded() -> None:
def test_sender_module_both_emb() -> None:
"""Test generation of protocol-specific sender modules for typing/etc."""
# NOTE: Ideally we should be testing efro.message.create_sender_module()
# here, but it requires us to pass code which imports this test module
@ -561,7 +561,7 @@ def test_sender_module_both_embedded() -> None:
' See test stdout for new code.')
def test_receiver_module_single_embedded() -> None:
def test_receiver_module_single_emb() -> None:
"""Test generation of protocol-specific sender modules for typing/etc."""
# NOTE: Ideally we should be testing efro.message.create_receiver_module()
# here, but it requires us to pass code which imports this test module
@ -595,7 +595,7 @@ def test_receiver_module_single_embedded() -> None:
' See test stdout for new code.')
def test_receiver_module_sync_embedded() -> None:
def test_receiver_module_sync_emb() -> None:
"""Test generation of protocol-specific sender modules for typing/etc."""
# NOTE: Ideally we should be testing efro.message.create_receiver_module()
# here, but it requires us to pass code which imports this test module
@ -628,7 +628,7 @@ def test_receiver_module_sync_embedded() -> None:
' See test stdout for new code.')
def test_receiver_module_async_embedded() -> None:
def test_receiver_module_async_emb() -> None:
"""Test generation of protocol-specific sender modules for typing/etc."""
# NOTE: Ideally we should be testing efro.message.create_receiver_module()
# here, but it requires us to pass code which imports this test module

View File

@ -173,7 +173,7 @@ def _get_py_targets_subset(all_targets: set[str], subset: str,
' \\\n '.join(pyc_targets) + '\n')
# We transform all non-public targets into efrocache-fetches in public.
efc = '' if subset.startswith('public') else '#__EFROCACHE_TARGET__\n'
efc = '' if subset.startswith('public') else '# __EFROCACHE_TARGET__\n'
out += ('\n# Rule to copy src asset scripts to dst.\n'
'# (and make non-writable so I\'m less likely to '
@ -259,7 +259,7 @@ def _get_extras_targets_win(all_targets: set[str], platform: str) -> str:
# We transform all these targets into efrocache-fetches in public.
out += ('\n# Rule to copy src extras to build.\n'
f'#__EFROCACHE_TARGET__\n'
f'# __EFROCACHE_TARGET__\n'
f'$(EXTRAS_TARGETS_WIN_{p_up}) : build/% :'
' src/%\n'
'\t@echo Copying file: $@\n'
@ -287,10 +287,10 @@ def update_assets_makefile(projroot: str, check: bool) -> None:
original = infile.read()
lines = original.splitlines()
auto_start_public = lines.index('#__AUTOGENERATED_PUBLIC_BEGIN__')
auto_end_public = lines.index('#__AUTOGENERATED_PUBLIC_END__')
auto_start_private = lines.index('#__AUTOGENERATED_PRIVATE_BEGIN__')
auto_end_private = lines.index('#__AUTOGENERATED_PRIVATE_END__')
auto_start_public = lines.index('# __AUTOGENERATED_PUBLIC_BEGIN__')
auto_end_public = lines.index('# __AUTOGENERATED_PUBLIC_END__')
auto_start_private = lines.index('# __AUTOGENERATED_PRIVATE_BEGIN__')
auto_end_private = lines.index('# __AUTOGENERATED_PRIVATE_END__')
all_targets_public: set[str] = set()
all_targets_private: set[str] = set()

View File

@ -32,7 +32,7 @@ class PipRequirement:
# entries; this accounts for manual installations or other nonstandard setups.
PIP_REQUIREMENTS = [
PipRequirement(modulename='pylint', minversion=[2, 12, 1]),
PipRequirement(modulename='mypy', minversion=[0, 910]),
PipRequirement(modulename='mypy', minversion=[0, 920]),
PipRequirement(modulename='yapf', minversion=[0, 31, 0]),
PipRequirement(modulename='cpplint', minversion=[1, 5, 5]),
PipRequirement(modulename='pytest', minversion=[6, 2, 4]),
@ -788,7 +788,7 @@ def filter_server_config(projroot: str, infilepath: str) -> str:
"""Add commented-out config options to a server config."""
with open(infilepath, encoding='utf-8') as infile:
cfg = infile.read()
return cfg.replace('#__CONFIG_TEMPLATE_VALUES__',
return cfg.replace('# __CONFIG_TEMPLATE_VALUES__',
_get_server_config_template_yaml(projroot))

View File

@ -191,10 +191,10 @@ def update(projroot: str, check: bool) -> None:
all_dsts_public: set[str] = set()
all_dsts_private: set[str] = set()
auto_start_public = lines.index('#__AUTOGENERATED_PUBLIC_BEGIN__')
auto_end_public = lines.index('#__AUTOGENERATED_PUBLIC_END__')
auto_start_private = lines.index('#__AUTOGENERATED_PRIVATE_BEGIN__')
auto_end_private = lines.index('#__AUTOGENERATED_PRIVATE_END__')
auto_start_public = lines.index('# __AUTOGENERATED_PUBLIC_BEGIN__')
auto_end_public = lines.index('# __AUTOGENERATED_PUBLIC_END__')
auto_start_private = lines.index('# __AUTOGENERATED_PRIVATE_BEGIN__')
auto_end_private = lines.index('# __AUTOGENERATED_PRIVATE_END__')
# Public targets (full sources available in public)
targets: list[Target] = []
@ -219,7 +219,7 @@ def update(projroot: str, check: bool) -> None:
our_lines_private_1 = (
_empty_line_if(bool(targets)) +
_emit_group_build_lines(targets, basename) +
['#__EFROCACHE_TARGET__\n' + t.emit() for t in targets] + [
['# __EFROCACHE_TARGET__\n' + t.emit() for t in targets] + [
'\n# Note: we include our public targets in efrocache even\n'
'# though they are buildable in public. This allows us to\n'
'# fetch them on Windows to bootstrap binary CI builds in\n'
@ -231,11 +231,11 @@ def update(projroot: str, check: bool) -> None:
targets = []
basename = 'private-internal'
_add_python_embedded_targets_internal(targets)
our_lines_private_2 = (['#__PUBSYNC_STRIP_BEGIN__'] +
our_lines_private_2 = (['# __PUBSYNC_STRIP_BEGIN__'] +
_empty_line_if(bool(targets)) +
_emit_group_build_lines(targets, basename) +
[t.emit()
for t in targets] + ['#__PUBSYNC_STRIP_END__'])
[t.emit() for t in targets] +
['# __PUBSYNC_STRIP_END__'])
our_lines_private = our_lines_private_1 + our_lines_private_2
filtered = (lines[:auto_start_public + 1] + our_lines_public +

View File

@ -366,10 +366,10 @@ def update(projroot: str, check: bool) -> None:
original = infile.read()
lines = original.splitlines()
auto_start_public = lines.index('#__AUTOGENERATED_PUBLIC_BEGIN__')
auto_end_public = lines.index('#__AUTOGENERATED_PUBLIC_END__')
auto_start_private = lines.index('#__AUTOGENERATED_PRIVATE_BEGIN__')
auto_end_private = lines.index('#__AUTOGENERATED_PRIVATE_END__')
auto_start_public = lines.index('# __AUTOGENERATED_PUBLIC_BEGIN__')
auto_end_public = lines.index('# __AUTOGENERATED_PUBLIC_END__')
auto_start_private = lines.index('# __AUTOGENERATED_PRIVATE_BEGIN__')
auto_end_private = lines.index('# __AUTOGENERATED_PRIVATE_END__')
# Public targets (full sources available in public)
targets: list[Target] = []
@ -392,7 +392,7 @@ def update(projroot: str, check: bool) -> None:
_empty_line_if(bool(targets)) +
_emit_group_build_lines(targets, basename) +
_emit_group_clean_lines(targets, basename) +
['#__EFROCACHE_TARGET__\n' + t.emit()
['# __EFROCACHE_TARGET__\n' + t.emit()
for t in targets] + _emit_group_efrocache_lines(targets))
# Private-internal targets (not available at all in public)
@ -410,12 +410,12 @@ def update(projroot: str, check: bool) -> None:
_add_apple_tv_3d_icon(targets)
_add_apple_tv_store_icon(targets)
_add_google_vr_icon(targets)
our_lines_private_2 = (['#__PUBSYNC_STRIP_BEGIN__'] +
our_lines_private_2 = (['# __PUBSYNC_STRIP_BEGIN__'] +
_empty_line_if(bool(targets)) +
_emit_group_build_lines(targets, basename) +
_emit_group_clean_lines(targets, basename) +
[t.emit()
for t in targets] + ['#__PUBSYNC_STRIP_END__'])
[t.emit() for t in targets] +
['# __PUBSYNC_STRIP_END__'])
our_lines_private = our_lines_private_1 + our_lines_private_2
filtered = (lines[:auto_start_public + 1] + our_lines_public +

View File

@ -45,7 +45,7 @@ def dataclass_to_dict(obj: Any,
the ability to do a lossless round-trip with data).
If coerce_to_float is True, integer values present on float typed fields
will be converted to floats in the dict output. If False, a TypeError
will be converted to float in the dict output. If False, a TypeError
will be triggered.
"""
@ -94,10 +94,10 @@ def dataclass_from_dict(cls: type[T],
(as this would break the ability to do a lossless round-trip with data).
If coerce_to_float is True, int values passed for float typed fields
will be converted to float values. Otherwise a TypeError is raised.
will be converted to float values. Otherwise, a TypeError is raised.
If allow_unknown_attrs is False, AttributeErrors will be raised for
attributes present in the dict but not on the data class. Otherwise they
attributes present in the dict but not on the data class. Otherwise, they
will be preserved as part of the instance and included if it is
exported back to a dict, unless discard_unknown_attrs is True, in which
case they will simply be discarded.

View File

@ -14,7 +14,7 @@ from typing import _AnnotatedAlias # type: ignore
_pytz_utc: Any
# We don't *require* pytz but we want to support it for tzinfos if available.
# We don't *require* pytz, but we want to support it for tzinfos if available.
try:
import pytz
_pytz_utc = pytz.utc
@ -126,7 +126,7 @@ class IOAttrs:
# Turning off store_default requires the field to have either
# a default_factory or a default
if not self.store_default:
default_factory: Any = field.default_factory # type: ignore
default_factory: Any = field.default_factory
if (default_factory is dataclasses.MISSING
and field.default is dataclasses.MISSING):
raise TypeError(f'Field {field.name} of {cls} has'
@ -163,7 +163,7 @@ def _get_origin(anntype: Any) -> Any:
def _parse_annotated(anntype: Any) -> tuple[Any, Optional[IOAttrs]]:
"""Parse Annotated() constructs, returning annotated type & IOAttrs."""
# If we get an Annotated[foo, bar, eep] we take
# foo as the actual type and we look for IOAttrs instances in
# foo as the actual type, and we look for IOAttrs instances in
# bar/eep to affect our behavior.
ioattrs: Optional[IOAttrs] = None
if isinstance(anntype, _AnnotatedAlias):

View File

@ -70,14 +70,14 @@ class _Inputter(Generic[T]):
return value
if origin is typing.Union:
# Currently the only unions we support are None/Value
# Currently, the only unions we support are None/Value
# (translated from Optional), which we verified on prep.
# So let's treat this as a simple optional case.
if value is None:
return None
childanntypes_l = [
c for c in typing.get_args(anntype) if c is not type(None)
]
] # noqa (pycodestyle complains about *is* with type)
assert len(childanntypes_l) == 1
return self._value_from_input(cls, fieldpath, childanntypes_l[0],
value, ioattrs)
@ -127,7 +127,7 @@ class _Inputter(Generic[T]):
"""Given input data, returns bytes."""
import base64
# For firestore, bytes are passed as-is. Otherwise they're encoded
# For firestore, bytes are passed as-is. Otherwise, they're encoded
# as base64.
if self._codec is Codec.FIRESTORE:
if not isinstance(value, bytes):
@ -268,7 +268,7 @@ class _Inputter(Generic[T]):
cls, fieldpath, valanntype, val, ioattrs)
elif issubclass(keyanntype, Enum):
# In prep we verified that all these enums' values have
# In prep, we verified that all these enums' values have
# the same type, so we can just look at the first to see if
# this is a string enum or an int enum.
enumvaltype = type(next(iter(keyanntype)).value)

View File

@ -60,7 +60,7 @@ class _Outputter:
# If we're not storing default values for this fella,
# we can skip all output processing if we've got a default value.
if ioattrs is not None and not ioattrs.store_default:
default_factory: Any = field.default_factory # type: ignore
default_factory: Any = field.default_factory
if default_factory is not dataclasses.MISSING:
if default_factory() == value:
continue
@ -113,14 +113,14 @@ class _Outputter:
return value if self._create else None
if origin is typing.Union:
# Currently the only unions we support are None/Value
# Currently, the only unions we support are None/Value
# (translated from Optional), which we verified on prep.
# So let's treat this as a simple optional case.
if value is None:
return None
childanntypes_l = [
c for c in typing.get_args(anntype) if c is not type(None)
]
] # noqa (pycodestyle complains about *is* with type)
assert len(childanntypes_l) == 1
return self._process_value(cls, fieldpath, childanntypes_l[0],
value, ioattrs)

View File

@ -75,7 +75,7 @@ class DataclassFieldLookup(Generic[T]):
# We tell the type system that we are returning an instance
# of our class, which allows it to perform type checking on
# member lookups. In reality, however, we are providing a
# special object which captures path lookups so we can build
# special object which captures path lookups, so we can build
# a string from them.
if not TYPE_CHECKING:
out = callback(_PathCapture(self.cls))

View File

@ -303,7 +303,7 @@ class PrepSession:
"""Run prep on a Union type."""
typeargs = typing.get_args(anntype)
if (len(typeargs) != 2
or len([c for c in typeargs if c is type(None)]) != 1):
or len([c for c in typeargs if c is type(None)]) != 1): # noqa
raise TypeError(f'Union {anntype} for attr \'{attrname}\' on'
f' {cls.__name__} is not supported by dataclassio;'
f' only 2 member Unions with one type being None'

View File

@ -766,7 +766,7 @@ class MessageReceiver:
# Return type of None translates to EmptyResponse.
responsetypes = tuple(EmptyResponse if r is type(None) else r
for r in responsetypes)
for r in responsetypes) # noqa
# Make sure our protocol has this message type registered and our
# return types exactly match. (Technically we could return a subset

View File

@ -579,6 +579,8 @@ def human_readable_compact_id(num: int) -> str:
'o' is excluded due to similarity to '0'.
'z' is excluded due to similarity to '2'.
Therefore for n chars this can store values of 21^n.
When reading human input consisting of these IDs, it may be desirable
to map the disallowed chars to their corresponding allowed ones
('o' -> '0', etc).
@ -599,6 +601,8 @@ def compact_id(num: int) -> str:
friendly to humans due to using both capital and lowercase letters,
both 'O' and '0', etc.
Therefore for n chars this can store values of 62^n.
Sort order for these ids is the same as the original numbers.
"""
return _compact_id(
@ -612,3 +616,24 @@ def assert_never(value: NoReturn) -> NoReturn:
See https://github.com/python/typing/issues/735
"""
assert False, f'Unhandled value: {value} ({type(value).__name__})'
def unchanging_hostname() -> str:
"""Return an unchanging name for the local device.
Similar to the `hostname` call (or os.uname().nodename in Python)
except attempts to give a name that doesn't change depending on
network conditions. (A Mac will tend to go from Foo to Foo.local,
Foo.lan etc. throughout its various adventures)
"""
import os
import platform
import subprocess
# On Mac, this should give the computer name assigned in System Prefs.
if platform.system() == 'Darwin':
return subprocess.run(
['scutil', '--get', 'ComputerName'],
check=True,
capture_output=True).stdout.decode().strip().replace(' ', '-')
return os.uname().nodename

View File

@ -172,8 +172,8 @@ def py_examine(projroot: Path, filename: Path, line: int, column: int,
symbol = (selection if selection is not None else _py_symbol_at_column(
flines[line - 1], column))
# Insert a line after the provided one which is just the symbol so we
# can ask for its value alone.
# Insert a line after the provided one which is just the symbol so
# that we can ask for its value alone.
match = re.match(r'\s*', flines[line - 1])
whitespace = match.group() if match is not None else ''
sline = whitespace + symbol + ' #@'
@ -187,8 +187,8 @@ def py_examine(projroot: Path, filename: Path, line: int, column: int,
symbol = (selection if selection is not None else _py_symbol_at_column(
flines[line - 1], column))
# Insert a line after the provided one which is just the symbol so we
# can ask for its value alone.
# Insert a line after the provided one which is just the symbol so
# that we can ask for its value alone.
match = re.match(r'\s*', flines[line - 1])
whitespace = match.group() if match is not None else ''
if operation == 'mypy_infer':

View File

@ -24,7 +24,7 @@ if TYPE_CHECKING:
BASE_URL = 'https://files.ballistica.net/cache/ba1/'
TARGET_TAG = '#__EFROCACHE_TARGET__'
TARGET_TAG = '# __EFROCACHE_TARGET__'
CACHE_DIR_NAME = '.efrocache'
CACHE_MAP_NAME = '.efrocachemap'

View File

@ -10,7 +10,7 @@ from threading import Condition, Thread
import os
if TYPE_CHECKING:
from typing import Generator, Optional, Callable
from typing import Iterable, Optional, Callable
class _FileBatchesRun:
@ -107,7 +107,7 @@ def file_batches(
batch_size: int = 1,
file_filter: Optional[Callable[[str], bool]] = None,
include_mac_packages: bool = False,
) -> Generator[list[str], None, None]:
) -> Iterable[list[str]]:
"""Efficiently yield batches of files to operate on.
Accepts a list of paths which can be files or directories to be recursed.