Update advanced examples

This commit is contained in:
Roman Mogilatov 2015-11-23 19:14:50 +02:00
parent 81f278d3dc
commit ec1c488c44
4 changed files with 39 additions and 33 deletions

View File

@ -1,6 +1,7 @@
"""Config provider examples."""
import dependency_injector as di
from dependency_injector import catalogs
from dependency_injector import providers
class ObjectA(object):
@ -13,17 +14,17 @@ class ObjectA(object):
self.timezone = timezone
class Catalog(di.AbstractCatalog):
class Catalog(catalogs.DeclarativeCatalog):
"""Catalog of providers."""
config = di.Config()
""":type: di.Config"""
config = providers.Config()
""":type: providers.Config"""
object_a = di.Factory(ObjectA,
fee=config.FEE,
price=config.PRICE,
timezone=config.GLOBAL.TIMEZONE)
""":type: di.Provider -> ObjectA"""
object_a = providers.Factory(ObjectA,
fee=config.FEE,
price=config.PRICE,
timezone=config.GLOBAL.TIMEZONE)
""":type: providers.Provider -> ObjectA"""
# Setting config value and making some tests.

View File

@ -1,22 +1,24 @@
"""`@di.inject()` decorator and Flask view example."""
"""`inject()` decorator and Flask view example."""
import sqlite3
import flask
import dependency_injector as di
from dependency_injector import providers
from dependency_injector import injections
database = di.Singleton(sqlite3.connect,
':memory:',
timeout=30,
detect_types=True,
isolation_level='EXCLUSIVE')
database = providers.Singleton(sqlite3.connect,
':memory:',
timeout=30,
detect_types=True,
isolation_level='EXCLUSIVE')
app = flask.Flask(__name__)
@app.route('/')
@di.inject(database)
@di.inject(flask.request)
@injections.inject(database)
@injections.inject(flask.request)
def hello(request, database):
"""Example Flask view."""
print request

View File

@ -1,22 +1,24 @@
"""`@di.inject()` decorator with classes example."""
"""`inject()` decorator with classes example."""
import sqlite3
import flask
import flask.views
import dependency_injector as di
from dependency_injector import providers
from dependency_injector import injections
database = di.Singleton(sqlite3.Connection,
database=':memory:',
timeout=30,
detect_types=True,
isolation_level='EXCLUSIVE')
database = providers.Singleton(sqlite3.Connection,
database=':memory:',
timeout=30,
detect_types=True,
isolation_level='EXCLUSIVE')
app = flask.Flask(__name__)
@di.inject(database=database)
@di.inject(some_setting=777)
@injections.inject(database=database)
@injections.inject(some_setting=777)
class HelloView(flask.views.View):
"""Example flask class-based view."""

View File

@ -1,14 +1,15 @@
"""`@di.inject()` decorator simple example."""
"""`inject()` decorator simple example."""
import dependency_injector as di
from dependency_injector import providers
from dependency_injector import injections
dependency_injector_factory = di.Factory(object)
dependency_injector_factory = providers.Factory(object)
# Example of using `di.inject()` decorator keyword argument injections:
@di.inject(new_object=dependency_injector_factory)
@di.inject(some_setting=1334)
@injections.inject(new_object=dependency_injector_factory)
@injections.inject(some_setting=1334)
def example_callback1(new_object, some_setting):
"""Example callback that does some asserts for input args."""
assert isinstance(new_object, object)
@ -16,7 +17,7 @@ def example_callback1(new_object, some_setting):
# Example of using `di.inject()` decorator with positional argument injections:
@di.inject(dependency_injector_factory, 1334)
@injections.inject(dependency_injector_factory, 1334)
def example_callback2(new_object, some_setting):
"""Example callback that does some asserts for input args."""
assert isinstance(new_object, object)