Skip to content

Context manager for the providers.Configuration #394

@gtors

Description

@gtors

My proposal is to add the __enter__ and __exit__ methods to the providers.Configuration class to reduce code duplication and improve the visualization of configuration blocks.

Example of such case:

from dependency_injector import providers from environs import Env env = Env() config = providers.Configuration() config.some_plugin_name.some_interval_ms.override( env.int( "SOME_INTERVAL_MS", default=30000 ) ) config.some_plugin_name.kafka.bootstrap_servers.override( env.list( "KAFKA_BOOTSTRAP_SERVERS" ) ) config.some_plugin_name.kafka.security_protocol.override( env.str( "KAFKA_SECURITY_PROTOCOL", default="SASL_SSL" ) ) # ...
from dependency_injector import providers from environs import Env env = Env() config = providers.Configuration() with config.some_plugin_name as plugin: plugin.some_interval_ms.override( env.int( "SOME_INTERVAL_MS", default=30000 ) ) with plugin.kafka as kafka: kafka.bootstrap_servers.override( env.list( "KAFKA_BOOTSTRAP_SERVERS" ) ) kafka.security_protocol.override( env.str( "KAFKA_SECURITY_PROTOCOL", default="SASL_SSL" ) ) # ...

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions