mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-02-07 15:10:47 +03:00
Update advanced examples
This commit is contained in:
parent
81f278d3dc
commit
ec1c488c44
|
@ -1,6 +1,7 @@
|
||||||
"""Config provider examples."""
|
"""Config provider examples."""
|
||||||
|
|
||||||
import dependency_injector as di
|
from dependency_injector import catalogs
|
||||||
|
from dependency_injector import providers
|
||||||
|
|
||||||
|
|
||||||
class ObjectA(object):
|
class ObjectA(object):
|
||||||
|
@ -13,17 +14,17 @@ class ObjectA(object):
|
||||||
self.timezone = timezone
|
self.timezone = timezone
|
||||||
|
|
||||||
|
|
||||||
class Catalog(di.AbstractCatalog):
|
class Catalog(catalogs.DeclarativeCatalog):
|
||||||
"""Catalog of providers."""
|
"""Catalog of providers."""
|
||||||
|
|
||||||
config = di.Config()
|
config = providers.Config()
|
||||||
""":type: di.Config"""
|
""":type: providers.Config"""
|
||||||
|
|
||||||
object_a = di.Factory(ObjectA,
|
object_a = providers.Factory(ObjectA,
|
||||||
fee=config.FEE,
|
fee=config.FEE,
|
||||||
price=config.PRICE,
|
price=config.PRICE,
|
||||||
timezone=config.GLOBAL.TIMEZONE)
|
timezone=config.GLOBAL.TIMEZONE)
|
||||||
""":type: di.Provider -> ObjectA"""
|
""":type: providers.Provider -> ObjectA"""
|
||||||
|
|
||||||
|
|
||||||
# Setting config value and making some tests.
|
# 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 sqlite3
|
||||||
import flask
|
import flask
|
||||||
import dependency_injector as di
|
|
||||||
|
from dependency_injector import providers
|
||||||
|
from dependency_injector import injections
|
||||||
|
|
||||||
|
|
||||||
database = di.Singleton(sqlite3.connect,
|
database = providers.Singleton(sqlite3.connect,
|
||||||
':memory:',
|
':memory:',
|
||||||
timeout=30,
|
timeout=30,
|
||||||
detect_types=True,
|
detect_types=True,
|
||||||
isolation_level='EXCLUSIVE')
|
isolation_level='EXCLUSIVE')
|
||||||
|
|
||||||
app = flask.Flask(__name__)
|
app = flask.Flask(__name__)
|
||||||
|
|
||||||
|
|
||||||
@app.route('/')
|
@app.route('/')
|
||||||
@di.inject(database)
|
@injections.inject(database)
|
||||||
@di.inject(flask.request)
|
@injections.inject(flask.request)
|
||||||
def hello(request, database):
|
def hello(request, database):
|
||||||
"""Example Flask view."""
|
"""Example Flask view."""
|
||||||
print request
|
print request
|
||||||
|
|
|
@ -1,22 +1,24 @@
|
||||||
"""`@di.inject()` decorator with classes example."""
|
"""`inject()` decorator with classes example."""
|
||||||
|
|
||||||
import sqlite3
|
import sqlite3
|
||||||
import flask
|
import flask
|
||||||
import flask.views
|
import flask.views
|
||||||
import dependency_injector as di
|
|
||||||
|
from dependency_injector import providers
|
||||||
|
from dependency_injector import injections
|
||||||
|
|
||||||
|
|
||||||
database = di.Singleton(sqlite3.Connection,
|
database = providers.Singleton(sqlite3.Connection,
|
||||||
database=':memory:',
|
database=':memory:',
|
||||||
timeout=30,
|
timeout=30,
|
||||||
detect_types=True,
|
detect_types=True,
|
||||||
isolation_level='EXCLUSIVE')
|
isolation_level='EXCLUSIVE')
|
||||||
|
|
||||||
app = flask.Flask(__name__)
|
app = flask.Flask(__name__)
|
||||||
|
|
||||||
|
|
||||||
@di.inject(database=database)
|
@injections.inject(database=database)
|
||||||
@di.inject(some_setting=777)
|
@injections.inject(some_setting=777)
|
||||||
class HelloView(flask.views.View):
|
class HelloView(flask.views.View):
|
||||||
"""Example flask class-based 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:
|
# Example of using `di.inject()` decorator keyword argument injections:
|
||||||
@di.inject(new_object=dependency_injector_factory)
|
@injections.inject(new_object=dependency_injector_factory)
|
||||||
@di.inject(some_setting=1334)
|
@injections.inject(some_setting=1334)
|
||||||
def example_callback1(new_object, some_setting):
|
def example_callback1(new_object, some_setting):
|
||||||
"""Example callback that does some asserts for input args."""
|
"""Example callback that does some asserts for input args."""
|
||||||
assert isinstance(new_object, object)
|
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:
|
# 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):
|
def example_callback2(new_object, some_setting):
|
||||||
"""Example callback that does some asserts for input args."""
|
"""Example callback that does some asserts for input args."""
|
||||||
assert isinstance(new_object, object)
|
assert isinstance(new_object, object)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user