betty.project.config module - Betty documentation

Hide navigation sidebar
Hide table of contents sidebar
Skip to content
Back to top
View this page
Toggle table of contents sidebar

# betty.project.config module

Provide project configuration.

class betty.project.config.CopyrightNoticeConfiguration

  Bases: `PluginConfiguration`

  Configuration to define `betty.copyright_notice.CopyrightNotice` plugins.

  __init__(plugin_id: str, label: Mapping[str, str] | str, *, summary: Mapping[str, str] | str, text: Mapping[str, str] | str, description: Mapping[str, str] | str | None = None)
  dump() → DumpMapping[Dump]

    Produce a serialized data dump of `self`.

  load(dump: Dump) → None

    Load a serialized data dump into `self`.

    Raises:

      betty.assertion.error.AssertionFailed – Raised if the dump is invalid.

  summary

    An instance attribute that contains `betty.locale.localizable.config.StaticTranslationsLocalizableConfiguration`.

  text

    An instance attribute that contains `betty.locale.localizable.config.StaticTranslationsLocalizableConfiguration`.

class betty.project.config.CopyrightNoticeConfigurationMapping

  Bases: `PluginConfigurationMapping`[`CopyrightNotice`, `CopyrightNoticeConfiguration`]

  A configuration mapping for copyright notices.

betty.project.config.DEFAULT_LIFETIME_THRESHOLD = 123

  The default age by which people are presumed dead. This is based on Jeanne Louise Calment who is the oldest verified person to ever have lived.

final class betty.project.config.EntityTypeConfiguration

  Bases: `Configuration`

  Configure a single entity type for a project.

  __init__(entity_type_id: str | type[Entity], *, generate_html_list: bool = False)
  dump() → DumpMapping[Dump]

    Produce a serialized data dump of `self`.

  property generate_html_list: bool

    Whether to generate listing web pages for entities of this type.

  property id: str

    The ID of the configured entity type.

  load(dump: Dump) → None

    Load a serialized data dump into `self`.

    Raises:

      betty.assertion.error.AssertionFailed – Raised if the dump is invalid.

  async validate(entity_type_repository: PluginRepository[Entity]) → None

    Validate the configuration.

final class betty.project.config.EntityTypeConfigurationMapping

  Bases: `PluginIdentifierKeyConfigurationMapping`[`Entity`, `EntityTypeConfiguration`]

  Configure the entity types for a project.

  async validate(entity_type_repository: PluginRepository[Entity]) → None

    Validate the configuration.

class betty.project.config.EventTypeConfigurationMapping

  Bases: `PluginConfigurationPluginConfigurationMapping`[`EventType`]

  A configuration mapping for event types.

final class betty.project.config.ExtensionInstanceConfigurationMapping

  Bases: `PluginInstanceConfigurationMapping`[`Extension`]

  Configure a project’s enabled extensions.

  enable(*extension_types: type[Extension] | str) → None

    Enable the given extensions.

class betty.project.config.GenderConfigurationMapping

  Bases: `PluginConfigurationPluginConfigurationMapping`[`Gender`]

  A configuration mapping for genders.

class betty.project.config.LicenseConfiguration

  Bases: `PluginConfiguration`

  Configuration to define `betty.license.License` plugins.

  __init__(plugin_id: str, label: Mapping[str, str] | str, *, summary: Mapping[str, str] | str, text: Mapping[str, str] | str, description: Mapping[str, str] | str | None = None)
  dump() → DumpMapping[Dump]

    Produce a serialized data dump of `self`.

  load(dump: Dump) → None

    Load a serialized data dump into `self`.

    Raises:

      betty.assertion.error.AssertionFailed – Raised if the dump is invalid.

  summary

    An instance attribute that contains `betty.locale.localizable.config.StaticTranslationsLocalizableConfiguration`.

  text

    An instance attribute that contains `betty.locale.localizable.config.StaticTranslationsLocalizableConfiguration`.

class betty.project.config.LicenseConfigurationMapping

  Bases: `PluginConfigurationMapping`[`License`, `LicenseConfiguration`]

  A configuration mapping for licenses.

final class betty.project.config.LocaleConfiguration

  Bases: `Configuration`

  Configure a single project locale.

  __init__(locale: str, *, alias: str | None = None)
  property alias: str

    A shorthand alias to use instead of the full language tag, such as when rendering URLs.

  dump() → Dump

    Produce a serialized data dump of `self`.

  load(dump: Dump) → None

    Load a serialized data dump into `self`.

    Raises:

      betty.assertion.error.AssertionFailed – Raised if the dump is invalid.

  property locale: str

    An IETF BCP 47 language tag.

final class betty.project.config.LocaleConfigurationMapping

  Bases: `OrderedConfigurationMapping`[`str`, `LocaleConfiguration`]

  Configure a project’s locales.

  __init__(configurations: Iterable[LocaleConfiguration] | None = None)
  property default: LocaleConfiguration

    The default language.

  property multilingual: bool

    Whether the configuration is multilingual.

  replace(*configurations: LocaleConfiguration) → None

    Replace any existing values with the given ones.

class betty.project.config.PlaceTypeConfigurationMapping

  Bases: `PluginConfigurationPluginConfigurationMapping`[`PlaceType`]

  A configuration mapping for place types.

class betty.project.config.PresenceRoleConfigurationMapping

  Bases: `PluginConfigurationPluginConfigurationMapping`[`PresenceRole`]

  A configuration mapping for presence roles.

