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
```
========================
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 | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file python-servicecontainer-1.0.2.tar.gz
.
File metadata
- Download URL: python-servicecontainer-1.0.2.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
7f4224fd080b5a713205763b74a562332cb99bb9cacbf028e9b3094c0c71b82d
|
|
MD5 |
210809152db778b65bffd8f14739194f
|
|
BLAKE2b-256 |
59c3b06b6d8f597c0cef69db559211033ff619f225cf5b1069a0f35c801146dc
|
File details
Details for the file python_servicecontainer-1.0.2-py2.py3-none-any.whl
.
File metadata
- Download URL: python_servicecontainer-1.0.2-py2.py3-none-any.whl
- Upload date:
- Size: 4.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
dc630c696044e17ff94afd33d0aef4724d722247fdf9f9af7015478585e58efb
|
|
MD5 |
36c43e9ddf2164504687fa031be2a909
|
|
BLAKE2b-256 |
e0e5c017efe05b5f387f52bd9e7fff35284d37731ec9e3e19f3a704917727a9e
|