Upgraded Python from 3.7 to 3.8

This commit is contained in:
Eric Froemling 2020-07-31 13:39:09 -07:00
parent 2ec0bd17be
commit 2c16c8c13b
25 changed files with 4776 additions and 6682 deletions

File diff suppressed because it is too large Load Diff

2
.gitignore vendored
View File

@ -74,7 +74,9 @@ libs/
!vc_redist.x86.exe
!vc_redist.x64.exe
!python.exe
!python_d.exe
!pythonw.exe
!pythonw_d.exe
!**/OculusSDK/Tools/**/*.exe
# Note: specifying exact Debug/Release dirs for now; we wind up ignoring

View File

@ -63,7 +63,7 @@
<excludePattern pattern=".efrocachemap" />
<excludePattern pattern=".pytest_cache" />
</content>
<orderEntry type="jdk" jdkName="Python 3.7" jdkType="Python SDK" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -440,6 +440,7 @@
<w>dayoffset</w>
<w>dbapi</w>
<w>dbase</w>
<w>dbgsfx</w>
<w>dbpath</w>
<w>dcls</w>
<w>dcmake</w>
@ -485,6 +486,7 @@
<w>distroot</w>
<w>distros</w>
<w>dline</w>
<w>dlldir</w>
<w>dlls</w>
<w>dmitry</w>
<w>dmodule</w>
@ -1061,8 +1063,10 @@
<w>lfull</w>
<w>lfval</w>
<w>libcrypto</w>
<w>libdir</w>
<w>libegl</w>
<w>libext</w>
<w>libffi</w>
<w>libgen</w>
<w>libinst</w>
<w>liblzma</w>
@ -1977,6 +1981,7 @@
<w>testcapi</w>
<w>testcapimodule</w>
<w>testclass</w>
<w>testconsole</w>
<w>testd</w>
<w>testdl</w>
<w>testfoo</w>
@ -1987,6 +1992,7 @@
<w>testm</w>
<w>testmagicmethods</w>
<w>testmock</w>
<w>testmultiphase</w>
<w>testobj</w>
<w>testpatch</w>
<w>testpath</w>
@ -2058,6 +2064,7 @@
<w>tref</w>
<w>tret</w>
<w>trophystr</w>
<w>trsock</w>
<w>tscale</w>
<w>tscl</w>
<w>tspc</w>
@ -2203,6 +2210,7 @@
<w>winnergroups</w>
<w>winplt</w>
<w>winprj</w>
<w>winprune</w>
<w>winref</w>
<w>winscore</w>
<w>winserver</w>

View File

@ -42,6 +42,7 @@
</inspection_tool>
<inspection_tool class="PyRedundantParenthesesInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<scope name="UncheckedPython" level="WEAK WARNING" enabled="false" />
<option name="myIgnoreTupleInReturn" value="true" />
</inspection_tool>
<inspection_tool class="PyShadowingBuiltinsInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<scope name="UncheckedPython" level="WEAK WARNING" enabled="false" />

2
.idea/misc.xml generated
View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7" project-jdk-type="Python SDK" />
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8" project-jdk-type="Python SDK" />
<component name="PythonCompatibilityInspectionAdvertiser">
<option name="version" value="3" />
</component>

View File

@ -1,5 +1,7 @@
### 1.5.24 (20159)
- Misc bug fixes.
- Upgraded Python from 3.7 to 3.8. This is a substantial change (though nothing like the previous update from 2.7 to 3.7) so please holler if anything is broken. These updates will happen once every year or two now.
- 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).
### 1.5.23 (20146)
- Fixed the shebang line in `bombsquad_server` file by using `-S` flag for `/usr/bin/env`.

File diff suppressed because it is too large Load Diff

View File

