betty.model package¶
Submodules¶
Module contents¶
Provide Betty’s data model API.
- class betty.model.AliasedEntity[source]¶
Bases:
Generic
[_EntityT
]An aliased entity wraps an entity and gives aliases its ID.
Aliases are used when deserializing ancestries from sources where intermediate IDs are used to declare associations between entities. By wrapping an entity in an alias, the alias can use the intermediate ID, allowing it to be inserted into APIs such as
betty.model.graph.EntityGraphBuilder
which will use the alias ID to finalize associations before the original entities are returned.
- betty.model.ENTITY_TYPE_REPOSITORY: PluginRepository[Entity] = <betty.plugin.entry_point.EntryPointPluginRepository object>¶
The entity type plugin repository.
Read more about Entity type plugins.
- class betty.model.Entity[source]¶
Bases:
LinkedDataDumpable
,Plugin
An entity is a uniquely identifiable data container.
Read more about Entity type plugins.
To test your own subclasses, use
betty.test_utils.model.EntityTestBase
.- property ancestry_id: tuple[builtins.type[Self], str]¶
The ancestry ID.
This MUST be unique per ancestry.
- property label: Localizable¶
The entity’s human-readable label.
- async classmethod linked_data_schema(project: Project) Schema [source]¶
Define the JSON Schema for
betty.json.linked_data.LinkedDataDumpable.dump_linked_data()
.
- abstract classmethod plugin_label_plural() Localizable [source]¶
The human-readable entity type label, plural.
- property type: builtins.type[Self]¶
The entity type.
- class betty.model.EntityReferenceCollectionSchema[source]¶
Bases:
ArraySchema
A schema for a collection of references to other entity resources.
- class betty.model.EntityReferenceSchema[source]¶
Bases:
Schema
A schema for a reference to another entity resource.
- class betty.model.GeneratedEntityId[source]¶
Bases:
str
Generate a unique entity ID.
Entities must have IDs for identification. However, not all entities can be provided with an ID that exists in the original data set (such as a third-party family tree loaded into Betty), so IDs can be generated.
- class betty.model.UserFacingEntity[source]¶
Bases:
object
A sentinel to mark an entity type as being visible to users (e.g. not internal).
- betty.model.unalias(entity: _EntityT | AliasedEntity[_EntityT]) _EntityT [source]¶
Unalias a potentially aliased entity.