NitroStack Logo
/python
/sdk
/dependency injection

Dependency Injection

Agent skill: nitrostack-python-mcp-app-architecture

There are no TypeScript-style parameter decorators. Declare constructor deps explicitly:

Python
from nitrostack import injectable, module

@injectable(deps=[])
class PizzazService:
    def list_shops(self):
        return []

@injectable(deps=[PizzazService])
class PizzazTools:
    def __init__(self, service: PizzazService):
        self.service = service

Constructor args must match deps. The container instantiates controllers and providers; do not call PizzazService() inside a tool class.

DIContainer methods: register, register_value, resolve, reset, get_instance.

Feature modules list tools on controllers and services on providers (and exports if other modules inject them).