"""
Provide configuration for the :py:class:`betty.extension.Gramps` extension.
"""
from __future__ import annotations
from pathlib import Path
from typing import Iterable, Any, Self
from typing_extensions import override
from betty.assertion import (
RequiredField,
OptionalField,
assert_record,
assert_path,
assert_setattr,
)
from betty.config import Configuration
from betty.config.collections.sequence import ConfigurationSequence
from betty.serde.dump import minimize, Dump, VoidableDump
[docs]
class FamilyTreeConfiguration(Configuration):
"""
Configure a single Gramps family tree.
"""
[docs]
class FamilyTreeConfigurationSequence(ConfigurationSequence[FamilyTreeConfiguration]):
"""
Configure zero or more Gramps family trees.
"""
[docs]
@override
def load_item(self, dump: Dump) -> FamilyTreeConfiguration:
# Use a dummy path to satisfy initializer arguments.
# It will be overridden when loading the fump.
item = FamilyTreeConfiguration(Path())
item.load(dump)
return item
[docs]
class GrampsConfiguration(Configuration):
"""
Provide configuration for the :py:class:`betty.extension.gramps.Gramps` extension.
"""