diff --git a/.idea/dictionaries/ericf.xml b/.idea/dictionaries/ericf.xml index 79fa7d9d..f280d478 100644 --- a/.idea/dictionaries/ericf.xml +++ b/.idea/dictionaries/ericf.xml @@ -30,6 +30,7 @@ achs acinstance ack + ack'ed acked acks acnt @@ -149,6 +150,7 @@ badguy bafoundation ballistica + ballistica's ballisticacore ballisticacorecb bamaster @@ -204,6 +206,7 @@ bools bootlocale borhani + bot's botdist botlist botpos @@ -607,6 +610,7 @@ etsel etxt etype + eval'ed evalpydata evel eventid @@ -631,6 +635,10 @@ extrahash extrascale exts + f'baseval + f'chmod + f'final + f'fixme factoryclass fakemodule fallbacks @@ -772,6 +780,7 @@ gameinstance gamemap gamepad + gamepad's gamepadadvanced gamepads gamepadselect @@ -1141,6 +1150,7 @@ lssl lstart lstr + lstr's lstrs lsval ltex @@ -1337,6 +1347,7 @@ nvcompress nvidia nyko + obj's objname objs objt @@ -1578,6 +1589,7 @@ pybee pybuild pycache + pycharm's pycharmbin pycharmfull pycharmroot @@ -1760,6 +1772,7 @@ sessionplayer sessionplayers sessionteam + sessionteam's sessionteams sessiontype setactivity @@ -1906,6 +1919,7 @@ subpath subplatform subplatforms + subprocess's subprocesses subrepos subsel @@ -2016,6 +2030,7 @@ thelaststand themself thingie + this'll threadtype throwiness timedisplay @@ -2084,6 +2099,7 @@ typeargs typecheck typechecker + typechecker's typedval typeshed typestr diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a59c5d8..0be8533b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ - Windows debug builds now use Python debug libraries. This should hopefully catch more errors that would otherwise go undetected and potentially cause crashes. - Switched windows builds to use 'fast' mode math instead of 'strict'. This should make the game run more efficiently (similar modes are already in use on other platforms) but holler if any odd breakage happens such as things falling through floors (more often than the occasional random fluke-y case that happens now). - Added _ba.can_display_full_unicode() for any code that wants to avoid printing things that won't show up locally. +- Now pulling some classes such as Literal and Protocol from typing instead of typing_extensions (they were officially added to Python in 3.8) ### 1.5.23 (20146) - Fixed the shebang line in `bombsquad_server` file by using `-S` flag for `/usr/bin/env`. diff --git a/assets/src/ba_data/python/_ba.py b/assets/src/ba_data/python/_ba.py index 597b13fa..9a1493cc 100644 --- a/assets/src/ba_data/python/_ba.py +++ b/assets/src/ba_data/python/_ba.py @@ -54,8 +54,7 @@ from ba._enums import TimeFormat, TimeType if TYPE_CHECKING: from typing import (Any, Dict, Callable, Tuple, List, Optional, Union, - List, Type) - from typing_extensions import Literal + List, Type, Literal) from ba._app import App import ba diff --git a/assets/src/ba_data/python/ba/_actor.py b/assets/src/ba_data/python/ba/_actor.py index 6fa9ea57..f70dd780 100644 --- a/assets/src/ba_data/python/ba/_actor.py +++ b/assets/src/ba_data/python/ba/_actor.py @@ -30,9 +30,7 @@ from ba._error import print_exception, ActivityNotFoundError import _ba if TYPE_CHECKING: - from typing import Any, Optional - from typing_extensions import Literal - + from typing import Any, Optional, Literal import ba T = TypeVar('T', bound='Actor') diff --git a/assets/src/ba_data/python/ba/_general.py b/assets/src/ba_data/python/ba/_general.py index 82cc917b..276deb0d 100644 --- a/assets/src/ba_data/python/ba/_general.py +++ b/assets/src/ba_data/python/ba/_general.py @@ -26,8 +26,7 @@ import types import weakref import random import inspect -from typing import TYPE_CHECKING, TypeVar -from typing_extensions import Protocol +from typing import TYPE_CHECKING, TypeVar, Protocol from efro.terminal import Clr from ba._error import print_error, print_exception diff --git a/assets/src/ba_data/python/bastd/actor/onscreentimer.py b/assets/src/ba_data/python/bastd/actor/onscreentimer.py index 3facd7e3..560b13be 100644 --- a/assets/src/ba_data/python/bastd/actor/onscreentimer.py +++ b/assets/src/ba_data/python/bastd/actor/onscreentimer.py @@ -26,8 +26,7 @@ from typing import TYPE_CHECKING, overload import ba if TYPE_CHECKING: - from typing import Optional, Union, Any - from typing_extensions import Literal + from typing import Optional, Union, Any, Literal class OnScreenTimer(ba.Actor): diff --git a/assets/src/ba_data/python/bastd/actor/playerspaz.py b/assets/src/ba_data/python/bastd/actor/playerspaz.py index 48acc0aa..fde1f1a4 100644 --- a/assets/src/ba_data/python/bastd/actor/playerspaz.py +++ b/assets/src/ba_data/python/bastd/actor/playerspaz.py @@ -28,8 +28,7 @@ import ba from bastd.actor.spaz import Spaz if TYPE_CHECKING: - from typing import Any, Sequence, Tuple, Optional, Type - from typing_extensions import Literal + from typing import Any, Sequence, Tuple, Optional, Type, Literal PlayerType = TypeVar('PlayerType', bound=ba.Player) TeamType = TypeVar('TeamType', bound=ba.Team) diff --git a/config/toolconfigsrc/pylintrc b/config/toolconfigsrc/pylintrc index 154eac9f..cbe6f4f0 100644 --- a/config/toolconfigsrc/pylintrc +++ b/config/toolconfigsrc/pylintrc @@ -62,7 +62,7 @@ disable=broad-except, enable=useless-suppression [BASIC] -# Allowing a handfull of short names commonly understood to be iterators, +# Allowing a handful of short names commonly understood to be iterators, # math concepts, or temporary variables. good-names=i, diff --git a/docs/ba_module.md b/docs/ba_module.md index e2ea8d1f..6cfe17e3 100644 --- a/docs/ba_module.md +++ b/docs/ba_module.md @@ -1,5 +1,5 @@ -