@ -1,65 +1,65 @@
[
"ba_data/python/ba/__init__.py",
"ba_data/python/ba/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_account.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_achievement.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_activity.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_activitytypes.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_actor.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_analytics.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_app.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_appconfig.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_appdelegate.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_apputils.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_assetmanager.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_benchmark.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_campaign.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_collision.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_coopgame.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_coopsession.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_dependency.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_dualteamsession.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_enums.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_error.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_freeforallsession.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_gameactivity.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_gameresults.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_gameutils.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_general.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_hooks.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_input.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_lang.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_level.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_lobby.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_map.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_math.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_messages.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_meta.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_multiteamsession.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_music.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_netutils.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_nodeactor.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_player.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_playlist.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_plugin.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_powerup.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_profile.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_score.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_servermode.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_session.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_settings.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_stats.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_store.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_team.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_teamgame.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_tips.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_tournament.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/_ui.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/deprecated.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/internal.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/macmusicapp.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/modutils.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/osmusic.cpython-37.opt-1.pyc",
"ba_data/python/ba/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_account.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_achievement.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_activity.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_activitytypes.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_actor.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_analytics.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_app.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_appconfig.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_appdelegate.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_apputils.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_assetmanager.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_benchmark.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_campaign.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_collision.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_coopgame.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_coopsession.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_dependency.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_dualteamsession.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_enums.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_error.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_freeforallsession.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_gameactivity.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_gameresults.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_gameutils.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_general.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_hooks.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_input.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_lang.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_level.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_lobby.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_map.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_math.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_messages.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_meta.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_multiteamsession.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_music.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_netutils.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_nodeactor.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_player.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_playlist.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_plugin.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_powerup.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_profile.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_score.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_servermode.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_session.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_settings.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_stats.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_store.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_team.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_teamgame.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_tips.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_tournament.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/_ui.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/deprecated.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/internal.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/macmusicapp.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/modutils.cpython-38.opt-1.pyc",
"ba_data/python/ba/__pycache__/osmusic.cpython-38.opt-1.pyc",
"ba_data/python/ba/_account.py",
"ba_data/python/ba/_achievement.py",
"ba_data/python/ba/_activity.py",
@ -120,33 +120,33 @@
"ba_data/python/ba/modutils.py",
"ba_data/python/ba/osmusic.py",
"ba_data/python/ba/ui/__init__.py",
"ba_data/python/ba/ui/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/ba/ui/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/bacommon/__init__.py",
"ba_data/python/bacommon/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/bacommon/__pycache__/assets.cpython-37.opt-1.pyc",
"ba_data/python/bacommon/__pycache__/err.cpython-37.opt-1.pyc",
"ba_data/python/bacommon/__pycache__/servermanager.cpython-37.opt-1.pyc",
"ba_data/python/bacommon/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/bacommon/__pycache__/assets.cpython-38.opt-1.pyc",
"ba_data/python/bacommon/__pycache__/err.cpython-38.opt-1.pyc",
"ba_data/python/bacommon/__pycache__/servermanager.cpython-38.opt-1.pyc",
"ba_data/python/bacommon/assets.py",
"ba_data/python/bacommon/err.py",
"ba_data/python/bacommon/servermanager.py",
"ba_data/python/bastd/__init__.py",
"ba_data/python/bastd/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/bastd/__pycache__/appdelegate.cpython-37.opt-1.pyc",
"ba_data/python/bastd/__pycache__/gameutils.cpython-37.opt-1.pyc",
"ba_data/python/bastd/__pycache__/mainmenu.cpython-37.opt-1.pyc",
"ba_data/python/bastd/__pycache__/maps.cpython-37.opt-1.pyc",
"ba_data/python/bastd/__pycache__/stdmap.cpython-37.opt-1.pyc",
"ba_data/python/bastd/__pycache__/tutorial.cpython-37.opt-1.pyc",
"ba_data/python/bastd/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/bastd/__pycache__/appdelegate.cpython-38.opt-1.pyc",
"ba_data/python/bastd/__pycache__/gameutils.cpython-38.opt-1.pyc",
"ba_data/python/bastd/__pycache__/mainmenu.cpython-38.opt-1.pyc",
"ba_data/python/bastd/__pycache__/maps.cpython-38.opt-1.pyc",
"ba_data/python/bastd/__pycache__/stdmap.cpython-38.opt-1.pyc",
"ba_data/python/bastd/__pycache__/tutorial.cpython-38.opt-1.pyc",
"ba_data/python/bastd/activity/__init__.py",
"ba_data/python/bastd/activity/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/bastd/activity/__pycache__/coopjoin.cpython-37.opt-1.pyc",
"ba_data/python/bastd/activity/__pycache__/coopscore.cpython-37.opt-1.pyc",
"ba_data/python/bastd/activity/__pycache__/drawscore.cpython-37.opt-1.pyc",
"ba_data/python/bastd/activity/__pycache__/dualteamscore.cpython-37.opt-1.pyc",
"ba_data/python/bastd/activity/__pycache__/freeforallvictory.cpython-37.opt-1.pyc",
"ba_data/python/bastd/activity/__pycache__/multiteamjoin.cpython-37.opt-1.pyc",
"ba_data/python/bastd/activity/__pycache__/multiteamscore.cpython-37.opt-1.pyc",
"ba_data/python/bastd/activity/__pycache__/multiteamvictory.cpython-37.opt-1.pyc",
"ba_data/python/bastd/activity/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/bastd/activity/__pycache__/coopjoin.cpython-38.opt-1.pyc",
"ba_data/python/bastd/activity/__pycache__/coopscore.cpython-38.opt-1.pyc",
"ba_data/python/bastd/activity/__pycache__/drawscore.cpython-38.opt-1.pyc",
"ba_data/python/bastd/activity/__pycache__/dualteamscore.cpython-38.opt-1.pyc",
"ba_data/python/bastd/activity/__pycache__/freeforallvictory.cpython-38.opt-1.pyc",
"ba_data/python/bastd/activity/__pycache__/multiteamjoin.cpython-38.opt-1.pyc",
"ba_data/python/bastd/activity/__pycache__/multiteamscore.cpython-38.opt-1.pyc",
"ba_data/python/bastd/activity/__pycache__/multiteamvictory.cpython-38.opt-1.pyc",
"ba_data/python/bastd/activity/coopjoin.py",
"ba_data/python/bastd/activity/coopscore.py",
"ba_data/python/bastd/activity/drawscore.py",
@ -156,27 +156,27 @@
"ba_data/python/bastd/activity/multiteamscore.py",
"ba_data/python/bastd/activity/multiteamvictory.py",
"ba_data/python/bastd/actor/__init__.py",
"ba_data/python/bastd/actor/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/background.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/bomb.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/controlsguide.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/flag.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/image.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/onscreencountdown.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/onscreentimer.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/playerspaz.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/popuptext.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/powerupbox.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/respawnicon.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/scoreboard.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/spawner.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/spaz.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/spazappearance.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/spazbot.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/spazfactory.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/text.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/tipstext.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/zoomtext.cpython-37.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/background.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/bomb.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/controlsguide.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/flag.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/image.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/onscreencountdown.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/onscreentimer.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/playerspaz.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/popuptext.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/powerupbox.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/respawnicon.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/scoreboard.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/spawner.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/spaz.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/spazappearance.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/spazbot.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/spazfactory.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/text.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/tipstext.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/__pycache__/zoomtext.cpython-38.opt-1.pyc",
"ba_data/python/bastd/actor/background.py",
"ba_data/python/bastd/actor/bomb.py",
"ba_data/python/bastd/actor/controlsguide.py",
@ -199,25 +199,25 @@
"ba_data/python/bastd/actor/zoomtext.py",
"ba_data/python/bastd/appdelegate.py",
"ba_data/python/bastd/game/__init__.py",
"ba_data/python/bastd/game/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/assault.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/capturetheflag.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/chosenone.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/conquest.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/deathmatch.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/easteregghunt.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/elimination.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/football.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/hockey.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/keepaway.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/kingofthehill.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/meteorshower.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/ninjafight.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/onslaught.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/race.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/runaround.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/targetpractice.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/thelaststand.cpython-37.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/assault.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/capturetheflag.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/chosenone.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/conquest.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/deathmatch.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/easteregghunt.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/elimination.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/football.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/hockey.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/keepaway.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/kingofthehill.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/meteorshower.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/ninjafight.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/onslaught.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/race.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/runaround.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/targetpractice.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/__pycache__/thelaststand.cpython-38.opt-1.pyc",
"ba_data/python/bastd/game/assault.py",
"ba_data/python/bastd/game/capturetheflag.py",
"ba_data/python/bastd/game/chosenone.py",
@ -239,24 +239,24 @@
"ba_data/python/bastd/gameutils.py",
"ba_data/python/bastd/mainmenu.py",
"ba_data/python/bastd/mapdata/__init__.py",
"ba_data/python/bastd/mapdata/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/big_g.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/bridgit.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/courtyard.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/crag_castle.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/doom_shroom.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/football_stadium.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/happy_thoughts.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/hockey_stadium.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/lake_frigid.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/monkey_face.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/rampage.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/roundabout.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/step_right_up.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/the_pad.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/tip_top.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/tower_d.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/zig_zag.cpython-37.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/big_g.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/bridgit.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/courtyard.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/crag_castle.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/doom_shroom.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/football_stadium.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/happy_thoughts.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/hockey_stadium.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/lake_frigid.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/monkey_face.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/rampage.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/roundabout.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/step_right_up.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/the_pad.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/tip_top.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/tower_d.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/__pycache__/zig_zag.cpython-38.opt-1.pyc",
"ba_data/python/bastd/mapdata/big_g.py",
"ba_data/python/bastd/mapdata/bridgit.py",
"ba_data/python/bastd/mapdata/courtyard.py",
@ -276,58 +276,58 @@
"ba_data/python/bastd/mapdata/zig_zag.py",
"ba_data/python/bastd/maps.py",
"ba_data/python/bastd/session/__init__.py",
"ba_data/python/bastd/session/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/bastd/session/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/bastd/stdmap.py",
"ba_data/python/bastd/tutorial.py",
"ba_data/python/bastd/ui/__init__.py",
"ba_data/python/bastd/ui/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/achievements.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/appinvite.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/characterpicker.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/colorpicker.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/config.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/configerror.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/confirm.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/continues.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/creditslist.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/debug.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/feedback.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/fileselector.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/gather.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/getcurrency.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/getremote.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/helpui.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/iconpicker.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/kiosk.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/mainmenu.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/onscreenkeyboard.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/party.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/partyqueue.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/play.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/playoptions.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/popup.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/promocode.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/purchase.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/qrcode.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/radiogroup.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/report.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/resourcetypeinfo.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/serverdialog.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/specialoffer.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/tabs.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/teamnamescolors.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/telnet.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/tournamententry.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/tournamentscores.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/trophies.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/url.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/watch.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/achievements.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/appinvite.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/characterpicker.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/colorpicker.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/config.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/configerror.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/confirm.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/continues.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/creditslist.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/debug.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/feedback.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/fileselector.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/gather.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/getcurrency.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/getremote.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/helpui.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/iconpicker.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/kiosk.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/mainmenu.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/onscreenkeyboard.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/party.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/partyqueue.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/play.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/playoptions.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/popup.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/promocode.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/purchase.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/qrcode.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/radiogroup.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/report.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/resourcetypeinfo.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/serverdialog.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/specialoffer.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/tabs.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/teamnamescolors.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/telnet.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/tournamententry.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/tournamentscores.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/trophies.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/url.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/__pycache__/watch.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/account/__init__.py",
"ba_data/python/bastd/ui/account/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/account/__pycache__/link.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/account/__pycache__/settings.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/account/__pycache__/unlink.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/account/__pycache__/viewer.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/account/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/account/__pycache__/link.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/account/__pycache__/settings.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/account/__pycache__/unlink.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/account/__pycache__/viewer.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/account/link.py",
"ba_data/python/bastd/ui/account/settings.py",
"ba_data/python/bastd/ui/account/unlink.py",
@ -341,10 +341,10 @@
"ba_data/python/bastd/ui/confirm.py",
"ba_data/python/bastd/ui/continues.py",
"ba_data/python/bastd/ui/coop/__init__.py",
"ba_data/python/bastd/ui/coop/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/coop/__pycache__/browser.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/coop/__pycache__/gamebutton.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/coop/__pycache__/level.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/coop/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/coop/__pycache__/browser.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/coop/__pycache__/gamebutton.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/coop/__pycache__/level.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/coop/browser.py",
"ba_data/python/bastd/ui/coop/gamebutton.py",
"ba_data/python/bastd/ui/coop/level.py",
@ -359,9 +359,9 @@
"ba_data/python/bastd/ui/iconpicker.py",
"ba_data/python/bastd/ui/kiosk.py",
"ba_data/python/bastd/ui/league/__init__.py",
"ba_data/python/bastd/ui/league/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/league/__pycache__/rankbutton.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/league/__pycache__/rankwindow.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/league/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/league/__pycache__/rankbutton.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/league/__pycache__/rankwindow.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/league/rankbutton.py",
"ba_data/python/bastd/ui/league/rankwindow.py",
"ba_data/python/bastd/ui/mainmenu.py",
@ -370,15 +370,15 @@
"ba_data/python/bastd/ui/partyqueue.py",
"ba_data/python/bastd/ui/play.py",
"ba_data/python/bastd/ui/playlist/__init__.py",
"ba_data/python/bastd/ui/playlist/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/__pycache__/addgame.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/__pycache__/browser.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/__pycache__/customizebrowser.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/__pycache__/edit.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/__pycache__/editcontroller.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/__pycache__/editgame.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/__pycache__/mapselect.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/__pycache__/share.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/__pycache__/addgame.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/__pycache__/browser.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/__pycache__/customizebrowser.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/__pycache__/edit.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/__pycache__/editcontroller.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/__pycache__/editgame.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/__pycache__/mapselect.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/__pycache__/share.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/playlist/addgame.py",
"ba_data/python/bastd/ui/playlist/browser.py",
"ba_data/python/bastd/ui/playlist/customizebrowser.py",
@ -390,10 +390,10 @@
"ba_data/python/bastd/ui/playoptions.py",
"ba_data/python/bastd/ui/popup.py",
"ba_data/python/bastd/ui/profile/__init__.py",
"ba_data/python/bastd/ui/profile/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/profile/__pycache__/browser.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/profile/__pycache__/edit.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/profile/__pycache__/upgrade.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/profile/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/profile/__pycache__/browser.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/profile/__pycache__/edit.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/profile/__pycache__/upgrade.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/profile/browser.py",
"ba_data/python/bastd/ui/profile/edit.py",
"ba_data/python/bastd/ui/profile/upgrade.py",
@ -405,25 +405,25 @@
"ba_data/python/bastd/ui/resourcetypeinfo.py",
"ba_data/python/bastd/ui/serverdialog.py",
"ba_data/python/bastd/ui/settings/__init__.py",
"ba_data/python/bastd/ui/settings/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/advanced.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/allsettings.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/audio.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/controls.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/gamepad.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/gamepadadvanced.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/gamepadselect.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/graphics.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/keyboard.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/nettesting.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/plugins.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/ps3controller.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/remoteapp.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/testing.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/touchscreen.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/vrtesting.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/wiimote.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/xbox360controller.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/advanced.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/allsettings.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/audio.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/controls.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/gamepad.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/gamepadadvanced.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/gamepadselect.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/graphics.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/keyboard.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/nettesting.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/plugins.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/ps3controller.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/remoteapp.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/testing.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/touchscreen.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/vrtesting.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/wiimote.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/__pycache__/xbox360controller.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/settings/advanced.py",
"ba_data/python/bastd/ui/settings/allsettings.py",
"ba_data/python/bastd/ui/settings/audio.py",
@ -443,21 +443,21 @@
"ba_data/python/bastd/ui/settings/wiimote.py",
"ba_data/python/bastd/ui/settings/xbox360controller.py",
"ba_data/python/bastd/ui/soundtrack/__init__.py",
"ba_data/python/bastd/ui/soundtrack/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/soundtrack/__pycache__/browser.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/soundtrack/__pycache__/edit.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/soundtrack/__pycache__/entrytypeselect.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/soundtrack/__pycache__/macmusicapp.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/soundtrack/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/soundtrack/__pycache__/browser.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/soundtrack/__pycache__/edit.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/soundtrack/__pycache__/entrytypeselect.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/soundtrack/__pycache__/macmusicapp.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/soundtrack/browser.py",
"ba_data/python/bastd/ui/soundtrack/edit.py",
"ba_data/python/bastd/ui/soundtrack/entrytypeselect.py",
"ba_data/python/bastd/ui/soundtrack/macmusicapp.py",
"ba_data/python/bastd/ui/specialoffer.py",
"ba_data/python/bastd/ui/store/__init__.py",
"ba_data/python/bastd/ui/store/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/store/__pycache__/browser.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/store/__pycache__/button.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/store/__pycache__/item.cpython-37.opt-1.pyc",
"ba_data/python/bastd/ui/store/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/store/__pycache__/browser.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/store/__pycache__/button.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/store/__pycache__/item.cpython-38.opt-1.pyc",
"ba_data/python/bastd/ui/store/browser.py",
"ba_data/python/bastd/ui/store/button.py",
"ba_data/python/bastd/ui/store/item.py",
@ -470,23 +470,23 @@
"ba_data/python/bastd/ui/url.py",
"ba_data/python/bastd/ui/watch.py",
"ba_data/python/efro/__init__.py",
"ba_data/python/efro/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/efro/__pycache__/call.cpython-37.opt-1.pyc",
"ba_data/python/efro/__pycache__/dataclasses.cpython-37.opt-1.pyc",
"ba_data/python/efro/__pycache__/error.cpython-37.opt-1.pyc",
"ba_data/python/efro/__pycache__/json.cpython-37.opt-1.pyc",
"ba_data/python/efro/__pycache__/terminal.cpython-37.opt-1.pyc",
"ba_data/python/efro/__pycache__/util.cpython-37.opt-1.pyc",
"ba_data/python/efro/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/efro/__pycache__/call.cpython-38.opt-1.pyc",
"ba_data/python/efro/__pycache__/dataclasses.cpython-38.opt-1.pyc",
"ba_data/python/efro/__pycache__/error.cpython-38.opt-1.pyc",
"ba_data/python/efro/__pycache__/json.cpython-38.opt-1.pyc",
"ba_data/python/efro/__pycache__/terminal.cpython-38.opt-1.pyc",
"ba_data/python/efro/__pycache__/util.cpython-38.opt-1.pyc",
"ba_data/python/efro/call.py",
"ba_data/python/efro/dataclasses.py",
"ba_data/python/efro/entity/__init__.py",
"ba_data/python/efro/entity/__pycache__/__init__.cpython-37.opt-1.pyc",
"ba_data/python/efro/entity/__pycache__/_base.cpython-37.opt-1.pyc",
"ba_data/python/efro/entity/__pycache__/_entity.cpython-37.opt-1.pyc",
"ba_data/python/efro/entity/__pycache__/_field.cpython-37.opt-1.pyc",
"ba_data/python/efro/entity/__pycache__/_support.cpython-37.opt-1.pyc",
"ba_data/python/efro/entity/__pycache__/_value.cpython-37.opt-1.pyc",
"ba_data/python/efro/entity/__pycache__/util.cpython-37.opt-1.pyc",
"ba_data/python/efro/entity/__pycache__/__init__.cpython-38.opt-1.pyc",
"ba_data/python/efro/entity/__pycache__/_base.cpython-38.opt-1.pyc",
"ba_data/python/efro/entity/__pycache__/_entity.cpython-38.opt-1.pyc",
"ba_data/python/efro/entity/__pycache__/_field.cpython-38.opt-1.pyc",
"ba_data/python/efro/entity/__pycache__/_support.cpython-38.opt-1.pyc",
"ba_data/python/efro/entity/__pycache__/_value.cpython-38.opt-1.pyc",
"ba_data/python/efro/entity/__pycache__/util.cpython-38.opt-1.pyc",
"ba_data/python/efro/entity/_base.py",
"ba_data/python/efro/entity/_entity.py",
"ba_data/python/efro/entity/_field.py",
@ -497,6 +497,6 @@
"ba_data/python/efro/json.py",
"ba_data/python/efro/terminal.py",
"ba_data/python/efro/util.py",
"server/__pycache__/ballisticacore_server.cpython-37.opt-1.pyc",
"server/__pycache__/ballisticacore_server.cpython-38.opt-1.pyc",
"server/ballisticacore_server.py"
]

