From 2de0bed496e5e9a62c6048be7c61dc8a105eff3b Mon Sep 17 00:00:00 2001 From: Eric Date: Sat, 10 Jun 2023 22:32:30 -0700 Subject: [PATCH] woohoo pycharm checks are finally passing again --- .efrocachemap | 32 ++++++------ .idea/dictionaries/ericf.xml | 2 + Makefile | 26 ++-------- .../.idea/dictionaries/ericf.xml | 2 + .../ba_data/python/bascenev1/__init__.py | 31 ++++++------ .../ba_data/python/bascenev1/_activity.py | 8 +-- .../ba_data/python/bascenev1/_gameactivity.py | 8 +-- src/assets/ba_data/python/bascenev1/_level.py | 6 +-- src/assets/ba_data/python/bascenev1/_stats.py | 50 ++++++++++--------- .../ba_data/python/bascenev1/_teamgame.py | 5 +- .../python/bascenev1lib/activity/coopscore.py | 4 ++ .../ba_data/python/bauiv1lib/store/browser.py | 8 +-- tools/batools/dummymodule.py | 18 ++++++- 13 files changed, 100 insertions(+), 100 deletions(-) diff --git a/.efrocachemap b/.efrocachemap index ccb2efcb..52321f95 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -4080,18 +4080,18 @@ "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/b0/85/d8778105cf5a536cb5e6e618c723", "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/e8/41/5128ac78c21f238d0613ab8e2ece", "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/7f/4d/96dadaf30683f4a69426518ca334", - "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/c3/ca/939e97f16820b0ee1af7d190ca85", + "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/14/14/9f38fb471edd66d076b9d611ba55", "build/prefab/full/mac_arm64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/12/37/d741089b132fbcb8b22d9795479a", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/d7/ab/b4e7f9aa5b15b38606051341deae", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/b0/4f/e9ab4d8fc7405d9c8f667eaacb73", "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/7e/2f/2e475906c60e960a63fdd3e5f24d", - "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/c1/fb/5c472b18817431b3e5d5dc7ed27e", + "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "https://files.ballistica.net/cache/ba1/34/48/662a2168751cd25eaae50f0707df", "build/prefab/full/mac_x86_64_gui/release/ballisticakit": "https://files.ballistica.net/cache/ba1/1d/2f/ab1c77b292726178d0eb1f5699ad", - "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/e5/f3/6ac25a8397a62ec4af1d9d5d2c37", + "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/44/b8/3c6e810fa14f014b9c91db7ab88a", "build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "https://files.ballistica.net/cache/ba1/14/59/2164e23d78a6b16a97b3bfe7bdb2", - "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/f1/74/0cd435f4a2c4c585f96f7f92f0d9", - "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/7b/af/0a54bb0a94e2054e486d41a54952", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/e5/9a/0de72b7deec764c81076a97a0a00", - "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/e0/69/2dd80316d1d73969095a85b1d0aa", + "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/4f/91/83fa21e46183f74300820e98f4a1", + "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "https://files.ballistica.net/cache/ba1/61/f5/18b5f9055fb48a1c91ce25f45dee", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/87/53/556e49d3273d4be8bfeba546ecb8", + "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "https://files.ballistica.net/cache/ba1/98/9b/73c254c31fe68fc21cae40a1761e", "build/prefab/lib/linux_arm64_gui/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/29/dc/e5b08aae2dbe3222082aaa1e90e7", "build/prefab/lib/linux_arm64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/ce/bb/5796a83ce9d1c9cf58e08f3ff351", "build/prefab/lib/linux_arm64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/31/65/014221e46f7974f40aa84c8922dc", @@ -4108,14 +4108,14 @@ "build/prefab/lib/mac_x86_64_gui/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/14/4b/68a0ece3c1f191183b695cf45a4d", "build/prefab/lib/mac_x86_64_server/debug/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/1f/3f/d899a46cc0dc8bc4f1b38f9318a5", "build/prefab/lib/mac_x86_64_server/release/libballistica_plus.a": "https://files.ballistica.net/cache/ba1/de/99/95fdcb3f614a7b83ada148bca38d", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/f5/47/9db7c01a8a19ea55583a909adf14", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/ad/20/3b72e7abc0d54e7b94780bc6edbe", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/38/61/f5eb3377a746196a6fcad3707926", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/59/6d/f02c05860b022da85fcd56b5f6a8", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/8e/6f/61887ab9d3bc3ddc1a411b78b625", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/2a/3e/9ef7f4d59cbbc8ce2b92913b3f6f", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/7d/1a/63e81c69d5fc9275932c15ca8fc1", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/2d/f1/fd7463cf926c19c5e7fe1232e997", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/74/cb/8be4f4dec7fd2bf11920a48c5446", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/ee/30/7d0a59834145150a5a64d29f2add", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/ad/53/a20f19509c6f90472c46004618e7", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/d7/20/8311a232ef822de08b7eea1185e5", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "https://files.ballistica.net/cache/ba1/f9/bb/cfb390d5f9d37997cacc804ee7ae", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "https://files.ballistica.net/cache/ba1/a6/fa/5651f4f3329109515ad15fbf7fbc", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "https://files.ballistica.net/cache/ba1/d8/49/3f000f69e2b50364b7d444f90b3f", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "https://files.ballistica.net/cache/ba1/7b/bd/aff34983fc5a00bfb59fd47d14cb", "src/assets/ba_data/python/babase/_mgen/__init__.py": "https://files.ballistica.net/cache/ba1/52/c6/c11130af7b10d6c0321add5518fa", "src/assets/ba_data/python/babase/_mgen/enums.py": "https://files.ballistica.net/cache/ba1/38/c3/1dedd5e74f2508efc5974c8815a1", "src/ballistica/base/mgen/pyembed/binding_base.inc": "https://files.ballistica.net/cache/ba1/ea/6a/6a4721b144e5e297b542d2a0eea2", diff --git a/.idea/dictionaries/ericf.xml b/.idea/dictionaries/ericf.xml index 1493da1d..e4100ccf 100644 --- a/.idea/dictionaries/ericf.xml +++ b/.idea/dictionaries/ericf.xml @@ -264,6 +264,7 @@ basntoclient bastd batemplatefs + batemplatefsmeta batocloud batools batoolsinternal @@ -2639,6 +2640,7 @@ spinoffconfig spinoffdata spinoffs + spinofftest spinup splayer splitlen diff --git a/Makefile b/Makefile index 216abd31..ff0d4cc7 100644 --- a/Makefile +++ b/Makefile @@ -751,20 +751,14 @@ check-full: py_check_prereqs # Same as 'check' plus optional/slow extra checks. check2: py_check_prereqs -# TEMP - disabling some during 1.7.20 refactor. - @$(DMAKE) -j$(CPUS) update-check cpplint pylint mypy + @$(DMAKE) -j$(CPUS) update-check cpplint pylint mypy pycharm @tools/pcommand echo SGRN BLD ALL CHECKS PASSED! -# @$(DMAKE) -j$(CPUS) update-check cpplint pylint mypy pycharm -# @tools/pcommand echo SGRN BLD ALL CHECKS PASSED! # Same as check2 but no caching (all files are checked). -# TEMP - disabling some checks during 1.7.20 refactor. check2-full: py_check_prereqs - @$(DMAKE) -j$(CPUS) update-check cpplint-full pylint-full mypy-full + @$(DMAKE) -j$(CPUS) update-check cpplint-full pylint-full mypy-full \ + pycharm-full @tools/pcommand echo SGRN BLD ALL CHECKS PASSED! -# @$(DMAKE) -j$(CPUS) update-check cpplint-full pylint-full mypy-full \ -# pycharm-full -# @tools/pcommand echo SGRN BLD ALL CHECKS PASSED! # Run Cpplint checks on all C/C++ code. cpplint: prereqs meta @@ -894,27 +888,17 @@ preflight-full: # Same as 'preflight' plus optional/slow extra checks. preflight2: -# TEMP - disabling some checks during the 1.7.20 refactor @$(MAKE) format @$(MAKE) update - @$(MAKE) -j$(CPUS) cpplint pylint mypy test + @$(MAKE) -j$(CPUS) cpplint pylint mypy pycharm test @tools/pcommand echo SGRN BLD PREFLIGHT SUCCESSFUL! -# @$(MAKE) format -# @$(MAKE) update -# @$(MAKE) -j$(CPUS) cpplint pylint mypy pycharm test -# @tools/pcommand echo SGRN BLD PREFLIGHT SUCCESSFUL! # Same as 'preflight2' but without caching (all files visited). preflight2-full: -# TEMP - disabling some checks during the 1.7.20 refactor @$(MAKE) format-full @$(MAKE) update - @$(MAKE) -j$(CPUS) cpplint-full pylint-full mypy-full test-full + @$(MAKE) -j$(CPUS) cpplint-full pylint-full mypy-full pycharm-full test-full @tools/pcommand echo SGRN BLD PREFLIGHT SUCCESSFUL! -# @$(MAKE) format-full -# @$(MAKE) update -# @$(MAKE) -j$(CPUS) cpplint-full pylint-full mypy-full pycharm-full test-full -# @tools/pcommand echo SGRN BLD PREFLIGHT SUCCESSFUL! # Tell make which of these targets don't represent files. .PHONY: preflight preflight-full preflight2 preflight2-full diff --git a/ballisticakit-cmake/.idea/dictionaries/ericf.xml b/ballisticakit-cmake/.idea/dictionaries/ericf.xml index 05a421a4..e1e330b6 100644 --- a/ballisticakit-cmake/.idea/dictionaries/ericf.xml +++ b/ballisticakit-cmake/.idea/dictionaries/ericf.xml @@ -160,6 +160,7 @@ basntoclient bastd batemplatefs + batemplatefsmeta batocloud batoolsinternal bauiv @@ -1509,6 +1510,7 @@ sphrand spinoff's spinoffconfig + spinofftest spinup spivak spwd diff --git a/src/assets/ba_data/python/bascenev1/__init__.py b/src/assets/ba_data/python/bascenev1/__init__.py index f8b5e796..447579ed 100644 --- a/src/assets/ba_data/python/bascenev1/__init__.py +++ b/src/assets/ba_data/python/bascenev1/__init__.py @@ -19,9 +19,7 @@ import logging # module to keep things simple. from efro.util import set_canonical_module_names - - -from _babase import ( +from babase import ( app, ContextRef, lock_all_input, @@ -38,25 +36,25 @@ from _babase import ( displaytime, displaytimer, DisplayTimer, -) -from babase import Plugin -from babase._appintent import AppIntent, AppIntentDefault, AppIntentExec -from babase._appmode import AppMode -from babase._error import NotFoundError, NodeNotFoundError, ContextError -from babase._language import Lstr -from babase._general import ( + Plugin, + AppIntent, + AppIntentDefault, + AppIntentExec, + AppMode, + NotFoundError, + NodeNotFoundError, + ContextError, + Lstr, WeakCall, Call, storagename, existing, AppTime, DisplayTime, -) -from babase._math import is_point_in_box, normalized_color -from babase._text import timestring -from babase._apputils import get_remote_app_name - -from babase._mgen.enums import ( + is_point_in_box, + normalized_color, + timestring, + get_remote_app_name, UIScale, InputType, ) @@ -140,7 +138,6 @@ from _bascenev1 import ( basetimer, BaseTimer, ) - from bascenev1._profile import ( get_player_colors, get_player_profile_icon, diff --git a/src/assets/ba_data/python/bascenev1/_activity.py b/src/assets/ba_data/python/bascenev1/_activity.py index d87f6e63..77be627e 100644 --- a/src/assets/ba_data/python/bascenev1/_activity.py +++ b/src/assets/ba_data/python/bascenev1/_activity.py @@ -224,9 +224,7 @@ class Activity(DependencyComponent, Generic[PlayerT, TeamT]): bascenev1.NotFoundError. """ if self._stats is None: - from babase._error import NotFoundError - - raise NotFoundError() + raise babase.NotFoundError() return self._stats def on_expire(self) -> None: @@ -337,9 +335,7 @@ class Activity(DependencyComponent, Generic[PlayerT, TeamT]): """ session = self._session() if session is None: - from babase._error import SessionNotFoundError - - raise SessionNotFoundError() + raise babase.SessionNotFoundError() return session def on_player_join(self, player: PlayerT) -> None: diff --git a/src/assets/ba_data/python/bascenev1/_gameactivity.py b/src/assets/ba_data/python/bascenev1/_gameactivity.py index a4d7960e..ea5d8c51 100644 --- a/src/assets/ba_data/python/bascenev1/_gameactivity.py +++ b/src/assets/ba_data/python/bascenev1/_gameactivity.py @@ -734,7 +734,6 @@ class GameActivity(Activity[PlayerT, TeamT]): def _show_tip(self) -> None: # pylint: disable=too-many-locals - from babase._mgen.enums import SpecialChar from bascenev1._gameutils import animate, GameTip # If there's any tips left on the list, display one. @@ -754,7 +753,9 @@ class GameActivity(Activity[PlayerT, TeamT]): # Do a few substitutions. tip_lstr = babase.Lstr( translate=('tips', tip), - subs=[('${PICKUP}', babase.charstr(SpecialChar.TOP_BUTTON))], + subs=[ + ('${PICKUP}', babase.charstr(babase.SpecialChar.TOP_BUTTON)) + ], ) base_position = (75, 50) tip_scale = 0.8 @@ -944,7 +945,6 @@ class GameActivity(Activity[PlayerT, TeamT]): """Create and wire up a bascenev1.PlayerSpaz for the provided Player.""" # pylint: disable=too-many-locals # pylint: disable=cyclic-import - from babase import _math from bascenev1._gameutils import animate from bascenev1._coopsession import CoopSession from bascenev1lib.actor.playerspaz import PlayerSpaz @@ -957,7 +957,7 @@ class GameActivity(Activity[PlayerT, TeamT]): if not issubclass(playerspaztype, PlayerSpaz): playerspaztype = PlayerSpaz - light_color = _math.normalized_color(color) + light_color = babase.normalized_color(color) display_color = babase.safecolor(color, target_intensity=0.75) spaz = playerspaztype( color=color, diff --git a/src/assets/ba_data/python/bascenev1/_level.py b/src/assets/ba_data/python/bascenev1/_level.py index 13f7dd9a..c7469bb8 100644 --- a/src/assets/ba_data/python/bascenev1/_level.py +++ b/src/assets/ba_data/python/bascenev1/_level.py @@ -7,6 +7,8 @@ import copy import weakref from typing import TYPE_CHECKING +import babase + if TYPE_CHECKING: from typing import Any @@ -66,9 +68,7 @@ class Level: @property def displayname(self) -> bascenev1.Lstr: """The localized name for this Level.""" - from babase import _language - - return _language.Lstr( + return babase.Lstr( translate=( 'coopLevelNames', self._displayname diff --git a/src/assets/ba_data/python/bascenev1/_stats.py b/src/assets/ba_data/python/bascenev1/_stats.py index b0856717..bd377707 100644 --- a/src/assets/ba_data/python/bascenev1/_stats.py +++ b/src/assets/ba_data/python/bascenev1/_stats.py @@ -138,8 +138,6 @@ class PlayerRecord: """Submit a kill for this player entry.""" # FIXME Clean this up. # pylint: disable=too-many-statements - from babase._language import Lstr - from babase._general import Call self._multi_kill_count += 1 stats = self._stats() @@ -153,35 +151,35 @@ class PlayerRecord: sound = None elif self._multi_kill_count == 2: score = 20 - name = Lstr(resource='twoKillText') + name = babase.Lstr(resource='twoKillText') color = (0.1, 1.0, 0.0, 1) scale = 1.0 delay = 0.0 sound = stats.orchestrahitsound1 elif self._multi_kill_count == 3: score = 40 - name = Lstr(resource='threeKillText') + name = babase.Lstr(resource='threeKillText') color = (1.0, 0.7, 0.0, 1) scale = 1.1 delay = 0.3 sound = stats.orchestrahitsound2 elif self._multi_kill_count == 4: score = 60 - name = Lstr(resource='fourKillText') + name = babase.Lstr(resource='fourKillText') color = (1.0, 1.0, 0.0, 1) scale = 1.2 delay = 0.6 sound = stats.orchestrahitsound3 elif self._multi_kill_count == 5: score = 80 - name = Lstr(resource='fiveKillText') + name = babase.Lstr(resource='fiveKillText') color = (1.0, 0.5, 0.0, 1) scale = 1.3 delay = 0.9 sound = stats.orchestrahitsound4 else: score = 100 - name = Lstr( + name = babase.Lstr( resource='multiKillText', subs=[('${COUNT}', str(self._multi_kill_count))], ) @@ -191,7 +189,7 @@ class PlayerRecord: sound = stats.orchestrahitsound4 def _apply( - name2: Lstr, + name2: babase.Lstr, score2: int, showpoints2: bool, color2: tuple[float, float, float, float], @@ -221,7 +219,7 @@ class PlayerRecord: activity = self.getactivity() if activity is not None: PopupText( - Lstr( + babase.Lstr( value=(('+' + str(score2) + ' ') if showpoints2 else '') + '${N}', subs=[('${N}', name2)], @@ -243,7 +241,9 @@ class PlayerRecord: if name is not None: _bascenev1.timer( 0.3 + delay, - Call(_apply, name, score, showpoints, color, scale, sound), + babase.Call( + _apply, name, score, showpoints, color, scale, sound + ), ) # Keep the tally rollin'... @@ -361,10 +361,8 @@ class Stats: # pylint: disable=cyclic-import # pylint: disable=too-many-branches # pylint: disable=too-many-locals - # pylint: disable=too-many-statements from bascenev1lib.actor.popuptext import PopupText - from babase import _math - from babase._language import Lstr + from bascenev1._gameactivity import GameActivity del victim_player # Currently unused. @@ -390,11 +388,11 @@ class Stats: if isinstance(activity, GameActivity): name_full = player.getname(full=True, icon=False) activity.show_zoom_message( - Lstr( + babase.Lstr( resource='nameScoresText', subs=[('${NAME}', name_full)], ), - color=_math.normalized_color(player.team.color), + color=babase.normalized_color(player.team.color), ) except Exception: logging.exception('Error showing big_message.') @@ -416,12 +414,14 @@ class Stats: activity = self.getactivity() if activity is not None: if title is not None: - sval = Lstr( + sval = babase.Lstr( value='+${A} ${B}', subs=[('${A}', str(points)), ('${B}', title)], ) else: - sval = Lstr(value='+${A}', subs=[('${A}', str(points))]) + sval = babase.Lstr( + value='+${A}', subs=[('${A}', str(points))] + ) PopupText( sval, color=display_color, @@ -438,7 +438,9 @@ class Stats: try: if screenmessage and not kill: _bascenev1.screenmessage( - Lstr(resource='nameScoresText', subs=[('${NAME}', name)]), + babase.Lstr( + resource='nameScoresText', subs=[('${NAME}', name)] + ), top=True, color=player.color, image=player.get_icon(), @@ -464,8 +466,6 @@ class Stats: killer: bascenev1.Player | None = None, ) -> None: """Should be called when a player is killed.""" - from babase._language import Lstr - name = player.getname() prec = self._player_records[name] prec.streak = 0 @@ -476,7 +476,7 @@ class Stats: if killed and _bascenev1.getactivity().announce_player_deaths: if killer is player: _bascenev1.screenmessage( - Lstr( + babase.Lstr( resource='nameSuicideText', subs=[('${NAME}', name)] ), top=True, @@ -486,7 +486,7 @@ class Stats: elif killer is not None: if killer.team is player.team: _bascenev1.screenmessage( - Lstr( + babase.Lstr( resource='nameBetrayedText', subs=[ ('${NAME}', killer.getname()), @@ -499,7 +499,7 @@ class Stats: ) else: _bascenev1.screenmessage( - Lstr( + babase.Lstr( resource='nameKilledText', subs=[ ('${NAME}', killer.getname()), @@ -512,7 +512,9 @@ class Stats: ) else: _bascenev1.screenmessage( - Lstr(resource='nameDiedText', subs=[('${NAME}', name)]), + babase.Lstr( + resource='nameDiedText', subs=[('${NAME}', name)] + ), top=True, color=player.color, image=player.get_icon(), diff --git a/src/assets/ba_data/python/bascenev1/_teamgame.py b/src/assets/ba_data/python/bascenev1/_teamgame.py index 7fd0fe04..47c311db 100644 --- a/src/assets/ba_data/python/bascenev1/_teamgame.py +++ b/src/assets/ba_data/python/bascenev1/_teamgame.py @@ -4,6 +4,7 @@ from __future__ import annotations +import logging from typing import TYPE_CHECKING, TypeVar import babase @@ -99,9 +100,7 @@ class TeamGameActivity(GameActivity[PlayerT, TeamT]): 'Team Player' ) except Exception: - from babase import _error - - _error.print_exception() + logging.exception('Error in on_begin.') def spawn_player_spaz( self, diff --git a/src/assets/ba_data/python/bascenev1lib/activity/coopscore.py b/src/assets/ba_data/python/bascenev1lib/activity/coopscore.py index c50dfec2..1f2af3f9 100644 --- a/src/assets/ba_data/python/bascenev1lib/activity/coopscore.py +++ b/src/assets/ba_data/python/bascenev1lib/activity/coopscore.py @@ -1427,6 +1427,8 @@ class CoopScoreScreen(bs.Activity[bs.Player, bs.Team]): tourney_info = bs.app.classic.accounts.tournament_info[ tournament_id ] + # pylint: disable=useless-suppression + # pylint: disable=unbalanced-tuple-unpacking ( pr1, pv1, @@ -1437,6 +1439,8 @@ class CoopScoreScreen(bs.Activity[bs.Player, bs.Team]): ) = bs.app.classic.get_tournament_prize_strings( tourney_info ) + # pylint: enable=unbalanced-tuple-unpacking + # pylint: enable=useless-suppression Text( bs.Lstr(resource='coopSelectWindow.prizesText'), diff --git a/src/assets/ba_data/python/bauiv1lib/store/browser.py b/src/assets/ba_data/python/bauiv1lib/store/browser.py index eb7f15ae..d989027c 100644 --- a/src/assets/ba_data/python/bauiv1lib/store/browser.py +++ b/src/assets/ba_data/python/bauiv1lib/store/browser.py @@ -87,7 +87,7 @@ class StoreBrowserWindow(bui.Window): self._current_tab: StoreBrowserWindow.TabID | None = None extra_top = 30 if uiscale is bui.UIScale.SMALL else 0 - self._request: Any = None + self.request: Any = None self._r = 'store' self._last_buy_time: float | None = None @@ -467,13 +467,13 @@ class StoreBrowserWindow(bui.Window): # FIXME: clean this up. # pylint: disable=protected-access window = self._window() - if window is not None and (window._request is self): - window._request = None + if window is not None and (window.request is self): + window.request = None # noinspection PyProtectedMember window._on_response(data) # Kick off a server request. - self._request = _Request(self) + self.request = _Request(self) # Actually start the purchase locally. def _purchase_check_result( diff --git a/tools/batools/dummymodule.py b/tools/batools/dummymodule.py index 3bdb2a75..6ffe68db 100755 --- a/tools/batools/dummymodule.py +++ b/tools/batools/dummymodule.py @@ -179,12 +179,17 @@ def _writefuncs( if is_classmethod: defslines = f'{indstr}@classmethod\n{defslines}' - if funcname == 'quit': + if funcname in {'quit', 'newnode', 'basetimer'}: defslines = ( f'{indstr}# noinspection PyShadowingBuiltins\n' f'{defslines}' ) + if funcname in {'basetimer', 'timer'}: + defslines = ( + f'{indstr}# noinspection PyShadowingNames\n' f'{defslines}' + ) + # Types can be strings for forward-declaration cases. if (returns[0] == "'" and returns[-1] == "'") or ( returns[0] == '"' and returns[-1] == '"' @@ -654,6 +659,7 @@ def _formatdoc( def _writeclasses(module: ModuleType, classnames: Sequence[str]) -> str: # pylint: disable=too-many-branches + # pylint: disable=too-many-statements from batools.docs import parse_docs_attrs out = '' @@ -663,6 +669,13 @@ def _writeclasses(module: ModuleType, classnames: Sequence[str]) -> str: raise RuntimeError('unexpected') out += '\n' '\n' + # Special case: get PyCharm to shut up about Node's methods + # shadowing builtin types. + if classname in {'Node', 'SessionPlayer'}: + out += '# noinspection PyShadowingBuiltins\n' + if classname in {'Timer', 'BaseTimer'}: + out += '# noinspection PyShadowingNames\n' + # Special case: if classname == 'Vec3': out += f'class {classname}(Sequence[float]):\n' @@ -818,7 +831,8 @@ class Generator: enum_import_lines = ( '' if self.mname == '_babase' - else 'from babase._mgen.enums import TimeFormat, TimeType\n\n' + # else 'from babase._mgen.enums import TimeFormat, TimeType\n\n' + else '' if self.mname == '_bascenev1' else '' )