harp.config.configurables

class Configurable[source]

Bases: BaseConfigurable

A settings definition base.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class LazyService[source]

Bases: BaseConfigurable

A lazy service definition, that will be resolved at runtime.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

resolve(resolver, context)[source]

Resolve reference value in using the given resolver (callable) and resolution context.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: str | list[str]
class Service[source]

Bases: BaseConfigurable

A settings base class for service definitions.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

to_service_definition(name, lifestyle='singleton')[source]

Convert the service settings to a service definition.

Parameters:
  • name (str)

  • lifestyle (Literal['singleton', 'transient', 'scoped'] | None)

Return type:

ServiceDefinition

arguments: dict | None

Arguments for the service constructor, by name.

base: str | None

Base type for service definition. This is not usually the base interface that the service implements, and you should use the type field to override the actually instanciated type.

constructor: str | None

Constructor for service definition. If provided, will be used instead of the default constructor.

model_config: ClassVar[ConfigDict] = {'extra': 'allow'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: str | None

Type for service definition. This is the actual type that will be instanciated.

class Stateful[source]

Bases: BaseConfigurable, Generic[TSettings]

A base class for stateful objects that are related to a settings class. Usually, it’s used for live status of settings-defined objects, that may vary over time. It allows to separate the concerns of the imuatable, environment-provided settings, and the mutable, runtime-related state of the object.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

classmethod from_settings_dict(data)[source]
Parameters:

data (dict)

Return type:

Self

classmethod from_settings_kwargs(**kwargs)[source]
Return type:

Self

classmethod get_settings_type()[source]
Return type:

Type[Configurable]

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

settings: Annotated[TSettings, FieldInfo(annotation=NoneType, required=True, repr=False)]

Submodules