Skip to content
Open
Changes from all commits
Commits
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
8 changes: 4 additions & 4 deletions tomlparse/argparse.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from importlib import import_module
from pathlib import Path
from typing import Any, Final, Literal, Mapping, MutableMapping, Sequence, TypeVar, cast

from collections import ChainMap

def _load_toml_backend() -> Any:
"""Load tomllib (Python 3.11+) or fall back to tomli."""
Expand Down Expand Up @@ -118,7 +118,7 @@ def _extract_base_defaults(
self,
toml_data: Mapping[str, Any],
root_table: str | None,
) -> dict[str, Any]:
) -> ChainMap[str, Any]:
"""
Extract base defaults from TOML data.

Expand All @@ -141,7 +141,7 @@ def _extract_base_defaults(
base_defaults = self._extract_leaf_values(toml_data[root_table])
top_level_defaults = self._extract_leaf_values(toml_data)

return {**top_level_defaults, **base_defaults}
return ChainMap(base_defaults, top_level_defaults)

def _extract_override_defaults(
self,
Expand Down Expand Up @@ -248,7 +248,7 @@ def add_arguments_from_toml(

base_defaults = self._extract_base_defaults(toml_data, root_table)
override_defaults = self._extract_override_defaults(toml_data, table)
final_defaults = {**base_defaults, **override_defaults}
final_defaults = ChainMap(override_defaults, base_defaults)

self._apply_defaults(final_defaults)

Expand Down
Loading