Dependency injection
From foyono
Jump to navigationJump to search
>>> from diapyr import DI, types >>> >>> class Config: pass >>> >>> class Database: ... ... @types(Config) ... def __init__(self, config): ... self.conninfo = config.conninfo ... >>> class Server: ... ... @types(Config, Database) ... def __init__(self, config, database): ... self.port = config.port ... self.database = database ... ... def serve_forever(self): ... print(self.port) ... >>> config = Config() >>> config.conninfo = 'dbname=test user=postgres' >>> config.port = 8000 >>> with DI() as di: ... di.add(config) ... di.add(Database) ... di.add(Server) ... di(Server).serve_forever() 8000