🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

glorpen-di

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

glorpen-di

Yet another Dependency Injection (IOC) component for Python

1.5.0
PyPI
Maintainers
1

===================== Glorpen IOC Container

.. image:: https://travis-ci.org/glorpen/glorpen-di.svg?branch=master

.. image:: https://readthedocs.org/projects/glorpen-di/badge/?version=latest

Another Dependency Injection library for Python.

This package has following three guidelines:

  • any class configured by Container mechanism should not be modified in any way
  • there is no need for external services definition files for Container
  • no Container compiling and service tagging - we have introspection and dynamic language for this task

And so this package provides:

  • no xml configuration
  • no annotations (more cons than pros)
  • no changes to services code

Official repositories

For forking and other funnies.

BitBucket: https://bitbucket.org/glorpen/glorpen-di

GitHub: https://github.com/glorpen/glorpen-di

Supported design patterns

Service instance can be created by:

  • factory service
  • calling class object with arguments

Instance options can be altered by:

  • constructor arguments
  • setters
  • calling methods
  • using configurator service

Each service has defined scope, service cannot request other service from narrower scope.

Injecting services and parameters

.. code-block:: python

from glorpen.di import Container

class MyParamService(object): pass

class MyService(object): def init(self, obj, text, value): super(MyService, self).init() print("service instance: %s" % obj) print("container parameter: %s" % text) print("provided value: %s" % value)

c = Container()

c.add_service(MyParamService) c.add_parameter('my-param', "value from container") c.add_service(MyService).kwargs(obj__svc=MyParamService, text__param="my-param", value="defined value")

c.get(MyService)

Running snippet will print:

::

service instance: <main.MyParamService object at 0x7f2fef6e9828> container parameter: value from container provided value: defined value

See https://glorpen-di.readthedocs.io/en/latest/ for code examples and more documentation.

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts