- Fixed Flask 2.2.0+ compatibility, thanks to Valentin Baert
Backwards incompatible:
- Dropped support for Flask older than 2.2.0
- Infrastructure contributions thanks to ZHANG Cheng
- Fixed all known Flask/Werkzeug compatibility issues
Backwards incompatible:
- Dropped Python 3.6 support
- Flask >= 2.1.2 is now required
- Injector >= 0.20.0 is now required
- Improved Werkzeug/Flask 2.0 compatibility (fixed the "RuntimeError: Working outside of request context" error)
Backwards incompatible:
- Dropped Python 3.5 support
- Dropped flask_restplus support (the library hasn't been usable with Werkzeug 1.0+)
- Fixed injecting into blueprint-associated teardown_request handlers
- Added Flask-RESTX integration (#48, thanks to Michael Bukachi)
- Stopped unnecessarily installing typing on recent Python versions (thanks to Louis Trezzini)
- Fixed injecting request-scoped dependencies into teradown_request handlers (fix suggested by Nick Krichevsky)
- Added PEP 561 py.typed marker so that tools know to use type hints in the package's source
- Added support for adding instance methods as handlers (#35, thanks to Rene Hollander)
Backwards incompatible:
- Dropped Python 3.4 support
- Dropped Flask < 1.0 support
- Dropped Injector < 0.13.2 support
- flask_restful is no longer required to be installed when flask_restplus is used (#24)
- Added support for injecting into before_first_request functions (#26)
Backwards incompatible:
- Dropped Python 3.3 support
- Got rid of a deprecation warning when Injector 0.13.2 is used
- Dropped support for Injector < 0.12 and Flask < 0.12
- Dropped use_annotations constructor parameter (this also fixed compatibility with Injector 0.13)
- At least for the time being class-based views' constructors need to be marked with @inject in order for dependencies to be injected
- Fixed a bug that would cause a crash when an nonintrospectable callable was registered as, for example, before_request hook
- Fixed support for forward references in type hints
- Added type hints to the codebase
Backwards incompatible:
- Dropped support for Injector 0.10
- Dropped support for Flask < 0.11, Injector < 0.10, Python 2, PyPy and PyPy 3 (PyPy 3 will be supported in the future)
- Fixed compatibility with Injector 0.11
- Fixed Flask 0.11 compatibility, thanks to Philip Jones for the initial patch
- Added support for injecting into Flask-RestPlus Resource constructors
- Added support for dependencies declared using Python 3-style annotations
- Fixed a regression introduced in 0.6.1 (requesting an interface bound in RequestScope outside request context got broken and would raise "AttributeError: scope" exception. Even though it's not a documented behaviour it's restored now so that backwards compatibility is preserved.
- Python 2.6 support dropped
- Fixed a memory leak bug (a reference to thread-identity object would be kept forever after a request would be served by particular thread; without greenlet package installed thread ids (numeric values) are used so the internal dictionary of thread local storage grows forever; when greenlet package is installed greenlet objects are used as thread identities by Werkzeug so on top of the internal storage growing infinitely all objects referenced by those greenlet objects are kept alive; keywords: Eventlet, Gevent, GreenThread). See GH issue #9 and pull request #11, thanks to Zi Li for the fix
- Added support for injecting into Flask-RESTFul Resource constructors
- Removed
init_app
andpost_init_app
functions - Fixed a bug with Flask-Injector modifying possibly shared view generated by View.as_view (see GH issue #6, test case provided by Nicholas Hollett)
- Work only with Injector >= 0.9.0 now
- Deprecated
init_app
andpost_init_app
in favour ofFlaskInjector
- Made Flask error handlers support injection
- Made it possible to inject into Jinja template globals
- Accomodated to Injector >= 0.9.0