File diff suppressed because it is too large Load Diff

View File

@ -113,8 +113,7 @@ class TheLastStandGame(ba.CoopGameActivity[Player, Team]):
ChargerBot: SpawnInfo(0.30, 0.05, 0.000),
StickyBot: SpawnInfo(0.10, 0.03, 0.001),
ExplodeyBot: SpawnInfo(0.05, 0.02, 0.002)
} # yapf: disable
} # yapf: disable
def on_transition_in(self) -> None:
super().on_transition_in()

View File

@ -14,9 +14,7 @@ Mac:
(brew install python3).
Linux (x86_64):
- Server binaries are currently compiled against Ubuntu 18 LTS. They depend
on Python 3.7, so you may need to install that.
This should just be something like "sudo apt install python3.7"
- Server binaries are currently compiled against Ubuntu 20 LTS.
Raspberry Pi:
- The server binary was compiled on a Raspberry Pi 4 running Raspbian Buster.

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python3.7
#!/usr/bin/env python3.8
# Copyright (c) 2011-2020 Eric Froemling
#
# Permission is hereby granted, free of charge, to any person obtaining a copy

View File

@ -1,5 +1,5 @@
<!-- THIS FILE IS AUTO GENERATED; DO NOT EDIT BY HAND -->
<h4><em>last updated on 2020-07-26 for Ballistica version 1.5.24 build 20158</em></h4>
<h4><em>last updated on 2020-07-28 for Ballistica version 1.5.24 build 20159</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>
@ -2210,7 +2210,7 @@ its time with lingering corpses, sound effects, etc.</p>
<p>&lt;all methods inherited from <a href="#class_ba_Team">ba.Team</a>&gt;</p>
<hr>
<h2><strong><a name="class_ba_Existable">ba.Existable</a></strong></h3>
<p>Inherits from: <a href="#class_typing_extensions_Protocol">typing_extensions.Protocol</a></p>
<p>Inherits from: <a href="#class_typing_Protocol">typing.Protocol</a>, <a href="#class_typing_Generic">typing.Generic</a></p>
<p>A Protocol for objects supporting an exists() method.</p>
<p>Category: <a href="#class_category_Protocols">Protocols</a>

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python3.7
#!/usr/bin/env python3.8
# Copyright (c) 2011-2020 Eric Froemling
#
# Permission is hereby granted, free of charge, to any person obtaining a copy

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python3.7
#!/usr/bin/env python3.8
# Copyright (c) 2011-2020 Eric Froemling
#
# Permission is hereby granted, free of charge, to any person obtaining a copy

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python3.7
#!/usr/bin/env python3.8
# Copyright (c) 2011-2020 Eric Froemling
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
@ -33,7 +33,7 @@ from efro.terminal import Clr
if TYPE_CHECKING:
from typing import List, Set
PYC_SUFFIX = '.cpython-37.opt-1.pyc'
PYC_SUFFIX = '.cpython-38.opt-1.pyc'
def _get_targets(varname: str,
@ -228,7 +228,7 @@ def _get_extras_targets_win(all_targets: Set[str], platform: str) -> str:
if ext in [
'.exe', '.dll', '.bat', '.txt', '.whl', '.ps1', '.css',
'.sample', '.ico', '.pyd', '.ctypes', '.rst', '.fish',
'.csh', '.cat'
'.csh', '.cat', '.pdb', '.lib', '.html'
] or fname in [
'activate', 'README', 'command_template', 'fetch_macholib'
]:

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python3.7
#!/usr/bin/env python3.8
# Copyright (c) 2011-2020 Eric Froemling
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
@ -238,6 +238,7 @@ def _write_payload_file(assets_root: str, full: bool) -> None:
def _sync_windows_extras(cfg: Config) -> None:
# pylint: disable=too-many-branches
assert cfg.win_extras_src is not None
assert cfg.win_platform is not None
assert cfg.win_type is not None
@ -251,12 +252,17 @@ def _sync_windows_extras(cfg: Config) -> None:
# files in dst, so when building packages/etc. we should always start
# from scratch.
assert cfg.dst is not None
if cfg.debug:
pyd_rules = "--include '*_d.pyd'"
else:
pyd_rules = "--exclude '*_d.pyd' --include '*.pyd'"
for dirname in ('DLLs', 'Lib'):
_run(f'mkdir -p "{cfg.dst}/{dirname}"')
cmd = ('rsync --recursive --update --delete --delete-excluded '
' --prune-empty-dirs'
" --include '*.ico' --include '*.cat'"
" --include '*.dll' --include '*.pyd'"
f" --include '*.dll' {pyd_rules}"
" --include '*.py' --include '*." + OPT_PYC_SUFFIX + "'"
" --include '*/' --exclude '*' \"" +
os.path.join(cfg.win_extras_src, dirname) + '/" '
@ -266,7 +272,8 @@ def _sync_windows_extras(cfg: Config) -> None:
# Now sync the top level individual files that we want.
# (we could technically copy everything over but this keeps staging
# dirs a bit tidier)
toplevelfiles: List[str] = ['python37.dll']
dbgsfx = '_d' if cfg.debug else ''
toplevelfiles: List[str] = [f'python38{dbgsfx}.dll']
if cfg.win_type == 'win':
toplevelfiles += [

View File

@ -525,7 +525,9 @@ def checkenv() -> None:
raise RuntimeError(
f'{packagename} (for {PYTHON_BIN}) is required.\n'
f'To install it, try: "{PYTHON_BIN}'
f' -m pip install {packagename}"')
f' -m pip install {packagename}"\n'
f'Alternately, "tools/pcommand install_pip_reqs"'
f' will update all pip requirements.')
if minver is not None:
verlines = results.stdout.decode().splitlines()
if verlines[0].startswith('Cpplint fork'):

View File

@ -455,6 +455,14 @@ def python_gather() -> None:
pybuild.gather()
def python_winprune() -> None:
"""Prune unneeded files from windows python."""
import os
from efrotools import pybuild
os.chdir(PROJROOT)
pybuild.winprune()
def capitalize() -> None:
"""Print args capitalized."""
print(' '.join(w.capitalize() for w in sys.argv[2:]))

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python3.7
#!/usr/bin/env python3.8
# Copyright (c) 2011-2020 Eric Froemling
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
@ -42,6 +42,7 @@ import subprocess
from dataclasses import dataclass
from typing import TYPE_CHECKING
from efro.error import CleanError
from efro.terminal import Clr
if TYPE_CHECKING:
@ -391,9 +392,10 @@ class Updater:
'tools/devtool', 'tools/version_utils', 'tools/vmshell'
]:
if not contents.startswith(f'#!/usr/bin/env python{PYVER}'):
print(f'{Clr.RED}Incorrect shebang (first line) for '
f'{fname}.{Clr.RST}')
sys.exit(255)
# TEMP: allow this until ballistica.net is updated
if fname != 'tools/staging_server_upkeep':
raise CleanError(f'Incorrect shebang (first line) for '
f'{fname}.')
else:
copyrightline = 0
@ -636,7 +638,7 @@ class Updater:
if os.system(f'tools/pcommand update_assets_makefile {self._checkarg}'
) != 0:
print(
f'{Clr.RED}Error checking/updating assets Makefile.f{Clr.RST}')
f'{Clr.RED}Error checking/updating assets Makefile.{Clr.RST}')
sys.exit(255)
def _update_generated_code_makefile(self) -> None:
@ -644,7 +646,7 @@ class Updater:
if os.system('tools/update_generated_code_makefile' +
self._checkarg) != 0:
print(f'{Clr.RED}Error checking/updating'
f' generated-code Makefile{Clr.RED}')
f' generated-code Makefile.{Clr.RED}')
sys.exit(255)
def _update_resources_makefile(self) -> None:

