Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge main #2

Closed
wants to merge 213 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
213 commits
Select commit Hold shift + click to select a range
6c69f59
WebHost: fix host room not updating (ports in) slot table (#4308)
black-sliver Dec 8, 2024
e3b5451
CI: cap pytest-subtest version (#4344)
qwint Dec 8, 2024
a948697
Raft: Place locked items in create_items and fix get_pre_fill_items (…
Mysteryem Dec 9, 2024
5b4d7c7
TUNIC: Add Shield to Ladder Storage logic (#4146)
ScipioWright Dec 9, 2024
1f712d9
Various Worlds: use / explicitly for pkgutil (#4232)
qwint Dec 9, 2024
26f9720
Aquaria: mega refactoring (#3810)
tioui Dec 9, 2024
51c4fe8
Stardew Valley: Fix a bug where walnutsanity would get deactivated ev…
Jouramie Dec 9, 2024
aa22b62
Stardew Valley: Force deactivation of Mr. Qi's special orders when gi…
Jouramie Dec 9, 2024
0b3d34a
CI: update scan-build to v19 (#4338)
black-sliver Dec 10, 2024
4a5ba75
WebHost: Set Generator memory limit to 4GiB (#4319)
black-sliver Dec 10, 2024
f79657b
WebHost: disable abbreviations for argparse (#4352)
Berserker66 Dec 10, 2024
3fb0b57
Core: fix exceptions coming from LocationStore (#4358)
black-sliver Dec 10, 2024
781100a
CI: remove version restriction on pytest-subtests (#4356)
Jouramie Dec 10, 2024
5dd19fc
MultiServer/CommonClient: We forgot about Item Links again (Hint Prio…
NewSoupVi Dec 10, 2024
925fb96
Lingo: Fix number hunt issues on panels mode (#4342)
hatkirby Dec 10, 2024
704f14f
Core: Add toggles_as_bools to options.as_dict (#3770)
Exempt-Medic Dec 10, 2024
54a0a5a
The Witness: Put progression + useful on some items. (#4027)
NewSoupVi Dec 10, 2024
9a37a13
The Witness: Add more panels to the "doors: panels" mode (#2916)
NewSoupVi Dec 10, 2024
3c5ec49
Stardew Valley: Fix potential incompletable seed when starting winter…
Jouramie Dec 12, 2024
f91537f
Muse Dash: Remove bad option defaults. #4340
DeamonHunter Dec 12, 2024
7d0b701
TUNIC: Change rule for heir access in non-hex quest #4365
ScipioWright Dec 12, 2024
3acbe9e
Castlevania: Circle of the Moon - Implement New Game (#3299)
LiquidCat64 Dec 12, 2024
144d612
Super Mario 64: Rework logic for 100 Coins (#4131)
josephwhite Dec 12, 2024
f5e3677
Pokemon Emerald: Fix invalid escape sequence warnings (#4328)
Mysteryem Dec 12, 2024
d773695
The Witness: Panel Hunt Plando (#3549)
NewSoupVi Dec 12, 2024
9815306
Docs: Use ModuleUpdate.py #3785
qwint Dec 12, 2024
1ca8d3e
Docs: add description of Indirect Condition problem (#4295)
qwint Dec 12, 2024
8d9454e
Core: cast all the settings values so they don't try to get pickled l…
qwint Dec 12, 2024
ccea6bc
LADX: Improve icon guesses for foreign items (#2201)
threeandthreee Dec 13, 2024
0370e66
Pokemon Emerald: Add Mr Briney's House indirect conditions (#4154)
Mysteryem Dec 15, 2024
0fdc14b
Core: Deduplicate exception output (#4036)
Zannick Dec 15, 2024
6282efb
TUNIC: Additional Combat Logic Option (#3658)
ScipioWright Dec 15, 2024
d1823a2
HK: add random handling to plandocharmcosts (#4327)
qwint Dec 15, 2024
728d249
Core: Add some more world convenience methods (#3021)
NewSoupVi Dec 15, 2024
cacab68
Pokemon Emerald: Remove unnecessary code (#4364)
Zunawe Dec 16, 2024
1ded7b2
Aquaria: Replacing the release link to the latest link (#4381)
tioui Dec 20, 2024
2e0769c
Noita: Make greed die a trap (#4382)
ScipioWright Dec 20, 2024
de3707a
Core/Docs: Adding apostrophe quotes around variables in printed error…
palex00 Dec 20, 2024
e142283
LADX: enable upstream options (#3962)
threeandthreee Dec 20, 2024
4f71073
LADX: correct in-game check counter
threeandthreee Dec 20, 2024
35d3044
LADX: fix for syntax warning (#4376)
threeandthreee Dec 20, 2024
7c8d102
TUNIC: Logic for bushes in guard house 2 upper and belltower (#4371)
ScipioWright Dec 20, 2024
e1a1cd1
LADX: Open Mabe Option (#3964)
threeandthreee Dec 20, 2024
46613ad
SMZ3: Fix minimal logic considering SM boss tokens unnecessary (#4377)
KScl Dec 21, 2024
4f590cd
Inscryption: Implement new game (#3621)
DrBibop Dec 21, 2024
f3ec829
Core: Add JSONMessagePart for Hint Status (Hint Priority) (#4387)
CodeTriangle Dec 22, 2024
78637c9
Tests: Add spheres test for missing indirect conditions (#3924)
Mysteryem Dec 24, 2024
5578ccd
Landstalker: Fix issues on generation (#4345)
Dinopony Dec 24, 2024
6c1dc5f
Landstalker: Fix paths Lantern logic affecting other Landstalker worl…
Mysteryem Dec 25, 2024
b05f81b
The Witness: Fix bridge/elevator items being progression when they sh…
NewSoupVi Dec 25, 2024
845000d
Docs: Make an actual LogicMixin spec & explanation (#3975)
NewSoupVi Dec 25, 2024
222c8aa
Core: Reword item classification definitions to allow for progression…
NewSoupVi Dec 25, 2024
fe81053
Core: Give the option to worlds to have a remaining fill that respect…
NewSoupVi Dec 25, 2024
6294270
The Witness: Add info about which door items exist in the pool to slo…
NewSoupVi Dec 25, 2024
33ae68c
DS3: Convert post_fill to stage_post_fill for better performance (#4122)
Mysteryem Dec 26, 2024
b9642a4
KH2: Using fast_fill instead of fill_restrictive (#4227)
Exempt-Medic Dec 26, 2024
218f289
Core: Generic Entrance Rando (#2883)
BadMagic100 Dec 27, 2024
3bcc86f
Shivers: Add events and fix require puzzle hints logic (#4018)
korydondzila Dec 27, 2024
ca1b3df
Shivers: Follow on PR to cleanup options #4401
korydondzila Dec 27, 2024
2065246
Factorio: Make it possible to use rocket part in blueprint parameteri…
CaitSith2 Dec 29, 2024
fa95ae4
Factorio: require version that fixes a randomizer exploit (#4391)
Berserker66 Dec 29, 2024
0de1369
Factorio: hide hidden vanilla techs in factoriopedia too (#4332)
Berserker66 Dec 29, 2024
8dbecf3
The Witness: Make location order in the spoiler log deterministic (#3…
NewSoupVi Dec 29, 2024
c4bbcf9
TUNIC: Add relics and abilities to the item pool in deterministic ord…
Mysteryem Dec 31, 2024
3c9270d
FFMQ: Create itempool in deterministic order (#4413)
Mysteryem Dec 31, 2024
6e59ee2
Zork Grand Inquisitor: Precollect Start with Hotspot Items in determi…
Mysteryem Dec 31, 2024
917335e
Core: it's 2025 (#4417)
Berserker66 Jan 1, 2025
a7b483e
Shivers: Adds ixupi captures priority option (#4403)
korydondzila Jan 2, 2025
82c44aa
FFMQ: Fix encoding issue with Game Page (#4299)
nicholassaylor Jan 3, 2025
2a11d9f
try again to award the starting items post cutscene if needed. (#4408)
CaitSith2 Jan 3, 2025
5927926
Blasphemous: Fix starting_location: random affecting all Blasphemous …
Mysteryem Jan 3, 2025
25381ef
Core: Make the error for a missing option display the player name (#4…
ScipioWright Jan 4, 2025
1cef659
Shivers: Fix spelling error in naming (#4425)
korydondzila Jan 4, 2025
daf94fc
Pokemon RB: Fixing misnamed locations (#4404)
coveleski Jan 4, 2025
aadcb4c
HK: use rich_text_options_doc to make webhost formatting look better …
qwint Jan 6, 2025
7d50699
HK: add location counts to option descriptions (#4083)
qwint Jan 6, 2025
16f8b41
Core: add docstrings for launcher components (#4148)
qwint Jan 6, 2025
7c89a83
Docs: Clarify !alias commands in commands_en.md (#4426)
eudaimonistic Jan 6, 2025
2d3faea
Core: Include unfilled locations in error when there are not enough l…
ScipioWright Jan 6, 2025
07e8965
KH2: Doc Updates (#4434)
shananas Jan 6, 2025
3204680
SNIClient: Let clients based on SNIClient monitor packages via on_pac…
TheLX5 Jan 6, 2025
de58cb0
Core: Pickle hints by value (#4441)
qwint Jan 7, 2025
fe06fe0
Factorio: add fluid mining technology to logic requirements (#4385)
Berserker66 Jan 7, 2025
a29ba4a
The Messenger: reduce strictness of output path check (#4442)
alwaysintreble Jan 7, 2025
d3ed40c
Stardew Valley: Hide the Mods from the simple options page (#4446)
agilbert1412 Jan 8, 2025
874197d
Linux: move the user home Archipelago dir to $XDG_DATA_HOME (#4347)
ruby0b Jan 10, 2025
894a857
kvui: add autocompleting new hint text input (#3535)
Berserker66 Jan 10, 2025
043ba41
SM generate without rom (#3460)
lordlou Jan 10, 2025
258ea10
TUNIC: Modify UT support to make a better pattern (#3860)
ScipioWright Jan 10, 2025
96b5006
LTTP: Add missing GT Pre-Moldorm Bomb Wall Logic (#4440)
Alchav Jan 10, 2025
112bfe0
TUNIC: Logic for Beneath the Vault Bridge Switch #4432
ScipioWright Jan 10, 2025
c2bd9df
Subnautica: fix typo and remove no longer used logger (#4456)
Berserker66 Jan 10, 2025
d97ee5d
Core: update certifi (#4453)
Berserker66 Jan 10, 2025
29b34ca
Pokémon R/B: Fix Route 11-E to Route-12-W logic (#4435)
Alchav Jan 11, 2025
adcb2f5
MultiServer: Correct tying of Context.groups (#4460)
NewSoupVi Jan 11, 2025
70942ed
BizHawkClient: Fix version warning not falling through to regular exe…
Zunawe Jan 12, 2025
4edca0c
BizHawkClient: Add command to get size of memory domain (#4439)
Zunawe Jan 12, 2025
0fc722c
Stardew Valley: Remove seasonal farming event, use regions instead (#…
Jouramie Jan 12, 2025
9928639
Docs: Fix Typo in Rich Text Options Flag Documentation (#4462)
qwint Jan 12, 2025
3f935aa
Muse Dash: Change Data storage from a .txt file to a .py file and Fil…
DeamonHunter Jan 12, 2025
172ad4e
Adventure: Optimize imports (#4300)
nicholassaylor Jan 12, 2025
1f966ee
BizhawkClient: set metadata from patch file (#4346)
Silvris Jan 12, 2025
4c734b4
LTTP: Shop and Arrow fixes (#4067)
Alchav Jan 13, 2025
0f1c119
Factorio: improve error message for config validation (#4421)
smerritt Jan 13, 2025
f9cc19e
Fill: Crash if there are remaining unfilled locations (#2830)
alwaysintreble Jan 13, 2025
93e8613
HK: Abstract and default grub counts (#4336)
qwint Jan 13, 2025
4cb8fa3
Aquaria: Fixing itemlink not working (#4473)
tioui Jan 13, 2025
20119e3
Faxanadu: Fix generations with itemlinks (#4395)
Exempt-Medic Jan 13, 2025
6220963
Tests: No Creating Items/Locations/Regions in __init__ (#4474)
Exempt-Medic Jan 13, 2025
ffd0c8b
Blasphemous: Move Locality Changes Earlier (#4422)
Exempt-Medic Jan 14, 2025
0f1dc6e
Codeowners: @threeandthreee as LADX maintainer #4216
threeandthreee Jan 14, 2025
0f3818e
Utils: Visualize Regions showing the reachable regions in color (#4436)
ScipioWright Jan 14, 2025
04928bd
DKC3: Remove unused variables and imports #4302
nicholassaylor Jan 14, 2025
dae9d4c
LTTP: Fix Itemlinks (#4479)
Exempt-Medic Jan 14, 2025
79e6bee
Stardew Valley: Update Mod Content (#4416)
agilbert1412 Jan 14, 2025
b91a7ac
LADX: Move Locality Changes Earlier (#4478)
Exempt-Medic Jan 14, 2025
bedf746
MultiServer: Revert hints being created for already found locations #…
NewSoupVi Jan 14, 2025
01df35f
Factorio: fix Evolution Trap crashing bound server (#4366)
Berserker66 Jan 14, 2025
207a76d
OoT: Two Bugfixes (#4389)
Exempt-Medic Jan 14, 2025
1eefe23
Lingo: Add speed boost mode (#3989)
hatkirby Jan 15, 2025
9dac7d9
MultiServer: update InvalidPacket text for location scouts (#4485)
Berserker66 Jan 15, 2025
b7baaed
TUNIC: Grass Randomizer (#3913)
silent-destroyer Jan 15, 2025
b7621a0
TLoZ: Fix typo in setup guide (#4486)
ScipioWright Jan 15, 2025
902d03d
LADX: Stabilize Item Pool Option (#3935)
threeandthreee Jan 16, 2025
c781082
Core: Fix crash when trying to log an exception (#4313)
NewSoupVi Jan 16, 2025
5c56dc0
SoE: fix logic for drain cave with OoB (#4496)
black-sliver Jan 17, 2025
9d4bd6e
pytest: only check tests/ and worlds/ (#4500)
black-sliver Jan 17, 2025
7890415
Test: fix typo in pytest.ini (#4502)
black-sliver Jan 17, 2025
90f80ce
AHiT: Various logic fixes (#4492)
Mysteryem Jan 17, 2025
2e4f5a6
TUNIC: Make the local_fill option load in a specific number of locati…
ScipioWright Jan 17, 2025
1485882
KH2: Fixes abilities overflowing into items and crashing the game (#4…
JaredWeakStrike Jan 17, 2025
3a5a4b8
LADX: improved warps across unexplored tiles (#4111)
threeandthreee Jan 17, 2025
4b8f990
LADX: Swap out invalid characters in item names (#4495)
threeandthreee Jan 17, 2025
8f307c2
Core: Fix the distribution of Options.Range.triangular() (#4283)
Mysteryem Jan 17, 2025
a9435dc
KH2: Reduce unnecessary packets sent/requested by the client (#4035)
Mysteryem Jan 17, 2025
3d5c277
Core: don't log warnings for plando_items and missing lttp options (#…
alwaysintreble Jan 17, 2025
d218dec
MMBN3: Logic and Bug Fixes, New Checks (#3646)
digiholic Jan 17, 2025
0d6db29
TUNIC: Reorder options (#4491)
ScipioWright Jan 17, 2025
9507300
SoE: update to v050 (#4497)
black-sliver Jan 17, 2025
3a46c9f
LADX: Closing the client window closes the window (#4350)
Ishigh1 Jan 17, 2025
698d27a
OoT: Allow Crowd Control support for Ocarina of Time (Bizhawk) #4501
PABessero Jan 17, 2025
23ea3c0
Core: some low-hanging fruit on the strict type check (#3416)
beauxq Jan 17, 2025
2b9fa89
Bizhawk: adds typing to bizhawk component launch (#4505)
qwint Jan 17, 2025
1ac8349
CI: update pyright (#4506)
black-sliver Jan 17, 2025
8732974
ALttP: update Spanish Setup Docs (#2670)
CarlosBor Jan 18, 2025
005a143
MultiServer: Add slot to SetReply packets (#3747)
NewSoupVi Jan 18, 2025
1c9409c
CommonClient: implement check_locations to send missing locations onl…
Berserker66 Jan 18, 2025
992f192
Stardew Valley: Improve generation performance by around 11% by movin…
Jouramie Jan 19, 2025
0bb657d
Pokemon Emerald: Use new check_locations helper (#4518)
Zunawe Jan 19, 2025
9183e8f
BizHawkClient: Use built-ins for typing (#4508)
Zunawe Jan 19, 2025
9e353eb
SMZ3: Fix Itemlinks with link_replacement #4099
Silvris Jan 19, 2025
cbf4bbb
OoT Adjuster: Remove per_slot_randoms (#4264)
nicholassaylor Jan 19, 2025
9443861
Zillion: Finalize item locations in either generate_output or fill_sl…
Mysteryem Jan 19, 2025
563794a
Zillion: Use Useful Item Classification (#4179)
beauxq Jan 19, 2025
ca8ffe5
Zillion: Priority Dead Ends Feature (#4220)
beauxq Jan 19, 2025
130232b
Core: Make log time an optional arg & setting for Generate.py as well…
NewSoupVi Jan 20, 2025
39847c5
WebHost: sort slots by player_id in api blueprint (#4354)
Berserker66 Jan 20, 2025
eb3c3d6
FFMQ: Adds Items Accessibility (#4322)
Exempt-Medic Jan 20, 2025
992841a
CommonClient: abstract url handling so it's importable (#4068)
qwint Jan 20, 2025
4fa8c43
FFMQ: Fix collect_item (#4433)
Exempt-Medic Jan 20, 2025
a2fbf85
SMZ3: Change locality options earlier (#4424)
Exempt-Medic Jan 20, 2025
d5cd95c
Docs: Clarify usage of slot data for trackers in World API doc (#3986)
massimilianodelliubaldini Jan 20, 2025
4f77aba
TUNIC: Fix failure in 1-player grass (#4520)
ScipioWright Jan 20, 2025
96f469c
TUNIC: Fix hero relics not being prog if hex quest is on in combat lo…
ScipioWright Jan 20, 2025
436c0a4
Core: Add connect_entrances world step/stage (#4420)
NewSoupVi Jan 20, 2025
05d1b21
Docs: Update ID Overlapping Docs (#4447)
DaComputerNerd717 Jan 20, 2025
823b17c
TUNIC: Make grass go in the regular location name group too (#4504)
ScipioWright Jan 20, 2025
e2b9421
HK: Save GrubHuntGoal by value (#4521)
qwint Jan 20, 2025
a126dee
HK: some stuff ruff and pycodestyle complained about (#4523)
qwint Jan 20, 2025
33fd9de
Core: Add Retry to Priority Fill (#4477)
qwint Jan 20, 2025
edacb17
Factorio: remove debug print (#4533)
Berserker66 Jan 21, 2025
1a1b7e9
TUNIC: Reduce range end for local_fill option #4534
ScipioWright Jan 21, 2025
949527f
KH2: Bug fixes and game update future proofing (#4075)
JaredWeakStrike Jan 21, 2025
5a42c70
Core: Fix worlds that rely on other worlds having their Entrances con…
NewSoupVi Jan 22, 2025
fa28168
AHIT: Fix broken link in setup guide (#4524)
CookieCat45 Jan 23, 2025
bb09481
TUNIC: Make the standard entrances get made with tuples instead of se…
ScipioWright Jan 24, 2025
7474c27
Core: Add launch function to call launch_subprocess only if multiproc…
qwint Jan 24, 2025
3d1d690
Pokemon Emerald: Add Free Fly Blacklist (#4165)
SansSkill Jan 24, 2025
3df2dbe
TUNIC: Add ability shuffle information to spoiler log (#4498)
silent-destroyer Jan 24, 2025
ddf7fdc
TUNIC: Add Torch Item (#4538)
silent-destroyer Jan 24, 2025
513e361
TUNIC: Fix UT create_item classification (#4514)
ScipioWright Jan 24, 2025
cc77041
MultiServer: optimize PrintJSON for !release (#4545)
black-sliver Jan 24, 2025
8664122
Shivers: Stop using get_all_state cache to fix timing issue #4522
qwint Jan 24, 2025
1832bac
BizHawkClient: Update README for `get_memory_size` (#4511)
Zunawe Jan 25, 2025
96b941e
Super Mario 64: Add Star Costs to Spoiler (#4544)
josephwhite Jan 25, 2025
90417e0
CommonClient: Expand on make_gui docstring (#4449)
qwint Jan 26, 2025
8622cb6
Factorio: Inventory Spill Traps (#4457)
Berserker66 Jan 26, 2025
57a571c
KDL3: Fix world access on non-strict open world (#4543)
Silvris Jan 27, 2025
c432331
Pokemon Emerald: Clarify death link and start inventory descriptions …
Zunawe Jan 27, 2025
b570aa2
Pokemon Emerald: Clean up free fly blacklist (#4552)
Zunawe Jan 27, 2025
43874b1
Noita: Add clarification to check option descriptions (#4553)
ScipioWright Jan 27, 2025
41055cd
Pokemon Emerald: Update changelog (#4551)
Zunawe Jan 27, 2025
8c5592e
KH2: Fix determinism by using tuples instead of sets (#4548)
Exempt-Medic Jan 27, 2025
a53bcb4
KH2: Use int(..., 0) in Client #4562
NewSoupVi Jan 27, 2025
9466d52
MM2: fix plando and weakness special cases (#4561)
Silvris Jan 28, 2025
1ebc9e2
Stardew Valley: Tests: Restructure the tests that validate Mods + ER …
agilbert1412 Jan 28, 2025
41898ed
MultiServer: implement NoText and deprecate uncompressed Websocket co…
black-sliver Jan 29, 2025
738c21c
Tests: massively improve the memory leak test performance (#4568)
black-sliver Jan 29, 2025
57afdfd
meritous: move completion_condition to set_rules (#4567)
FelicitusNeko Jan 29, 2025
b8666b2
Stardew Valley: Remove weird magic trap test? (#4570)
Jouramie Jan 29, 2025
8e14e46
Stardew Valley: Radioactive slot machine should be a ginger island ch…
agilbert1412 Jan 30, 2025
1fe8024
Stardew valley: Add Mod Recipes tests (#4580)
agilbert1412 Jan 30, 2025
67e8877
Docs: fix lower limit of valid IDs in network protocol.md (#4579)
black-sliver Jan 31, 2025
445c9b2
Settings: Handle empty Groups (#4576)
qwint Feb 1, 2025
d116702
Core: Make csv options output ignore hidden options (#4539)
Jarno458 Feb 1, 2025
b7b78de
LADX: Fix generation error on minimal accessibility (#4281)
spinerak Feb 1, 2025
051518e
Stardew Valley: Fix unresolved reference warning and unused imports (…
Jouramie Feb 1, 2025
894732b
kvui: set home folder to non-default (#4590)
Berserker66 Feb 2, 2025
f28aff6
Core: Replace generator creation/iteration in CollectionState methods…
Mysteryem Feb 2, 2025
6282528
TUNIC: Call Combat Logic experimental (#4594)
ScipioWright Feb 3, 2025
19faaa4
Core: Fix #4595 by using first type's docstring in a union type (#4600)
massimilianodelliubaldini Feb 4, 2025
da48af6
Stardew Valley: add assert_can_reach_region_* for better tests (#4556)
Jouramie Feb 4, 2025
db11c62
KH2 Doc Update #4609
shananas Feb 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Settings: Handle empty Groups (ArchipelagoMW#4576)
* export empty groups as an empty dict instead of crashing

* Update settings.py

Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>

* check instance values from self as well

* Apply suggestions from code review

Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>

---------

Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
qwint and black-sliver authored Feb 1, 2025
commit 445c9b22d6cfb9b8ff4e76b91995d08abf154ff5
8 changes: 6 additions & 2 deletions settings.py
Original file line number Diff line number Diff line change
@@ -109,7 +109,7 @@ def changed(self) -> bool:
def get_type_hints(cls) -> Dict[str, Any]:
"""Returns resolved type hints for the class"""
if cls._type_cache is None:
if not isinstance(next(iter(cls.__annotations__.values())), str):
if not cls.__annotations__ or not isinstance(next(iter(cls.__annotations__.values())), str):
# non-str: assume already resolved
cls._type_cache = cls.__annotations__
else:
@@ -270,11 +270,15 @@ def dump(self, f: TextIO, level: int = 0) -> None:
# fetch class to avoid going through getattr
cls = self.__class__
type_hints = cls.get_type_hints()
entries = [e for e in self]
if not entries:
# write empty dict for empty Group with no instance values
cls._dump_value({}, f, indent=" " * level)
# validate group
for name in cls.__annotations__.keys():
assert hasattr(cls, name), f"{cls}.{name} is missing a default value"
# dump ordered members
for name in self:
for name in entries:
attr = cast(object, getattr(self, name))
attr_cls = type_hints[name] if name in type_hints else attr.__class__
attr_cls_origin = typing.get_origin(attr_cls)