- @operation object was removed. You could replace it with @value object returning inner function. This inner function would use it's closure to resolve injected dependencies.
- drop python 3.6 support.
letattribute was removed. Use
Injector()instead of obsolete
- Due to the our new policy of enterprise user support we will drop abandoned version of python and libraries we are integrated with as soon as they reach official end of life.
- compatibility with typing module on Python 3.6 (137741f)
- Every time a new user asks me how to use their favorite framework together with stories and dependencies I understand that there is a missing module in the contrib package.
- add wrapped attribute (e3c7aa9)
- prevent generated changelog from style guide violation (d3a472f)
inchecks in the
operationdecorator to build injectable functions.
Packageobject to reduce import boilerplate in the
- Add Celery contrib to define tasks from
- Add Py.Test contrib to define fixtures from
- Add Django contrib to define views from
- Add Django REST Framework contrib to define API views and model view sets from
- A class named attributes should end with
- Improved error messages for missing dependencies.
AttributeErrorfor missed dependencies.
- Drop python 2.6 and 3.4 support.
thisobject for aliases and cross injector links.
- Deprecate attribute assignment and
- Release under BSD license.
- Performance improvements.
- Allow multiple inheritance for Injector subclasses.
- Evaluate dependencies once.
- Allow nested injectors.
- Twelve times speed up.
- Protect from incorrect operations with attribute assignment.
- Deny *args and **kwargs in the injectable classes.
- Classes can be used as default argument values only if argument name ends with
sixlibrary from install requires.
- Turn into module.
- Dependency assignment and cancellation for
- Correct syntax error for Python 2.6
DependencyErrorfor mutual recursion in constructor arguments and specified dependencies.
- Show injected dependencies in the
- Deny to instantiate
Injectorand its subclasses.
calias. Use real classes.
- Allow to use
- Do not instantiate dependencies named with
clsat the end.
- Avoid attribute search recursion. This occurs with inheritance chain length started at 3 and missing dependency on first level.
letfactory to temporarily overwrite specified dependencies.
object.__init__and skip it in the argument injection.
- Deprecate injectable mechanism. Injector may inject any arguments to any classes. Injector now support multiple DI targets. All possible targets now specified in the Injector attributes. Only single base inheritance allowed for Injector subclasses.
- Allows to override dependencies specified with Injector by inheritance from this Injector subclass.
- Initial release.
— ⭐️ —
The dependencies library is part of the SOLID python family.