Flask extension for Pypendency. Pypendency is a dependency injection library for python 3.6+.
To install from source, download the source code, then run this:
python setup.py install
Or install with pip:
pip install Flask-Pypendency
Adding the extension to your Flask app is simple:
from flask import Flask
from flask_pypendency import Pypendency
app = Flask(__name__)
pypendency = Pypendency(app)
Anywhere in your app, you will be able to access the container using the app
from flask import current_app as app
@app.route('/hello')
def hello():
service = pypendency.container.get('my.service')
return service.say_hello()
The Flask App could be configure before the init_app
of Flask-Pypendency, with the following parameteres:
Specify the name of the folder containing the definitions of services, it should be the same across all the app (if more than one path is defined).
Default:
_dependency_injection
Iterable of absolute paths where to search for definitions of services
Default: Flask's app root path
The file test/test_flask_pypendency.py
has a end-to-end test that shows how the extension could
be used on a real Flask app.
Build the docker image:
docker build . -t flask-pypendency-dev
Run tests:
docker run -v $(pwd)/.:/usr/src/app flask-pypendency-dev bash -c "pipenv run make run-tests"