python-dependency-injector icon indicating copy to clipboard operation
python-dependency-injector copied to clipboard

Preserve args/kwargs on abstract override?

Open jacquelinegarrahan opened this issue 3 years ago • 0 comments
trafficstars

Is there a pattern for propagating the args/kwargs defined in an AbstractSingleton forward during override?

from dependency_injector import containers, providers
from lume_services.services.data.models.db import ModelDB, ModelDBConfig
from lume_services.services.data.models.db.mysql import MySQLModelDBConfig, MySQLModelDB

class Context(containers.DeclarativeContainer):
    config = providers.Configuration()

    model_db_config = providers.Singleton(
        ModelDBConfig,
        config.model_db
    )
    model_db = providers.AbstractSingleton(
        ModelDB,
        db_config = model_db_config
    )


if __name__ == "__main__":

    container =Context()
    my_settings ={"model_db" : {"db_uri": "test", "pool_size": 1}}
    config = container.config.from_dict(my_settings)

    container.model_db.override(
        providers.Singleton(
            MySQLModelDB,
        ),
    )

jacquelinegarrahan avatar Jun 28 '22 22:06 jacquelinegarrahan