Skip to main content

A simple and small service container

Project description

Python Service Container
========================

This is a pretty trivial service container with the ability to register Services in it. On
retrieval of an registered service the class got instantiated and behaves as a singleton.

```
from servicecontainer import Service, Container, ServiceInterface

# This is a sample service
class ExampleService(object):
val = None
def __init__(self, param1):
self.val = param1

class ExampleService2(ServiceInterface):
val = None
def __init__(self, param1):
self.val = param1

@classmethod
def asService(cls, parameters):
return Service("testservice2", cls, parameters)

# Create the container
c = Container()

# build an service
s = Service("testservice", ExampleService, {"param1": "param1_value"})

# add the service to the container
c.add(s)
c.add(ExampleService2.asService({"param1": "param1_value"}))

# retrive the service from the container (gots instantiated at this point)
instance = c.get('testservice')
self.assertEqual('param1_value', instance.val)

# list all services
list = c.list()
self.assertEqual(2, len(list))
self.assertEqual(list[0], 'testservice')

# be sure its the same instance
instance2 = c.get('testservice')
assert instance is instance2
```

Project details


Release history Release notifications

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for python-servicecontainer, version 1.0.2
Filename, size File type Python version Upload date Hashes
Filename, size python_servicecontainer-1.0.2-py2.py3-none-any.whl (4.4 kB) File type Wheel Python version 2.7 Upload date Hashes View hashes
Filename, size python-servicecontainer-1.0.2.tar.gz (3.8 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page