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


Download files

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

Source Distribution

python-servicecontainer-1.0.2.tar.gz (3.8 kB view hashes)

Uploaded Source

Built Distribution

python_servicecontainer-1.0.2-py2.py3-none-any.whl (4.4 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page