mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-02-07 07:00:49 +03:00
Update advanced examples
This commit is contained in:
parent
81f278d3dc
commit
ec1c488c44
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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."""
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user