* Docs: update min required version
and add comment about security.
* Core: rework python version check
* CI: set min micro update for build and release
* CI: build: fail fast if setup.py fails on windows
* CI: build: fail for missing uploads, rework compression
Upload-artifact allows setting compression level now.
The change speeds up both upload and extraction.
* CI: match build gz in release
* CI: build: verify worlds all load
* CI: build: generate a game
* Generate: move worlds loaded exception to allow settings to init from worlds
* CI: build: build setup before running tests
* MultiServer: speed up location commands
Adds optimized pure python wrapper around locations dict
Adds optimized cython implementation of the wrapper, saving cpu time and 80% memory use
* Speedups: auto-build on import and build during setup
* Speedups: add requirements
* CI: don't break with build_ext
* Speedups: use C++ compiler for pyximport
* Speedups: cleanup and more validation
* Speedups: add tests for LocationStore
* Setup: delete temp in-place build modules
* Speedups: more tests and safer indices
The change has no security implications, but ensures that entries[IndexEntry.start] is always valid.
* Speedups: add cython3 compatibility
* Speedups: remove unused import
* Speedups: reformat
* Speedup: fix empty set in test
* Speedups: use regular dict in Locations.get_for_player
* CI: run unittests with beta cython
now with 2x nicer names
* ModuleUpdater/setup: install pkg_resources and check for pip
plus minor cleanup in the github actions
* ModuleUpdate/setup: make flake8 happy
* ModuleUpdate/setup: make mypy happier
* CI: fix and more greedy filtering
* CI: only run lint if *.py changed
* CI: only run CodeQL if supported file changed
* CI: fix unittests still triggering for build.yml
* CI: update CodeQL action
* CI: trigger codeql when changing the workflow