betty.model.ancestry module

Provide Betty’s main data model.

final class betty.model.ancestry.Ancestry[source]

Bases: MultipleTypesEntityCollection[Entity]

An ancestry contains all the entities of a single family tree/genealogical data set.

__init__()[source]
add_unchecked_graph(*entities: betty.model.Entity) None[source]

Add entities to the ancestry but do not automatically add associates as well.

It is the caller’s responsibility to ensure all associates are added to the ancestry. If this is done, calling this method is faster than the usual entity collection methods.

Parameters:

entities (betty.model.Entity)

Return type:

None

final class betty.model.ancestry.Citation[source]

Bases: Dated, HasFiles, HasPrivacy, HasLinksEntity, UserFacingEntity, Entity

A citation (a reference to a source).

Parameters:
__init__(*, id: str | None = None, facts: Iterable[betty.model.ancestry.HasCitations] | None = None, source: betty.model.ancestry.Source | None = None, location: betty.locale.localizable.Localizable | None = None, date: betty.locale.Date | betty.locale.DateRange | None = None, files: Iterable[betty.model.ancestry.File] | None = None, privacy: betty.model.ancestry.Privacy | None = None, public: bool | None = None, private: bool | None = None)[source]
Parameters:
async dump_linked_data(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Dump this instance to JSON-LD.

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

property facts: EntityCollection[_AssociateT & Entity]

Get the associates from the given owner.

Parameters:

owner (_OwnerT & Entity)

property label: Localizable

The entity’s human-readable label.

async classmethod linked_data_schema(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Define the JSON Schema for betty.json.linked_data.LinkedDataDumpable.dump_linked_data().

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

classmethod plugin_id() str[source]

Get the plugin ID.

IDs are unique per plugin type: - A plugin repository MUST at most have a single plugin for any ID. - Different plugin repositories MAY each have a plugin with the same ID.

Return type:

str

classmethod plugin_label() betty.locale.localizable.Localizable[source]

Get the human-readable short plugin label.

Return type:

betty.locale.localizable.Localizable

classmethod plugin_label_plural() betty.locale.localizable.Localizable[source]

The human-readable entity type label, plural.

Return type:

betty.locale.localizable.Localizable

property source: _AssociateT & Entity | None

Get the associate from the given owner.

Parameters:

owner (_OwnerT & Entity)

class betty.model.ancestry.Dated[source]

Bases: LinkedDataDumpable

A resource with date information.

Parameters:
__init__(*args: Any, date: betty.locale.Date | betty.locale.DateRange | None = None, **kwargs: Any)[source]
Parameters:
async dump_linked_data(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Dump this instance to JSON-LD.

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

async classmethod linked_data_schema(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Define the JSON Schema for betty.json.linked_data.LinkedDataDumpable.dump_linked_data().

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

class betty.model.ancestry.Described[source]

Bases: LinkedDataDumpable

A resource with a description.

Parameters:
__init__(*args: Any, description: str | None = None, **kwargs: Any)[source]
Parameters:
description: str | None

The human-readable description.

async dump_linked_data(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Dump this instance to JSON-LD.

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

async classmethod linked_data_schema(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Define the JSON Schema for betty.json.linked_data.LinkedDataDumpable.dump_linked_data().

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

final class betty.model.ancestry.Enclosure[source]

Bases: Dated, HasCitations, Entity

The enclosure of one place by another.

Enclosures describe the outer (`enclosed_by`) and inner(``encloses) places, and their relationship.

Parameters:
__init__(encloses: betty.model.ancestry.Place | None = None, enclosed_by: betty.model.ancestry.Place | None = None)[source]
Parameters:
property enclosed_by: _AssociateT & Entity | None

The outer place.

Parameters:

owner (_OwnerT & Entity)

property encloses: _AssociateT & Entity | None

The inner place.

Parameters:

owner (_OwnerT & Entity)

classmethod plugin_id() str[source]

Get the plugin ID.

IDs are unique per plugin type: - A plugin repository MUST at most have a single plugin for any ID. - Different plugin repositories MAY each have a plugin with the same ID.

Return type:

str

classmethod plugin_label() betty.locale.localizable.Localizable[source]

Get the human-readable short plugin label.

Return type:

betty.locale.localizable.Localizable

classmethod plugin_label_plural() betty.locale.localizable.Localizable[source]

The human-readable entity type label, plural.

Return type:

betty.locale.localizable.Localizable

final class betty.model.ancestry.Event[source]

Bases: Dated, HasFiles, HasCitations, HasNotes, Described, HasPrivacy, HasLinksEntity, UserFacingEntity, Entity

An event that took place.

Parameters:
__init__(*, id: str | None = None, event_type: type[betty.model.event_type.EventType] = <class 'betty.model.event_type.UnknownEventType'>, date: betty.locale.Date | betty.locale.DateRange | None = None, files: typing.Iterable[betty.model.ancestry.File] | None = None, citations: typing.Iterable[betty.model.ancestry.Citation] | None = None, notes: typing.Iterable[betty.model.ancestry.Note] | None = None, privacy: betty.model.ancestry.Privacy | None = None, public: bool | None = None, private: bool | None = None, place: betty.model.ancestry.Place | None = None, description: str | None = None)[source]
Parameters:
async dump_linked_data(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Dump this instance to JSON-LD.

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

property event_type: type[EventType]

The type of event.

property label: Localizable

The entity’s human-readable label.

async classmethod linked_data_schema(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Define the JSON Schema for betty.json.linked_data.LinkedDataDumpable.dump_linked_data().

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

property place: _AssociateT & Entity | None

The place the event happened.

Parameters:

owner (_OwnerT & Entity)

classmethod plugin_id() str[source]

Get the plugin ID.

IDs are unique per plugin type: - A plugin repository MUST at most have a single plugin for any ID. - Different plugin repositories MAY each have a plugin with the same ID.

Return type:

str

classmethod plugin_label() betty.locale.localizable.Localizable[source]

Get the human-readable short plugin label.

Return type:

betty.locale.localizable.Localizable

classmethod plugin_label_plural() betty.locale.localizable.Localizable[source]

The human-readable entity type label, plural.

Return type:

betty.locale.localizable.Localizable

property presences: EntityCollection[_AssociateT & Entity]

Get the associates from the given owner.

Parameters:

owner (_OwnerT & Entity)

final class betty.model.ancestry.File[source]

Bases: Described, HasPrivacy, HasLinksEntity, HasMediaType, HasNotes, HasCitations, UserFacingEntity, Entity

A file on disk.

This includes but is not limited to:

  • images

  • video

  • audio

  • PDF documents

Parameters:
__init__(path: pathlib.Path, *, id: str | None = None, name: str | None = None, media_type: betty.media_type.MediaType | None = None, description: str | None = None, notes: Iterable[betty.model.ancestry.Note] | None = None, citations: Iterable[betty.model.ancestry.Citation] | None = None, privacy: betty.model.ancestry.Privacy | None = None, public: bool | None = None, private: bool | None = None, links: collections.abc.MutableSequence[betty.model.ancestry.Link] | None = None)[source]
Parameters:
async dump_linked_data(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Dump this instance to JSON-LD.

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

property entities: EntityCollection[_AssociateT & Entity]

Get the associates from the given owner.

Parameters:

owner (_OwnerT & Entity)

property label: Localizable

The entity’s human-readable label.

async classmethod linked_data_schema(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Define the JSON Schema for betty.json.linked_data.LinkedDataDumpable.dump_linked_data().

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

property name: str

The file name.

property path: Path

The file’s path on disk.

classmethod plugin_id() str[source]

Get the plugin ID.

IDs are unique per plugin type: - A plugin repository MUST at most have a single plugin for any ID. - Different plugin repositories MAY each have a plugin with the same ID.

Return type:

str

classmethod plugin_label() betty.locale.localizable.Localizable[source]

Get the human-readable short plugin label.

Return type:

betty.locale.localizable.Localizable

classmethod plugin_label_plural() betty.locale.localizable.Localizable[source]

The human-readable entity type label, plural.

Return type:

betty.locale.localizable.Localizable

class betty.model.ancestry.HasCitations[source]

Bases: LinkedDataDumpable

An entity with citations that support it.

Parameters:
  • self (HasCitations & Entity)

  • args (Any)

  • citations (Iterable[Citation] | None)

  • kwargs (Any)

__init__(*args: Any, citations: Iterable[Citation] | None = None, **kwargs: Any)[source]
Parameters:
  • self (HasCitations & Entity)

  • args (Any)

  • citations (Iterable[Citation] | None)

  • kwargs (Any)

property citations: EntityCollection[_AssociateT & Entity]

Get the associates from the given owner.

Parameters:

owner (_OwnerT & Entity)

async dump_linked_data(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Dump this instance to JSON-LD.

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

async classmethod linked_data_schema(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Define the JSON Schema for betty.json.linked_data.LinkedDataDumpable.dump_linked_data().

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

class betty.model.ancestry.HasFiles[source]

Bases: object

An entity that has associated betty.model.ancestry.File entities.

Parameters:
  • self (HasFiles & Entity)

  • args (Any)

  • files (Iterable[File] | None)

  • kwargs (Any)

__init__(*args: Any, files: Iterable[File] | None = None, **kwargs: Any)[source]
Parameters:
  • self (HasFiles & Entity)

  • args (Any)

  • files (Iterable[File] | None)

  • kwargs (Any)

property files: EntityCollection[_AssociateT & Entity]

Get the associates from the given owner.

Parameters:

owner (_OwnerT & Entity)

Bases: LinkedDataDumpable

A resource that has external links.

Parameters:
__init__(*args: Any, links: collections.abc.MutableSequence[betty.model.ancestry.Link] | None = None, **kwargs: Any)[source]
Parameters:
async dump_linked_data(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Dump this instance to JSON-LD.

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

async classmethod linked_data_schema(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Define the JSON Schema for betty.json.linked_data.LinkedDataDumpable.dump_linked_data().

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

The extenal links.

class betty.model.ancestry.HasLinksEntity[source]

Bases: HasLinks

An entity that has external links.

Parameters:
async dump_linked_data(project: Project) DictDump[Dump][source]

Dump this instance to JSON-LD.

Parameters:
  • self (HasLinksEntity & Entity)

  • project (Project)

Return type:

DictDump[Dump]

class betty.model.ancestry.HasMediaType[source]

Bases: LinkedDataDumpable

A resource with an IANA media type.

Parameters:
__init__(*args: Any, media_type: betty.media_type.MediaType | None = None, **kwargs: Any)[source]
Parameters:
async dump_linked_data(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Dump this instance to JSON-LD.

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

async classmethod linked_data_schema(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Define the JSON Schema for betty.json.linked_data.LinkedDataDumpable.dump_linked_data().

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

class betty.model.ancestry.HasNotes[source]

Bases: LinkedDataDumpable

An entity that has notes associated with it.

Parameters:
  • self (HasNotes & Entity)

  • args (Any)

  • notes (Iterable[Note] | None)

  • kwargs (Any)

__init__(*args: Any, notes: Iterable[Note] | None = None, **kwargs: Any)[source]
Parameters:
  • self (HasNotes & Entity)

  • args (Any)

  • notes (Iterable[Note] | None)

  • kwargs (Any)

async dump_linked_data(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Dump this instance to JSON-LD.

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

async classmethod linked_data_schema(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Define the JSON Schema for betty.json.linked_data.LinkedDataDumpable.dump_linked_data().

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

property notes: EntityCollection[_AssociateT & Entity]

Get the associates from the given owner.

Parameters:

owner (_OwnerT & Entity)

class betty.model.ancestry.HasPrivacy[source]

Bases: LinkedDataDumpable

A resource that has privacy.

Parameters:
__init__(*args: Any, privacy: betty.model.ancestry.Privacy | None = None, public: bool | None = None, private: bool | None = None, **kwargs: Any)[source]
Parameters:
async dump_linked_data(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Dump this instance to JSON-LD.

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

async classmethod linked_data_schema(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Define the JSON Schema for betty.json.linked_data.LinkedDataDumpable.dump_linked_data().

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

property own_privacy: Privacy

The resource’s own privacy.

This returns the value that was set for betty.model.ancestry.HasPrivacy.privacy and ignores computed privacies.

For access control and permissions checking, use betty.model.ancestry.HasPrivacy.privacy.

property privacy: Privacy

The resource’s privacy.

property private: bool

Whether this resource is private.

property public: bool

Whether this resource is public.

Bases: HasMediaType, Localized, Described, LinkedDataDumpable

An external link.

Parameters:
__init__(url: str, *, relationship: str | None = None, label: str | None = None, description: str | None = None, media_type: betty.media_type.MediaType | None = None, locale: str | None = None)[source]
Parameters:
async dump_linked_data(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Dump this instance to JSON-LD.

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

label: str | None

The link’s human-readable label.

async classmethod linked_data_schema(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Define the JSON Schema for betty.json.linked_data.LinkedDataDumpable.dump_linked_data().

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

relationship: str | None

The link’s IANA link relationship.

url: str

The link’s absolute URL

final class betty.model.ancestry.Note[source]

Bases: UserFacingEntity, HasPrivacy, HasLinksEntity, Entity

A note is a bit of textual information that can be associated with another entity.

Parameters:
__init__(text: str, *, id: str | None = None, entity: betty.model.ancestry.HasNotes | None = None, privacy: betty.model.ancestry.Privacy | None = None, public: bool | None = None, private: bool | None = None)[source]
Parameters:
async dump_linked_data(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Dump this instance to JSON-LD.

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

property entity: _AssociateT & Entity | None

The entity the note belongs to.

Parameters:

owner (_OwnerT & Entity)

property label: Localizable

The entity’s human-readable label.

async classmethod linked_data_schema(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Define the JSON Schema for betty.json.linked_data.LinkedDataDumpable.dump_linked_data().

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

classmethod plugin_id() str[source]

Get the plugin ID.

IDs are unique per plugin type: - A plugin repository MUST at most have a single plugin for any ID. - Different plugin repositories MAY each have a plugin with the same ID.

Return type:

str

classmethod plugin_label() betty.locale.localizable.Localizable[source]

Get the human-readable short plugin label.

Return type:

betty.locale.localizable.Localizable

classmethod plugin_label_plural() betty.locale.localizable.Localizable[source]

The human-readable entity type label, plural.

Return type:

betty.locale.localizable.Localizable

property text: str

The note’s human-readable text.

final class betty.model.ancestry.Person[source]

Bases: HasFiles, HasCitations, HasNotes, HasLinksEntity, HasPrivacy, UserFacingEntity, Entity

A person.

Parameters:
__init__(*, id: str | None = None, files: Iterable[betty.model.ancestry.File] | None = None, citations: Iterable[betty.model.ancestry.Citation] | None = None, links: collections.abc.MutableSequence[betty.model.ancestry.Link] | None = None, notes: Iterable[betty.model.ancestry.Note] | None = None, privacy: betty.model.ancestry.Privacy | None = None, public: bool | None = None, private: bool | None = None, parents: Iterable[betty.model.ancestry.Person] | None = None, children: Iterable[betty.model.ancestry.Person] | None = None, presences: Iterable[betty.model.ancestry.Presence] | None = None, names: Iterable[betty.model.ancestry.PersonName] | None = None)[source]
Parameters:
property ancestors: Iterator[Person]

All ancestors.

property children: EntityCollection[_AssociateT & Entity]

Get the associates from the given owner.

Parameters:

owner (_OwnerT & Entity)

property descendants: Iterator[Person]

All descendants.

async dump_linked_data(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Dump this instance to JSON-LD.

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

property label: Localizable

The entity’s human-readable label.

async classmethod linked_data_schema(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Define the JSON Schema for betty.json.linked_data.LinkedDataDumpable.dump_linked_data().

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

property names: EntityCollection[_AssociateT & Entity]

Get the associates from the given owner.

Parameters:

owner (_OwnerT & Entity)

property parents: EntityCollection[_AssociateT & Entity]

Get the associates from the given owner.

Parameters:

owner (_OwnerT & Entity)

classmethod plugin_id() str[source]

Get the plugin ID.

IDs are unique per plugin type: - A plugin repository MUST at most have a single plugin for any ID. - Different plugin repositories MAY each have a plugin with the same ID.

Return type:

str

classmethod plugin_label() betty.locale.localizable.Localizable[source]

Get the human-readable short plugin label.

Return type:

betty.locale.localizable.Localizable

classmethod plugin_label_plural() betty.locale.localizable.Localizable[source]

The human-readable entity type label, plural.

Return type:

betty.locale.localizable.Localizable

property presences: EntityCollection[_AssociateT & Entity]

Get the associates from the given owner.

Parameters:

owner (_OwnerT & Entity)

property siblings: list[Person]

All siblings.

final class betty.model.ancestry.PersonName[source]

Bases: Localized, HasCitations, HasPrivacy, Entity

A name for a betty.model.ancestry.Person.

Parameters:
__init__(*, id: str | None = None, person: betty.model.ancestry.Person | None = None, individual: str | None = None, affiliation: str | None = None, privacy: betty.model.ancestry.Privacy | None = None, public: bool | None = None, private: bool | None = None, locale: str | None = None)[source]
Parameters:
property affiliation: str | None

The name’s affiliation, or family component.

Also known as:

  • last name

  • surname

async dump_linked_data(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Dump this instance to JSON-LD.

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

property individual: str | None

The name’s individual component.

Also known as:

  • first name

  • given name

property label: Localizable

The entity’s human-readable label.

async classmethod linked_data_schema(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Define the JSON Schema for betty.json.linked_data.LinkedDataDumpable.dump_linked_data().

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

property person: _AssociateT & Entity | None

The person whose name this is.

Parameters:

owner (_OwnerT & Entity)

classmethod plugin_id() str[source]

Get the plugin ID.

IDs are unique per plugin type: - A plugin repository MUST at most have a single plugin for any ID. - Different plugin repositories MAY each have a plugin with the same ID.

Return type:

str

classmethod plugin_label() betty.locale.localizable.Localizable[source]

Get the human-readable short plugin label.

Return type:

betty.locale.localizable.Localizable

classmethod plugin_label_plural() betty.locale.localizable.Localizable[source]

The human-readable entity type label, plural.

Return type:

betty.locale.localizable.Localizable

final class betty.model.ancestry.Place[source]

Bases: HasLinksEntity, HasFiles, HasNotes, HasPrivacy, UserFacingEntity, Entity

A place.

A place is a physical location on earth. It may be identifiable by GPS coordinates only, or be a well-known city, with names in many languages, imagery, and its own Wikipedia page, or any type of place in between.

Parameters:
__init__(*, id: str | None = None, names: list[betty.model.ancestry.PlaceName] | None = None, events: Iterable[betty.model.ancestry.Event] | None = None, enclosed_by: Iterable[betty.model.ancestry.Enclosure] | None = None, encloses: Iterable[betty.model.ancestry.Enclosure] | None = None, notes: Iterable[betty.model.ancestry.Note] | None = None, coordinates: geopy.point.Point | None = None, links: collections.abc.MutableSequence[betty.model.ancestry.Link] | None = None, privacy: betty.model.ancestry.Privacy | None = None, public: bool | None = None, private: bool | None = None)[source]
Parameters:
property coordinates: Point | None

The place’s coordinates.

async dump_linked_data(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Dump this instance to JSON-LD.

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

property enclosed_by: EntityCollection[_AssociateT & Entity]

Get the associates from the given owner.

Parameters:

owner (_OwnerT & Entity)

property encloses: EntityCollection[_AssociateT & Entity]

Get the associates from the given owner.

Parameters:

owner (_OwnerT & Entity)

property events: EntityCollection[_AssociateT & Entity]

Get the associates from the given owner.

Parameters:

owner (_OwnerT & Entity)

property label: Localizable

The entity’s human-readable label.

async classmethod linked_data_schema(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Define the JSON Schema for betty.json.linked_data.LinkedDataDumpable.dump_linked_data().

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

property names: list[PlaceName]

The place’s names.

classmethod plugin_id() str[source]

Get the plugin ID.

IDs are unique per plugin type: - A plugin repository MUST at most have a single plugin for any ID. - Different plugin repositories MAY each have a plugin with the same ID.

Return type:

str

classmethod plugin_label() betty.locale.localizable.Localizable[source]

Get the human-readable short plugin label.

Return type:

betty.locale.localizable.Localizable

classmethod plugin_label_plural() betty.locale.localizable.Localizable[source]

The human-readable entity type label, plural.

Return type:

betty.locale.localizable.Localizable

property walk_encloses: Iterator[Enclosure]

All enclosed places.

final class betty.model.ancestry.PlaceName[source]

Bases: Localized, Dated, LinkedDataDumpable

A place name.

A name has a locale and a date during which the name was in use.

Parameters:
__init__(name: str, *, locale: str | None = None, date: betty.locale.Date | betty.locale.DateRange | None = None)[source]
Parameters:
async dump_linked_data(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Dump this instance to JSON-LD.

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

async classmethod linked_data_schema(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Define the JSON Schema for betty.json.linked_data.LinkedDataDumpable.dump_linked_data().

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

property name: str

The human-readable name.

final class betty.model.ancestry.Presence[source]

Bases: HasPrivacy, Entity

The presence of a betty.model.ancestry.Person at an betty.model.ancestry.Event.

Parameters:
__init__(person: betty.model.ancestry.Person | None, role: betty.model.presence_role.PresenceRole, event: betty.model.ancestry.Event | None)[source]
Parameters:
property event: _AssociateT & Entity | None

The event the person was present at.

Parameters:

owner (_OwnerT & Entity)

property label: Localizable

The entity’s human-readable label.

property person: _AssociateT & Entity | None

The person whose presence is described.

Parameters:

owner (_OwnerT & Entity)

classmethod plugin_id() str[source]

Get the plugin ID.

IDs are unique per plugin type: - A plugin repository MUST at most have a single plugin for any ID. - Different plugin repositories MAY each have a plugin with the same ID.

Return type:

str

classmethod plugin_label() betty.locale.localizable.Localizable[source]

Get the human-readable short plugin label.

Return type:

betty.locale.localizable.Localizable

classmethod plugin_label_plural() betty.locale.localizable.Localizable[source]

The human-readable entity type label, plural.

Return type:

betty.locale.localizable.Localizable

role: betty.model.presence_role.PresenceRole

The role the person performed at the event.

class betty.model.ancestry.Privacy[source]

Bases: Enum

The available privacy modes.

PRIVATE = 2

The resource is explicitly made private.

PUBLIC = 1

The resource is explicitly made public.

UNDETERMINED = 3

The resource has no explicit privacy. This means that:

  • it may be changed at will

  • when checking access, UNDETERMINED evaluates to PUBLIC.

final class betty.model.ancestry.Source[source]

Bases: Dated, HasFiles, HasNotes, HasLinksEntity, HasPrivacy, UserFacingEntity, Entity

A source of information.

Parameters:
__init__(name: str | None = None, *, id: str | None = None, author: str | None = None, publisher: str | None = None, contained_by: betty.model.ancestry.Source | None = None, contains: Iterable[betty.model.ancestry.Source] | None = None, notes: Iterable[betty.model.ancestry.Note] | None = None, date: betty.locale.Date | betty.locale.DateRange | None = None, files: Iterable[betty.model.ancestry.File] | None = None, links: collections.abc.MutableSequence[betty.model.ancestry.Link] | None = None, privacy: betty.model.ancestry.Privacy | None = None, public: bool | None = None, private: bool | None = None)[source]
Parameters:
property citations: EntityCollection[_AssociateT & Entity]

Get the associates from the given owner.

Parameters:

owner (_OwnerT & Entity)

property contained_by: _AssociateT & Entity | None

The source this one is directly contained by.

Parameters:

owner (_OwnerT & Entity)

property contains: EntityCollection[_AssociateT & Entity]

Get the associates from the given owner.

Parameters:

owner (_OwnerT & Entity)

async dump_linked_data(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Dump this instance to JSON-LD.

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

property label: Localizable

The entity’s human-readable label.

async classmethod linked_data_schema(project: betty.project.Project) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Define the JSON Schema for betty.json.linked_data.LinkedDataDumpable.dump_linked_data().

Parameters:

project (betty.project.Project)

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

classmethod plugin_id() str[source]

Get the plugin ID.

IDs are unique per plugin type: - A plugin repository MUST at most have a single plugin for any ID. - Different plugin repositories MAY each have a plugin with the same ID.

Return type:

str

classmethod plugin_label() betty.locale.localizable.Localizable[source]

Get the human-readable short plugin label.

Return type:

betty.locale.localizable.Localizable

classmethod plugin_label_plural() betty.locale.localizable.Localizable[source]

The human-readable entity type label, plural.

Return type:

betty.locale.localizable.Localizable

property walk_contains: Iterator[Source]

All directly and indirectly contained sources.

betty.model.ancestry.is_private(target: Any) bool[source]

Check if the given target is private.

Parameters:

target (typing.Any)

Return type:

bool

betty.model.ancestry.is_public(target: Any) bool[source]

Check if the given target is public.

Parameters:

target (typing.Any)

Return type:

bool

betty.model.ancestry.merge_privacies(*privacies: betty.model.ancestry.Privacy | betty.model.ancestry.HasPrivacy | None) betty.model.ancestry.Privacy[source]

Merge multiple privacies into one.

Parameters:

privacies (betty.model.ancestry.Privacy | betty.model.ancestry.HasPrivacy | None)

Return type:

betty.model.ancestry.Privacy

Reference the Link schema.

Parameters:
Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

Reference the schema for a collection of Link instances.

Parameters:
Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

betty.model.ancestry.ref_media_type(root_schema: dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]]) dict[str, bool | int | float | str | None | Sequence[bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]] | Mapping[str, bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]]][source]

Reference the MediaType schema.

Parameters:

root_schema (dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]])

Return type:

dict[str, typing.Union[bool, int, float, str, None, typing.Sequence[typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]], typing.Mapping[str, typing.Union[bool, int, float, str, None, typing.Sequence[Dump], typing.Mapping[str, Dump]]]]]

betty.model.ancestry.resolve_privacy(privacy: betty.model.ancestry.Privacy | betty.model.ancestry.HasPrivacy | None) betty.model.ancestry.Privacy[source]

Resolve the privacy of a value.

Parameters:

privacy (betty.model.ancestry.Privacy | betty.model.ancestry.HasPrivacy | None)

Return type:

betty.model.ancestry.Privacy