10000 Passing parameters to Resource provider · Issue #891 · ets-labs/python-dependency-injector · GitHub
[go: up one dir, main page]

Skip to content
Passing parameters to Resource provider #891
Closed
@ijioio

Description

@ijioio

It seems that passing parameters to resource is not working for subclasses of resources.Resource and resources.AsyncResource. If run

# poc_task.py
from dependency_injector import resources

class PocTask(resources.Resource):

    def __init__(self):
        print("poc task init")

    def init(self):
        print("poc task start")

    def shutdown(self, some):
        print("poc task finish")

# contianers.py
from dependency_injector import containers, providers
from tasks.poc_task import PocTask

class Container(containers.DeclarativeContainer):

    config = providers.Configuration()
    config.from_yaml(config_path, required=True)

    poc_task = providers.Resource(PocTask)

    # Other dependencies

when PocTask is instantiated it calls the constructor and poc task init is printed. But if you try to add some additional arguments:

# poc_task.py
from dependency_injector import resources

class PocTask(resources.Resource):

    def __init__(self, timeout: int):
        print("poc task init")

    def init(self):
        print("poc task start")

    def shutdown(self, some):
        print("poc task finish")

# contianers.py
from dependency_injector import containers, providers
from tasks.poc_task import PocTask

class Container(containers.DeclarativeContainer):

    config = providers.Configuration()
    config.from_yaml(config_path, required=True)

    poc_task = providers.Resource(PocTask, timeout=config.timeout.as_int())

    # Other dependencies

it complains about calling PocTask constructor:

TypeError: PocTask.__init__() missing 1 required positional argument: 'timeout'

Is it not implemented on purpose, or am I missing something?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0