harp.config.configurables.service

Inheritance diagram of harp.config.configurables.service

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 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.

iskeyword(object, /)

x.__contains__(y) <==> y in x.