View File

@ -41,7 +41,7 @@ if TYPE_CHECKING:
from typing_extensions import Literal
# Python major version we're using for all this stuff.
PYVER = '3.7'
PYVER = '3.8'
# Python binary assumed by these tools.
PYTHON_BIN = f'python{PYVER}' if platform.system() != 'Windows' else 'python'

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python3.7
#!/usr/bin/env python3.8
# Copyright (c) 2011-2020 Eric Froemling
#
# Permission is hereby granted, free of charge, to any person obtaining a copy

View File

@ -31,10 +31,24 @@ if TYPE_CHECKING:
from typing import List, Dict, Any
ENABLE_OPENSSL = True
PY38 = True
# Filenames we prune from Python lib dirs in source repo to cut down on size.
PRUNE_LIB_NAMES = [
'config-*', 'idlelib', 'lib-dynload', 'lib2to3', 'multiprocessing',
'pydoc_data', 'site-packages', 'ensurepip', 'tkinter', 'wsgiref',
'distutils', 'turtle.py', 'turtledemo', 'test', 'sqlite3/test', 'unittest',
'dbm', 'venv', 'ctypes/test', 'imaplib.py', '_sysconfigdata_*'
]
# Same but for DLLs dir (windows only)
PRUNE_DLL_NAMES = ['*.ico']
def build_apple(arch: str, debug: bool = False) -> None:
"""Run a build for the provided apple arch (mac, ios, or tvos)."""
# pylint: disable=too-many-branches
# pylint: disable=too-many-statements
import platform
import subprocess
from efro.error import CleanError
@ -42,6 +56,7 @@ def build_apple(arch: str, debug: bool = False) -> None:
# IMPORTANT; seems we currently wind up building against /usr/local gettext
# stuff. Hopefully the maintainer fixes this, but for now I need to
# remind myself to blow it away while building.
# (via brew remove gettext --ignore-dependencies)
if 'MacBook-Fro' in platform.node():
if (subprocess.run('which gettext', shell=True,
check=False).returncode == 0):
@ -148,11 +163,19 @@ def build_apple(arch: str, debug: bool = False) -> None:
# Remove makefile dependencies so we don't build the
# libs we're not using.
srctxt = '$$(PYTHON_DIR-$1)/dist/lib/libpython$(PYTHON_VER)m.a: '
txt = replace_one(
txt, srctxt, '$$(PYTHON_DIR-$1)/dist/lib/libpython$(PYTHON_VER)m.a: ' +
('build/$2/Support/OpenSSL ' if ENABLE_OPENSSL else '') +
'build/$2/Support/XZ $$(PYTHON_DIR-$1)/Makefile\n#' + srctxt)
srctxt = '$$(PYTHON_DIR-$1)/dist/lib/libpython$(PYTHON_VER).a: '
if PY38:
txt = replace_one(
txt, srctxt,
'$$(PYTHON_DIR-$1)/dist/lib/libpython$(PYTHON_VER).a: ' +
('build/$2/Support/OpenSSL ' if ENABLE_OPENSSL else '') +
'build/$2/Support/XZ $$(PYTHON_DIR-$1)/Makefile\n#' + srctxt)
else:
txt = replace_one(
txt, srctxt,
'$$(PYTHON_DIR-$1)/dist/lib/libpython$(PYTHON_VER)m.a: ' +
('build/$2/Support/OpenSSL ' if ENABLE_OPENSSL else '') +
'build/$2/Support/XZ $$(PYTHON_DIR-$1)/Makefile\n#' + srctxt)
srctxt = ('dist/Python-$(PYTHON_VER)-$1-support.'
'$(BUILD_NUMBER).tar.gz: ')
txt = replace_one(
@ -166,13 +189,13 @@ def build_apple(arch: str, debug: bool = False) -> None:
# Set mac/ios version reqs
# (see issue with utimensat and futimens).
txt = replace_one(txt, 'MACOSX_DEPLOYMENT_TARGET=10.8',
'MACOSX_DEPLOYMENT_TARGET=10.14')
'MACOSX_DEPLOYMENT_TARGET=10.15')
# And equivalent iOS (11+).
txt = replace_one(txt, 'CFLAGS-iOS=-mios-version-min=8.0',
'CFLAGS-iOS=-mios-version-min=12.0')
'CFLAGS-iOS=-mios-version-min=13.0')
# Ditto for tvOS.
txt = replace_one(txt, 'CFLAGS-tvOS=-mtvos-version-min=9.0',
'CFLAGS-tvOS=-mtvos-version-min=12.0')
'CFLAGS-tvOS=-mtvos-version-min=13.0')
if debug:
@ -186,11 +209,12 @@ def build_apple(arch: str, debug: bool = False) -> None:
# Debug has a different name.
# (Currently expect to replace 12 instances of this).
dline = 'python$(PYTHON_VER)m'
dline = 'python$(PYTHON_VER)' if PY38 else 'python$(PYTHON_VER)m'
splitlen = len(txt.split(dline))
if splitlen != 13:
raise RuntimeError(f'Unexpected configure line count {splitlen}.')
txt = txt.replace(dline, 'python$(PYTHON_VER)dm')
txt = txt.replace(
dline, 'python$(PYTHON_VER)d' if PY38 else 'python$(PYTHON_VER)dm')
writefile('Makefile', txt)
@ -293,7 +317,8 @@ def build_android(rootdir: str, arch: str, debug: bool = False) -> None:
# Set this to a particular cpython commit to target exact releases from git
# commit = 'd7c567b08f9d7d6aef21b881340a2b72731129db' # 3.7.7 release
commit = '4b47a5b6ba66b02df9392feb97b8ead916f8c1fa' # 3.7.8 release
# commit = '4b47a5b6ba66b02df9392feb97b8ead916f8c1fa' # 3.7.8 release
commit = '580fbb018fd0844806119614d752b41fc69660f9' # 3.8.5
if commit is not None:
ftxt = readfile('pybuild/source.py')
@ -336,7 +361,10 @@ def build_android(rootdir: str, arch: str, debug: bool = False) -> None:
def android_patch() -> None:
"""Run necessary patches on an android archive before building."""
fname = 'src/cpython/Modules/Setup.dist'
if PY38:
fname = 'src/cpython/Modules/Setup'
else:
fname = 'src/cpython/Modules/Setup.dist'
txt = readfile(fname)
# Need to switch some flags on this one.
@ -344,17 +372,28 @@ def android_patch() -> None:
'zlib zlibmodule.c -lz\n#zlib zlibmodule.c')
# Just turn all these on.
for enable in [
'#array arraymodule.c', '#cmath cmathmodule.c _math.c',
'#math mathmodule.c', '#_contextvars _contextvarsmodule.c',
'#_struct _struct.c', '#_weakref _weakref.c',
'#_testcapi _testcapimodule.c', '#_random _randommodule.c',
'#_elementtree -I', '#_pickle _pickle.c',
'#_datetime _datetimemodule.c', '#_bisect _bisectmodule.c',
'#_heapq _heapqmodule.c', '#_asyncio _asynciomodule.c',
'#unicodedata unicodedata.c', '#fcntl fcntlmodule.c',
'#select selectmodule.c', '#_csv _csv.c',
'#_socket socketmodule.c', '#_blake2 _blake2/blake2module.c',
'#binascii binascii.c', '#_posixsubprocess _posixsubprocess.c',
'#array arraymodule.c',
'#cmath cmathmodule.c _math.c',
'#math mathmodule.c',
'#_contextvars _contextvarsmodule.c',
'#_struct _struct.c',
'#_weakref _weakref.c',
# '#_testcapi _testcapimodule.c',
'#_random _randommodule.c',
'#_elementtree -I',
'#_pickle _pickle.c',
'#_datetime _datetimemodule.c',
'#_bisect _bisectmodule.c',
'#_heapq _heapqmodule.c',
'#_asyncio _asynciomodule.c',
'#unicodedata unicodedata.c',
'#fcntl fcntlmodule.c',
'#select selectmodule.c',
'#_csv _csv.c',
'#_socket socketmodule.c',
'#_blake2 _blake2/blake2module.c',
'#binascii binascii.c',
'#_posixsubprocess _posixsubprocess.c',
'#_sha3 _sha3/sha3module.c'
]:
txt = replace_one(txt, enable, enable[1:])
@ -460,6 +499,19 @@ def android_patch() -> None:
print('APPLIED EFROTOOLS ANDROID BUILD PATCHES.')
def winprune() -> None:
"""Prune unneeded files from windows python dists."""
for libdir in ('assets/src/windows/Win32/Lib',
'assets/src/windows/x64/Lib'):
assert os.path.isdir(libdir)
run('cd "' + libdir + '" && rm -rf ' + ' '.join(PRUNE_LIB_NAMES))
for dlldir in ('assets/src/windows/Win32/DLLs',
'assets/src/windows/x64/DLLs'):
assert os.path.isdir(dlldir)
run('cd "' + dlldir + '" && rm -rf ' + ' '.join(PRUNE_DLL_NAMES))
print('Win-prune successful.')
def gather() -> None:
"""Gather per-platform python headers, libs, and modules together.
@ -485,7 +537,7 @@ def gather() -> None:
bsuffix = '_debug' if buildtype == 'debug' else ''
bsuffix2 = '-debug' if buildtype == 'debug' else ''
libname = 'python' + PYVER + ('dm' if debug else 'm')
libname = 'python' + PYVER + ('d' if debug else '')
bases = {
'mac':
@ -614,16 +666,8 @@ def gather() -> None:
# Prune a bunch of modules we don't need to cut
# down on size.
prune = [
'config-*', 'idlelib', 'lib-dynload', 'lib2to3',
'multiprocessing', 'pydoc_data', 'site-packages',
'ensurepip', 'tkinter', 'wsgiref', 'distutils',
'turtle.py', 'turtledemo', 'test', 'sqlite3/test',
'unittest', 'dbm', 'venv', 'ctypes/test', 'imaplib.py',
'_sysconfigdata_*'
]
run('cd "' + assets_src_dst + '" && rm -rf ' +
' '.join(prune))
' '.join(PRUNE_LIB_NAMES))
# Some minor filtering to system scripts:
# on iOS/tvOS, addusersitepackages() leads to a crash

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python3.7
#!/usr/bin/env python3.8
# Copyright (c) 2011-2020 Eric Froemling
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
@ -51,11 +51,12 @@ from batools.pcommand import (
gen_fulltest_buildfile_windows, gen_fulltest_buildfile_apple,
gen_fulltest_buildfile_linux, python_build_apple, python_build_apple_debug,
python_build_android, python_build_android_debug, python_android_patch,
python_gather, capitalize, efrocache_update, efrocache_get,
get_modern_make, warm_start_asset_build, update_docs_md, list_pip_reqs,
install_pip_reqs, checkenv, ensure_prefab_platform, prefab_run_var,
make_prefab, update_makebob, lazybuild, android_archive_unstripped_libs,
efro_gradle, stage_assets, update_assets_makefile, update_project)
python_gather, python_winprune, capitalize, efrocache_update,
efrocache_get, get_modern_make, warm_start_asset_build, update_docs_md,
list_pip_reqs, install_pip_reqs, checkenv, ensure_prefab_platform,
prefab_run_var, make_prefab, update_makebob, lazybuild,
android_archive_unstripped_libs, efro_gradle, stage_assets,
update_assets_makefile, update_project)
# pylint: enable=unused-import
if TYPE_CHECKING: