* Core: Replace generator creation/iteration in CollectionState methods
Using generators in these functions incurs overhead to create the new
generator instance, call the `any`/`all`/`sum` function and have the
`any`/`all`/`sum` function iterate the generator, which in turn iterates
the iterable.
Replacing the use of generators with for loops is faster.
Getting `self.prog_items[player]` once in advance also improves
performance of iterating longer iterables.
* Add comment on the choice of for loops instead of any()/all()/sum()
* [LADX] Fix minimal accessibility
* allow_partial for minimal accessibility
* create the correct partial_all_state
* skip our prefills rather than removing after
* dont rebuild our prefill list
---------
Co-authored-by: threeandthreee <[email protected]>
* Tests: massively improve the memory leak test performance
With the growing number of worlds, GC becomes the bottleneck and slows down the test.
* Tests: fix typing in general/test_memory
* MultiServer: add NoText tag and handling
* MultiServer: deprecate and warn for uncompressed connections
* MultiServer: fix missing space in no compression warning
* - Unrolled and improved the structure of the test for Mods + ER, to improve total performance and performance on individual tests for threading purposes
* Use | instead of Union[]
Co-authored-by: Jouramie <[email protected]>
* - Remove unused using
---------
Co-authored-by: Jouramie <[email protected]>
* skips opening a subprocess if kivy (and thus the launcher gui) hasn't been loaded so stdin can function as expected on --nogui and similar
* this exists lol
* keep old function around and use new function for CC component
* fix name=None typing
* unit test that get all state is called with partial entrances before connect_entrances
* fix the two worlds doing it
* lol
* unused import
* Update test/general/test_entrances.py
Co-authored-by: Exempt-Medic <[email protected]>
* Update test_entrances.py
---------
Co-authored-by: Exempt-Medic <[email protected]>
* adds a retry to priority fill in case the one item per player optimization would cause the priority fill to fail to find valid placements
* Update Fill.py
Co-authored-by: Exempt-Medic <[email protected]>
---------
Co-authored-by: Exempt-Medic <[email protected]>
* Add connect_entrances
* update ER docs
* fix that test, but also ew
* Add a test that asserts the new finalization
* Rewrite test a bit
* rewrite some more
* blank line
* rewrite rewrite rewrite
* rewrite rewrite rewrite
* RE. WRITE.
* oops
* Bruh
* I guess, while we're at it
* giga oops
* It's been a long day
* Switch KH1 over to this design with permission of GICU
* Revert
* Oops
* Bc I like it
* Update locations.py