final class betty.project.config.ProjectConfiguration

  Bases: `Configuration`

  Provide the configuration for a `betty.project.Project`.

  __init__(configuration_file_path: Path, *, available_formats: Sequence[type[Format]], url: str = 'https://example.com', clean_urls: bool = False, title: ShorthandStaticTranslations = 'Betty', author: ShorthandStaticTranslations | None = None, entity_types: Iterable[EntityTypeConfiguration] | None = None, event_types: Iterable[PluginConfiguration] | None = None, place_types: Iterable[PluginConfiguration] | None = None, presence_roles: Iterable[PluginConfiguration] | None = None, copyright_notice: PluginInstanceConfiguration | None = None, copyright_notices: Iterable[CopyrightNoticeConfiguration] | None = None, license: PluginInstanceConfiguration | None = None, licenses: Iterable[LicenseConfiguration] | None = None, genders: Iterable[PluginConfiguration] | None = None, extensions: Iterable[PluginInstanceConfiguration] | None = None, debug: bool = False, locales: Iterable[LocaleConfiguration] | None = None, lifetime_threshold: int = 123, name: MachineName | None = None, logo: Path | None = None)
  property assets_directory_path: Path

    The assets directory path.

  author

    An instance attribute that contains `betty.locale.localizable.config.StaticTranslationsLocalizableConfiguration`.

  property base_url: str

    The project’s public URL’s base URL.

    If the public URL is `https://example.com`, the base URL is `https://example.com`. If the public URL is `https://example.com/my-ancestry-site`, the base URL is `https://example.com`. If the public URL is `https://my-ancestry-site.example.com`, the base URL is `https://my-ancestry-site.example.com`.

  property clean_urls: bool

    Whether to generate clean URLs such as `/person/first-person` instead of `/person/first-person/index.html`.

    Generated artifacts will require web server that supports this.

  property configuration_file_path: Path

    The path to the configuration’s file.

  copyright_notice: PluginInstanceConfiguration

    The project-wide `betty.copyright_notice.CopyrightNotice` plugin to use.

  property copyright_notices: PluginConfigurationMapping[CopyrightNotice, CopyrightNoticeConfiguration]

    The `betty.copyright_notice.CopyrightNotice` plugins created by this project.

  property debug: bool

    Whether to enable debugging for project jobs.

    This setting is disabled by default.

    Enabling this generally results in:

    - More verbose logging output

    - job artifacts (e.g. generated sites)

  dump() → DumpMapping[Dump]

    Produce a serialized data dump of `self`.

  property entity_types: EntityTypeConfigurationMapping

    The available entity types.

  property event_types: PluginConfigurationMapping[EventType, PluginConfiguration]

    The event type plugins created by this project.

  property extensions: ExtensionInstanceConfigurationMapping

    Then extensions running within this application.

  property genders: PluginConfigurationMapping[Gender, PluginConfiguration]

    The gender plugins created by this project.

  license: PluginInstanceConfiguration

    The project-wide `betty.license.License` plugin to use.

  property licenses: PluginConfigurationMapping[License, LicenseConfiguration]

    The `betty.license.License` plugins created by this project.

  property lifetime_threshold: int

    The lifetime threshold indicates when people are considered dead.

    This setting defaults to `betty.project.config.DEFAULT_LIFETIME_THRESHOLD`.

    The value is an integer expressing the age in years over which people are presumed to have died.

  load(dump: Dump) → None

    Load a serialized data dump into `self`.

    Raises:

      betty.assertion.error.AssertionFailed – Raised if the dump is invalid.

  property locales: LocaleConfigurationMapping

    The available locales.

  localize_www_directory_path(locale: str) → Path

    Get the WWW directory path for a locale.

  property logo: Path | None

    The path to the logo.

  property name: str | None

    The project’s machine name.

  async classmethod new(configuration_file_path: Path, *, url: str = 'https://example.com', clean_urls: bool = False, title: ShorthandStaticTranslations = 'Betty', author: ShorthandStaticTranslations | None = None, entity_types: Iterable[EntityTypeConfiguration] | None = None, event_types: Iterable[PluginConfiguration] | None = None, place_types: Iterable[PluginConfiguration] | None = None, presence_roles: Iterable[PluginConfiguration] | None = None, copyright_notice: PluginInstanceConfiguration | None = None, copyright_notices: Iterable[CopyrightNoticeConfiguration] | None = None, license: PluginInstanceConfiguration | None = None, licenses: Iterable[LicenseConfiguration] | None = None, genders: Iterable[PluginConfiguration] | None = None, extensions: Iterable[PluginInstanceConfiguration] | None = None, debug: bool = False, locales: Iterable[LocaleConfiguration] | None = None, lifetime_threshold: int = 123, name: MachineName | None = None, logo: Path | None = None) → Self

    Create a new instance.

  property output_directory_path: Path

    The output directory path.

  property place_types: PluginConfigurationMapping[PlaceType, PluginConfiguration]

    The place type plugins created by this project.

  property presence_roles: PluginConfigurationMapping[PresenceRole, PluginConfiguration]

    The presence role plugins created by this project.

  property project_directory_path: Path

    The project directory path.

    Betty will look for resources in this directory, and place generated artifacts there. It is expected that no other applications or projects share this same directory.

  property root_path: str

    The project’s public URL’s root path.

    If the public URL is `https://example.com`, the root path is an empty string. If the public URL is `https://example.com/my-ancestry-site`, the root path is `/my-ancestry-site`.

  title

    An instance attribute that contains `betty.locale.localizable.config.StaticTranslationsLocalizableConfiguration`.

  property url: str

    The project’s public URL.

  property www_directory_path: Path

    The WWW directory path.