last updated on 2020-08-02 for Ballistica version 1.5.24 build 20160

+

last updated on 2020-08-02 for Ballistica version 1.5.24 build 20162

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 let me know. Happy modding!


diff --git a/tools/batools/build.py b/tools/batools/build.py index 41f7c100..01fea940 100644 --- a/tools/batools/build.py +++ b/tools/batools/build.py @@ -47,9 +47,9 @@ class PipRequirement: PIP_REQUIREMENTS = [ PipRequirement(modulename='pylint', minversion=[2, 5, 3]), - PipRequirement(modulename='mypy', minversion=[0, 781]), + PipRequirement(modulename='mypy', minversion=[0, 782]), PipRequirement(modulename='yapf', minversion=[0, 30, 0]), - PipRequirement(modulename='cpplint', minversion=[1, 5, 1]), + PipRequirement(modulename='cpplint', minversion=[1, 5, 3]), PipRequirement(modulename='typing_extensions'), PipRequirement(modulename='pytz'), PipRequirement(modulename='yaml', pipname='PyYAML'), diff --git a/tools/efro/entity/util.py b/tools/efro/entity/util.py index 54d18857..8f804b4b 100644 --- a/tools/efro/entity/util.py +++ b/tools/efro/entity/util.py @@ -101,10 +101,11 @@ def have_matching_fields(val1: CompoundValue, val2: CompoundValue) -> bool: Note this just refers to the field configuration; not data. """ - # quick-out: matching types will always have identical fields + # Quick-out: matching types will always have identical fields. if type(val1) is type(val2): return True - # otherwise do a full comparision + + # Otherwise do a full comparison. return val1.get_fields() == val2.get_fields() diff --git a/tools/efrotools/__init__.py b/tools/efrotools/__init__.py index 9423b213..86b68a57 100644 --- a/tools/efrotools/__init__.py +++ b/tools/efrotools/__init__.py @@ -37,8 +37,7 @@ from pathlib import Path from typing import TYPE_CHECKING if TYPE_CHECKING: - from typing import Dict, Union, Sequence, Optional, Any - from typing_extensions import Literal + from typing import Dict, Union, Sequence, Optional, Any, Literal # Python major version we're using for all this stuff. PYVER = '3.8' diff --git a/tools/efrotools/pcommand.py b/tools/efrotools/pcommand.py index 6af449ec..8f7bc855 100644 --- a/tools/efrotools/pcommand.py +++ b/tools/efrotools/pcommand.py @@ -162,10 +162,14 @@ def spelling_all() -> None: capture_output=True).stdout.decode().splitlines() if 'Typo: In word' in line ] - words = [ - line.split('Typo: In word')[1].strip().replace("'", '') - for line in lines - ] + words = [line.split('Typo: In word')[1].strip() for line in lines] + + # Strip enclosing quotes but not internal ones. + for i, word in enumerate(words): + assert word[0] == "'" + assert word[-1] == "'" + words[i] = word[1:-1] + _spelling(words)