cpl.dependency_injection

cpl.dependency_injection.service_collection

class cpl.dependency_injection.service_collection.ServiceCollection(config: cpl.configuration.configuration_abc.ConfigurationABC)

Bases: cpl.dependency_injection.service_collection_abc.ServiceCollectionABC

Representation of the collection of services

add_db_context(db_context_type: Type[cpl.database.context.database_context_abc.DatabaseContextABC], db_settings: cpl.database.database_settings.DatabaseSettings)

Adds database context

add_logging()

Adds the CPL internal logger

add_scoped(service_type: Type, service: Optional[Callable] = None)

Adds a service with scoped lifetime

service_type: Type

Type of the service

service: Callable

Object of the service

add_singleton(service_type: Union[type, object], service: Optional[Union[type, object]] = None)

Adds a service with singleton lifetime

service_type: Type

Type of the service

service: Callable

Object of the service

add_transient(service_type: type, service: Optional[type] = None)

Adds a service with transient lifetime

service_type: Type

Type of the service

service: Callable

Object of the service

build_service_provider()cpl.dependency_injection.service_provider_abc.ServiceProviderABC

Creates instance of the service provider

cpl.dependency_injection.service_collection_abc

class cpl.dependency_injection.service_collection_abc.ServiceCollectionABC

Bases: abc.ABC

ABC for the class cpl.dependency_injection.service_collection.ServiceCollection

abstract add_db_context(db_context: Type[cpl.database.context.database_context_abc.DatabaseContextABC], db_settings: cpl.database.database_settings.DatabaseSettings)

Adds database context

abstract add_logging()

Adds the CPL internal logger

abstract add_scoped(service_type: Type, service: Optional[collections.abc.Callable] = None)

Adds a service with scoped lifetime

service_type: Type

Type of the service

service: Callable

Object of the service

abstract add_singleton(service_type: Type, service: Optional[collections.abc.Callable] = None)

Adds a service with singleton lifetime

service_type: Type

Type of the service

service: Callable

Object of the service

abstract add_transient(service_type: Type, service: Optional[collections.abc.Callable] = None)

Adds a service with transient lifetime

service_type: Type

Type of the service

service: Callable

Object of the service

abstract build_service_provider()cpl.dependency_injection.service_provider_abc.ServiceProviderABC

Creates instance of the service provider

cpl.dependency_injection.service_descriptor

class cpl.dependency_injection.service_descriptor.ServiceDescriptor(implementation: Optional[Union[type, object]], lifetime: cpl.dependency_injection.service_lifetime_enum.ServiceLifetimeEnum)

Bases: object

Descriptor of a service

implementation: Union[type, Optional[object]]

Object or type of service

lifetime: cpl.dependency_injection.service_lifetime_enum.ServiceLifetimeEnum

Lifetime of the service

property implementation
property lifetime
property service_type

cpl.dependency_injection.service_lifetime_enum

class cpl.dependency_injection.service_lifetime_enum.ServiceLifetimeEnum(value)

Bases: enum.Enum

An enumeration.

scoped = 1
singleton = 0
transient = 2

cpl.dependency_injection.service_provider

class cpl.dependency_injection.service_provider.ServiceProvider(service_descriptors: list, config: cpl.configuration.configuration_abc.ConfigurationABC, db_context: Optional[cpl.database.context.database_context_abc.DatabaseContextABC])

Bases: cpl.dependency_injection.service_provider_abc.ServiceProviderABC

Provider for the services

service_descriptors: list[cpl.dependency_injection.service_descriptor.ServiceDescriptor]

Descriptor of the service

config: cpl.configuration.configuration_abc.ConfigurationABC

CPL Configuration

db_context: Optional[cpl.database.context.database_context_abc.DatabaseContextABC]

Database representation

build_service(service_type: type)object

Creates instance of given type

instance_type: Type

The type of the searched instance

Object of the given type

get_service(service_type: type)Optional[collections.abc.Callable[object]]

Returns instance of given type

instance_type: Type

The type of the searched instance

Object of type Optional[Callable[object]]

cpl.dependency_injection.service_provider_abc

class cpl.dependency_injection.service_provider_abc.ServiceProviderABC

Bases: abc.ABC

ABC for the class cpl.dependency_injection.service_provider.ServiceProvider

abstract build_service(service_type: Type)object

Creates instance of given type

instance_type: Type

The type of the searched instance

Object of the given type

abstract get_service(instance_type: Type)Optional[collections.abc.Callable[object]]

Returns instance of given type

instance_type: Type

The type of the searched instance

Object of type Optional[Callable[object]]