A library for building a long running service in python.
This library is inspired by ASPNETCORE. This package provides a set of classes and interfaces that simplify the initialization of a service by integrating configuration management from dnry.config and container based dependency injection using pyioc3.
This library was intended as a platform on which to create long-running services and reduce boiler plate code. You can create your own service host use one from the DNRY.SrvHost library.
Install dnry-srvhost-builder
pip install dnry-srvhost-builder
Create your own own service host
from dnry.srvhost.builder import SrvHostBase
class AppHost(SrvHostBase):
def run(self, *args, **kwargs):
print('Do something cool!')
Build your program
from dnry.config import IConfigFactory
from dnry.srvhost.builder import SrvHostBuilder, ISrvHostContext, ISrvHost
from pyioc3 import StaticContainerBuilder
def setup_config(ctx: ISrvHostContext, conf: IConfigFactory):
# Add configuration files here
pass
def setup_services(ctx: ISrvHostContext, services: StaticContainerBuilder):
services.bind(
annotation=ISrvHost,
implementation=AppHost)
if __name__ == "__main__":
SrvHostBuilder("App") \
.config_configuration(setup_config) \
.config_services(setup_services) \
.build() \
.run()
That's it! You are ready to build something cool. You can do much more
in setup_service and setup_config. For information on how to use the
IConfigFactory
, see the documentation at en0/dnry-config.
For more information on how to use StaticContainerBuilder
, see the
documentation at en0/pyioc3.