"""
Integrate Betty with `Gramps <https://gramps-project.org>`_.
"""
from __future__ import annotations
from typing import TYPE_CHECKING
from typing import final
from typing_extensions import override
from betty.extension.gramps.config import GrampsConfiguration
from betty.gramps.loader import GrampsLoader
from betty.load import LoadAncestryEvent
from betty.locale.localizable import plain, _, Localizable
from betty.project.extension import ConfigurableExtension
if TYPE_CHECKING:
from betty.event_dispatcher import EventHandlerRegistry
from betty.plugin import PluginId
async def _load_ancestry(event: LoadAncestryEvent) -> None:
gramps_configuration = event.project.configuration.extensions[
Gramps
].extension_configuration
assert isinstance(gramps_configuration, GrampsConfiguration)
for family_tree in gramps_configuration.family_trees:
file_path = family_tree.file_path
if file_path:
await GrampsLoader(
event.project,
localizer=event.project.app.localizer,
).load_file(file_path)
[docs]
@final
class Gramps(ConfigurableExtension[GrampsConfiguration]):
"""
Integrate Betty with `Gramps <https://gramps-project.org>`_.
"""