mini_arcade.modules.settings¶
Settings module for mini-arcade.
Example settings files can be found under examples/settings/ in the monorepo, and are loaded automatically when running examples using mini-arcade run –example <example_id>.
- ```python
print(“Loaded settings:”) shared = Settings(SettingsArgs(scope=”example”, required=False)) print(shared.as_dict()) engine_config_basics = Settings(
- SettingsArgs(
scope=”example”, name=”config/engine_config_basics”, required=False,
)
) print(engine_config_basics.as_dict()) backend_swap = Settings(
- SettingsArgs(
scope=”example”, name=”config/backend_swap”, required=False,
)
) print(backend_swap.as_dict()) s_asteroids = Settings(
SettingsArgs(scope=”game”, name=”asteroids”, required=False)
) print(s_asteroids.as_dict()) s_space = Settings(
SettingsArgs(scope=”game”, name=”space-invaders”, required=False)
) print(s_space.as_dict()) s_deja = Settings(
SettingsArgs(scope=”game”, name=”deja-bounce”, required=False)
) print(s_deja.as_dict())
Attributes¶
Classes¶
Arguments for loading settings. |
|
Settings reader with optional profile scoping. |
Package Contents¶
- class mini_arcade.modules.settings.SettingsArgs[source]¶
Arguments for loading settings.
- config_path: str | pathlib.Path | None = None¶
- scope: str | None = None¶
- name: str | None = None¶
- required: bool = True¶
- force_reload: bool = False¶
- class mini_arcade.modules.settings.Settings(args: SettingsArgs | None = None, **kwargs: Any)[source]¶
Settings reader with optional profile scoping.
Supported sources: - explicit config_path - MINI_ARCADE_CONFIG_PATH env var - monorepo game-local settings under games/<game_id>/settings/ - monorepo example settings under examples/settings/ - repo-level defaults under settings/settings.yml|yaml
Profile convention under monorepo root: - games: games/<game_id>/settings/settings.yml|yaml - examples: examples/settings/<example_id>.yml|yaml - shared examples: examples/settings/settings.yml|yaml - default: settings/settings.yml|yaml
- classmethod for_game(game_id: str, *, required: bool = False, force_reload: bool = False) Settings[source]¶
Load settings profile for one game.
- classmethod for_example(example_id: str | None = None, *, required: bool = False, force_reload: bool = False) Settings[source]¶
Load settings profile for one example.
If example_id is None, loads shared example settings profile.
- property config_path: pathlib.Path | None¶
Path to currently loaded settings file.
- project_root() pathlib.Path[source]¶
Resolve project root for this settings profile.
Priority: 1) project.root / paths.project_root key in yaml 2) inferred from scope/name:
game -> <repo>/games/<game_id>
example -> <repo>/examples/catalog/<example_id>
repo root
cwd
- resolve_path(path_value: str | pathlib.Path, *, default_to_cwd: bool = False) pathlib.Path[source]¶
Resolve one path using token/env expansion and project-root defaults.
Supported placeholders: - ${repo_root} - ${project_root} - ${assets_root} - ${settings_dir} - ${cwd}
- resolve_asset_path(path_value: str | pathlib.Path) pathlib.Path[source]¶
Resolve one asset path relative to assets root when not absolute.
- engine_config_defaults() dict[str, Any][source]¶
Engine settings defaults aligned to mini_arcade_core.engine.game_config.EngineConfig.
- scene_defaults() dict[str, Any][source]¶
Scene bootstrap defaults aligned to mini_arcade_core.engine.game_config.SceneConfig.
- gameplay_defaults() dict[str, Any][source]¶
Gameplay settings defaults consumed by runtime gameplay settings.
- mini_arcade.modules.settings.settings¶