Skip to main content

A simple Inversion of Control container

Project description

https://travis-ci.org/owncloud/ocdev.svg

Installation

This library is a Python 3.2 library.

Install it via pip for Python 3:

sudo pip3 install pymple

Usage

Pymple nows three types of parameters:

  • Values: A value is simply value that is saved and reused for all other factories/singletons

  • Singletons: A singleton is a callable that is executed once and the result is saved so future calls to the build method will return the same instance

  • Factories: A factory is callable that is executed again everytime it is accessed

from pymple.container import Container

# register simple values
container.register('param', 2)
container.build('param') == 2 # True

# register singletons
class MyClass:
    def __init__(self, value):
        self.value = value

container.register_singleton('MyClass', lambda x: MyClass(x.build('param')))
container.build('MyClass') == container.build('MyClass') # True
container.build('MyClass').value == 2 # True

# register factories (no instance will be saved)
container.register_factory('MyClass', lambda x: MyClass(x.build('param')))
container.build('MyClass') == container.build('MyClass') # False
container.build('MyClass').value == 2 # True

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

pymple-0.0.1.tar.gz (14.2 kB view hashes)

Uploaded Source

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