Source code for betty.extension.wikipedia.config

"""
Provide configuration for the Wikipedia extension.
"""

from typing import Self

from betty.config import Configuration
from betty.serde.dump import Dump, VoidableDump, minimize, VoidableDictDump
from betty.serde.load import Asserter, Fields, OptionalField, Assertions


[docs] class WikipediaConfiguration(Configuration): def __init__(self): super().__init__() self._populate_images = True @property def populate_images(self) -> bool: return self._populate_images @populate_images.setter def populate_images(self, populate_images: bool) -> None: self._populate_images = populate_images
[docs] def update(self, other: Self) -> None: self._populate_images = other._populate_images self._dispatch_change()
[docs] @classmethod def load( cls, dump: Dump, configuration: Self | None = None, ) -> Self: if configuration is None: configuration = cls() asserter = Asserter() asserter.assert_record( Fields( OptionalField( "populate_images", Assertions(asserter.assert_bool()) | asserter.assert_setattr(configuration, "populate_images"), ), ) )(dump) return configuration
[docs] def dump(self) -> VoidableDump: dump: VoidableDictDump[VoidableDump] = { "populate_images": self.populate_images, } return minimize(dump, True)