"""Integrate Betty with `Wikipedia <https://wikipedia.org>`_."""
from __future__ import annotations
import logging
from pathlib import Path
from typing import Iterable, TYPE_CHECKING, final
from jinja2 import pass_context
from typing_extensions import override
from betty.asyncio import gather
from betty.extension.wikipedia.config import WikipediaConfiguration
from betty.fetch import FetchError
from betty.jinja2 import Jinja2Provider, context_localizer, Filters
from betty.load import PostLoadAncestryEvent
from betty.locale import negotiate_locale
from betty.locale.localizable import _, Localizable
from betty.project.extension import ConfigurableExtension
from betty.wikipedia import (
Summary,
_parse_url,
NotAPageError,
_Retriever,
_Populator,
)
if TYPE_CHECKING:
from betty.project import Project
from betty.event_dispatcher import EventHandlerRegistry
from betty.machine_name import MachineName
from jinja2.runtime import Context
from betty.ancestry import Link
async def _populate_ancestry(event: PostLoadAncestryEvent) -> None:
wikipedia = event.project.extensions[Wikipedia]
populator = _Populator(event.project, wikipedia.retriever)
await populator.populate()
[docs]
@final
class Wikipedia(ConfigurableExtension[WikipediaConfiguration], Jinja2Provider):
"""
Integrates Betty with `Wikipedia <https://wikipedia.org>`_.
"""