betty.requirement module

Provide an API that lets code express arbitrary requirements.

class betty.requirement.AllRequirements[source]

Bases: RequirementCollection

A requirement that is met if all of the given requirements are met.

Parameters:

requirements (betty.requirement.Requirement | None)

__init__(*requirements: betty.requirement.Requirement | None)[source]
Parameters:

requirements (betty.requirement.Requirement | None)

async is_met() bool[source]

Check if the requirement is met.

Return type:

bool

async summary() betty.locale.localizable.Localizable[source]

Get the requirement’s human-readable summary.

Return type:

betty.locale.localizable.Localizable

final class betty.requirement.AnyRequirement[source]

Bases: RequirementCollection

A requirement that is met if any of the given requirements are met.

Parameters:

requirements (betty.requirement.Requirement | None)

__init__(*requirements: betty.requirement.Requirement | None)[source]
Parameters:

requirements (betty.requirement.Requirement | None)

async is_met() bool[source]

Check if the requirement is met.

Return type:

bool

async summary() betty.locale.localizable.Localizable[source]

Get the requirement’s human-readable summary.

Return type:

betty.locale.localizable.Localizable

class betty.requirement.Requirement[source]

Bases: Localizable

Express a requirement.

async assert_met() None[source]

Assert that the requirement is met.

Return type:

None

async details() betty.locale.localizable.Localizable | None[source]

Get the requirement’s human-readable additional details.

Return type:

betty.locale.localizable.Localizable | None

abstract async is_met() bool[source]

Check if the requirement is met.

Return type:

bool

localize(localizer: betty.locale.Localizer) str[source]

Localize self to a human-readable string.

Parameters:

localizer (betty.locale.Localizer)

Return type:

str

reduce() betty.requirement.Requirement | None[source]

Remove unnecessary components of this requirement. :rtype: betty.requirement.Requirement | None

  • Collections can flatten unnecessary hierarchies.

  • Empty decorators or collections can ‘dissolve’ themselves and return None.

This function MUST NOT modify self.

abstract async summary() betty.locale.localizable.Localizable[source]

Get the requirement’s human-readable summary.

Return type:

betty.locale.localizable.Localizable

class betty.requirement.RequirementCollection[source]

Bases: Requirement

Provide a collection of zero or more requirements.

Parameters:

requirements (betty.requirement.Requirement | None)

__init__(*requirements: betty.requirement.Requirement | None)[source]
Parameters:

requirements (betty.requirement.Requirement | None)

localize(localizer: betty.locale.Localizer) str[source]

Localize self to a human-readable string.

Parameters:

localizer (betty.locale.Localizer)

Return type:

str

reduce() betty.requirement.Requirement | None[source]

Remove unnecessary components of this requirement. :rtype: betty.requirement.Requirement | None

  • Collections can flatten unnecessary hierarchies.

  • Empty decorators or collections can ‘dissolve’ themselves and return None.

This function MUST NOT modify self.

final exception betty.requirement.RequirementError[source]

Bases: UserFacingError, RuntimeError

Raised when a requirement is not met.

Parameters:

requirement (betty.requirement.Requirement)

__init__(requirement: betty.requirement.Requirement)[source]
Parameters:

requirement (betty.requirement.Requirement)

requirement() betty.requirement.Requirement[source]

Get the requirement this error is for.

Return type:

betty.requirement.Requirement