skip to navigation
skip to content

pythonioc 0.2.1

simplistic dependency injection container for python

Latest Version: 0.4.1

# Simple Inversion-Of-Control-Container for python #

This package contains a simple inversion-of-control container. Every injectable element is registered
to the ServiceRegistry. By convention, the class' name with the first letter uncapitalized is used
(UserService -> userService).

## Features ##

* lazy initialization of services (if not registered as object)
* dependency cycle detection

An example:


class Service(object):

# this will make the service registry inject a service named "someOtherService" which
# comes from class SomeOtherService
_someOtherService = None

def __init__(self):

# will be called after everything is injected
def postInit(self):

# will be called right before the object is destroyed (the registry's destroy
# method is called)
def preDestroy(self):

class SomeOtherService(object):

# Use it like

reg = ServiceRegistry()


Once the system has all required services registered, a service can be injected by doing


class WiredUser(object):


def __init__(self, *args):

wiredUser = reg.createWired(WiredUser, 'arg1', 'arg2')


Wired objects are not automatically part of the service registry, only if added by calling `reg.registerServiceInstance`.
They can also wire new objects on the fly:


class WiredUser(object):


class UserCreator(object):

def createUser(self):
return self._serviceRegistry.createWired(WiredUser)

userCreator = reg.createWired(UserCreator)

# create some wired users
userA = userCreator.createUser()
userB = userCreator.createUser()
File Type Py Version Uploaded on Size
pythonioc-0.2.1.tar.gz (md5) Source 2014-09-03 3KB