Metadata-Version: 1.1
Name: slack
Version: 0.0.1
Summary: a DI container
Home-page: https://github.com/zweifisch/slack
Author: Feng Zhou
Author-email: zf.pascal@gmail.com
License: MIT
Description: # slack
        
        a DI Container
        
        ## register and provide
        
        ```python
        from slack import Container
        
        c = Container()
        
        class Component:
            def __init__(self):
                pass
        
        c.register('component', Component)
        
        c1 = c.provide('component')
        c2 = c.provide('component')  # c1 is c2
        ```
        
        ## dependency inject
        
        ```python
        class Component:
            def __init__(self, dep1, dep2):
                pass
        
        c.register('dep1', Dep1)
        c.register('dep2', Dep2)
        c.register('component', Component)
        c.provide('component')
        ```
        
        ## partial inject
        
        ```python
        class Component:
            def __init__(self, dep1, dep2):
                pass
        
        NewComponent = c.inject(Component, 'dep1')
        
        c = NewComponent(dep2)
        ```
        
        ## using decorator
        
        ```python
        c.register('comp1')
        def comp1(dep1, dep2):
            return SomeClass()
        ```
        
        ## apply
        
        ```python
        def fn(a, b):
            pass
        
        @c.register('b')
        def provide_b():
            pass
        
        c.apply(fn, a=val)
        ```
        
        ## groups and reset
        
        ```python
        @c.register('comp', group='once')
        class Component:
            pass
        
        comp1 = c.provide('comp')
        comp2 = c.provide('comp') # comp1 is comp2
        
        c.reset('once')
        
        comp3 = c.provide('comp') # comp3 is not comp2
        ```
        
Keywords: DI Container
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.4
