betty.app package

Subpackages

Module contents

Define Betty’s core application functionality.

final class betty.app.App[source]

Bases: Configurable[AppConfiguration]

The Betty application.

Parameters:
__init__(configuration: betty.app.AppConfiguration, cache_directory_path: pathlib.Path, project: betty.project.Project | None = None)[source]
Parameters:
property assets: AssetRepository

The assets file system.

property binary_file_cache: BinaryFileCache

The binary file cache.

property cache: Cache[Any]

The cache.

discover_extension_types() set[type[betty.app.extension.Extension]][source]

Discover the available extension types.

Return type:

set[type[betty.app.extension.Extension]]

property dispatcher: Dispatcher

The event dispatcher.

property entity_types: set[type[Entity]]

The available entity types.

property event_types: set[type[EventType]]

The available event types.

property extensions: Extensions

The enabled extensions.

property fetcher: Fetcher

The fetcher.

property http_client: ClientSession

The HTTP client.

property jinja2_environment: Environment

The Jinja2 environment.

property localizer: Localizer

Get the application’s localizer.

property localizers: LocalizerRepository

The available localizers.

classmethod new_from_app(cls, app: betty.app.App, *, project: betty.project.Project | None = None) collections.abc.AsyncIterator[Self][source]

Create a new application from an existing application.

Parameters:
Return type:

collections.abc.AsyncIterator[typing.Self]

classmethod new_from_environment(cls, *, project: betty.project.Project | None = None) collections.abc.AsyncIterator[Self][source]

Create a new application from the environment.

Parameters:

project (betty.project.Project | None)

Return type:

collections.abc.AsyncIterator[typing.Self]

classmethod new_temporary(cls, *, project: betty.project.Project | None = None) collections.abc.AsyncIterator[Self][source]

Creat a new, temporary, isolated application.

The application will not use any persistent caches, or leave any traces on the system.

Parameters:

project (betty.project.Project | None)

Return type:

collections.abc.AsyncIterator[typing.Self]

property process_pool: Executor

The shared process pool.

Use this to run CPU/computationally-heavy tasks in other processes.

property project: Project

The project.

property renderer: Renderer

The (file) content renderer.

async start() None[source]

Start the application.

Return type:

None

property static_url_generator: StaticUrlGenerator

The static URL generator.

async stop() None[source]

Stop the application.

Return type:

None

property url_generator: LocalizedUrlGenerator

The (localized) URL generator.

class betty.app.AppConfiguration[source]

Bases: FileBasedConfiguration

Provide configuration for betty.app.App.

Parameters:
__init__(configuration_directory_path: pathlib.Path | None = None, *, locale: str | None = None)[source]
Parameters:
property configuration_file_path: Path

The path to the configuration’s file.

dump() 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]] | type[betty.serde.dump.Void][source]

Dump this instance to a portable format.

Return type:

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]]], type[betty.serde.dump.Void]]

load(dump: bool | int | float | str | None | Sequence[Dump] | Mapping[str, Dump]) None[source]

Load dumped configuration.

Parameters:

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

Return type:

None

property locale: str | None

The application locale.

update(other: Self) None[source]

Update this configuration with the values from other.

Parameters:

other (typing.Self)

Return type:

None