python-dependency-injector/docs/main/changelog.rst

1862 lines
60 KiB
ReStructuredText
Raw Normal View History

2015-07-28 09:46:35 +03:00
Changelog
=========
2015-08-31 16:31:38 +03:00
This document describes all the changes in *Dependency Injector* framework
that were made in every particular version.
2015-08-31 16:31:38 +03:00
From version 0.7.6 *Dependency Injector* framework strictly
follows `Semantic versioning`_
2021-09-30 22:08:11 +03:00
Develop
-------
- Add support of Python 3.10.
2021-09-30 22:08:11 +03:00
- Improve wiring with adding importing modules and packages from a string
``container.wire(modules=["yourapp.module1"])``.
- Add container wiring configuration ``wiring_config = containers.WiringConfiguration()``.
- Add support of ``with`` statement for ``container.override_providers()`` method.
- Add ``Configuration(yaml_files=[...])`` argument.
- Add ``Configuration(ini_files=[...])`` argument.
- Add ``Configuration(pydantic_settings=[...])`` argument.
- Drop support of Python 3.4. There are no immediate breaking changes, but Dependency Injector
will no longer be tested on Python 3.4 and any bugs will not be fixed.
Pytest migration (#519) * Add pytest and pytest-asyncio to the requirements * Update aiohttp ext test * Update setup.cfg * Update tox.ini * Add pytest to the tox requirements * Update tox.ini * Move configuration to tox.ini * Add pytest configs * Rename pytest-py34-py35.ini -> pytest-py35.ini * Update config file paths * Update makefile * Migrate common tests to pytest * Migrate FastAPI and Flask wiring tests * Rename flask and fastapi wiring test files * Move wiring autoloader tests * Add pytest-asyncio to the tox.ini * Migrate wiring async injection tests * Migrate main wiring tests * Migrate wiring string module and package names tests * Migrate wiring config tests * Migrate misc wiring tests * Update tests structure * Migrate misc wiring tests * Refactor container.from_schema() API tests * Migrate container.from_schema() integration tests * Rename schema samples * Update sample imports * Migrate container tests * Refactor container tests * Migrate container self tests * Migrate container instance tests * Migrate container custom string attribute name tests * Migrate container async resource tests * Fix py2 container tests * Migrate container cls tests * Migrate container class custom string cls as atrribute name tests * Migrate ext.aiohttp tests * Migrate ext.flasks tests * Update ext package tests doc block * Migrate provider utils tests * Migrate Factory async mode tests * Migrate async tests * Rename common test module * Refactor asserts in provider tests * Migrate factory tests * Migrate selector provider tests * Migrate object provider tests * Migrate self provider tests * Migrate delegate provider tests * Migrate provider tests * Migrate dependency provider tests * Migrate dependencies container provider tests * Fix warnings * Migrate list provider tests * Migrate dict provider tests * Migrate callable tests * Migrate injection tests * Migrate container provider tests * Migrate coroutine providers * Migrate traversal tests * Migrate resource tests * Migrate configuration tests * Migrate provided instance provider tests * Update doc blocks and imports * Migrate singleton tests * Update changelog and cosmetic fixes
2021-10-18 23:19:03 +03:00
- Fix ``Dependency.is_defined`` attribute to always return boolean value.
- Fix ``envs_required=False`` behavior in ``Configuration.from_*()`` methods
to give a priority to the explicitly provided value.
2021-09-30 22:08:11 +03:00
- Update documentation and fix typos.
Pytest migration (#519) * Add pytest and pytest-asyncio to the requirements * Update aiohttp ext test * Update setup.cfg * Update tox.ini * Add pytest to the tox requirements * Update tox.ini * Move configuration to tox.ini * Add pytest configs * Rename pytest-py34-py35.ini -> pytest-py35.ini * Update config file paths * Update makefile * Migrate common tests to pytest * Migrate FastAPI and Flask wiring tests * Rename flask and fastapi wiring test files * Move wiring autoloader tests * Add pytest-asyncio to the tox.ini * Migrate wiring async injection tests * Migrate main wiring tests * Migrate wiring string module and package names tests * Migrate wiring config tests * Migrate misc wiring tests * Update tests structure * Migrate misc wiring tests * Refactor container.from_schema() API tests * Migrate container.from_schema() integration tests * Rename schema samples * Update sample imports * Migrate container tests * Refactor container tests * Migrate container self tests * Migrate container instance tests * Migrate container custom string attribute name tests * Migrate container async resource tests * Fix py2 container tests * Migrate container cls tests * Migrate container class custom string cls as atrribute name tests * Migrate ext.aiohttp tests * Migrate ext.flasks tests * Update ext package tests doc block * Migrate provider utils tests * Migrate Factory async mode tests * Migrate async tests * Rename common test module * Refactor asserts in provider tests * Migrate factory tests * Migrate selector provider tests * Migrate object provider tests * Migrate self provider tests * Migrate delegate provider tests * Migrate provider tests * Migrate dependency provider tests * Migrate dependencies container provider tests * Fix warnings * Migrate list provider tests * Migrate dict provider tests * Migrate callable tests * Migrate injection tests * Migrate container provider tests * Migrate coroutine providers * Migrate traversal tests * Migrate resource tests * Migrate configuration tests * Migrate provided instance provider tests * Update doc blocks and imports * Migrate singleton tests * Update changelog and cosmetic fixes
2021-10-18 23:19:03 +03:00
- Migrate tests to ``pytest``.
2021-09-13 03:15:03 +03:00
2021-09-28 21:59:11 +03:00
4.36.2
------
- Update docs.
2021-09-28 21:51:39 +03:00
4.36.1
------
2021-09-25 22:36:48 +03:00
- Fix a wiring bug with improper resolving of ``Provide[some_provider.provider]``.
2021-09-13 03:15:03 +03:00
- Fix a typo in ``Factory`` provider docs ``service.add_attributes(clent=client)``
`#499 <https://github.com/ets-labs/python-dependency-injector/issues/499>`_.
Thanks to `@rajanjha786 <https://github.com/rajanjha786>`_ for the contribution.
2021-09-16 19:55:14 +03:00
- Fix a typo in ``boto3`` example
`#511 <https://github.com/ets-labs/python-dependency-injector/issues/511>`_.
Thanks to `@whysage <https://github.com/whysage>`_ for the contribution.
2021-09-13 03:15:03 +03:00
2021-08-25 19:06:22 +03:00
4.36.0
------
- Add support of non-string keys for ``FactoryAggregate`` provider.
- Improve ``FactoryAggregate`` typing stub.
2021-08-24 04:00:47 +03:00
- Improve resource subclasses typing and make shutdown definition optional
`PR #492 <https://github.com/ets-labs/python-dependency-injector/pull/492>`_.
Thanks to `@EdwardBlair <https://github.com/EdwardBlair>`_ for suggesting the improvement.
2021-08-24 04:25:32 +03:00
- Fix type annotations for ``.provides``.
Thanks to `Thiago Hiromi @thiromi <https://github.com/thiromi>`_ for the fix
`PR #491 <https://github.com/ets-labs/python-dependency-injector/pull/491>`_.
2021-08-24 04:14:22 +03:00
- Fix environment variables interpolation examples in configuration provider docs ``{$ENV} -> ${ENV}``.
Thanks to `Felipe Rubio @krouw <https://github.com/krouw>`_ for reporting the issue and
fixing yaml example `PR #494 <https://github.com/ets-labs/python-dependency-injector/pull/494>`_.
- Fix ``@containers.copy()`` decorator to respect dependencies on parent providers.
See issue `#477 <https://github.com/ets-labs/python-dependency-injector/issues/477>`_.
Thanks to `Andrey Torsunov @gtors <https://github.com/gtors>`_ for reporting the issue.
- Fix typing stub for ``container.override_providers()`` to accept other types besides ``Provider``.
- Fix runtime issue with generic typing in resource initializer classes ``resources.Resource``
and ``resources.AsyncResource``.
See issue `#488 <https://github.com/ets-labs/python-dependency-injector/issues/488>`_.
Thanks to `@EdwardBlair <https://github.com/EdwardBlair>`_ for reporting the issue.
2021-08-24 04:00:47 +03:00
4.35.3
------
- *This release was removed from PyPI. It was inconsistently published because project has
reached a PyPI size limit. Changes from this release are published on PyPI in next version.*
2021-08-06 23:50:42 +03:00
4.35.2
------
- Update wiring to support modules provided as packages.
See issue `#481 <https://github.com/ets-labs/python-dependency-injector/issues/481>`_.
Thanks to `@Sadbot <https://github.com/Sadbot>`_ for demonstrating the issue.
2021-08-06 00:05:17 +03:00
4.35.1
------
- Fix a container issue with supporting custom string types.
See issue `#479 <https://github.com/ets-labs/python-dependency-injector/issues/479>`_.
Thanks to `@ilsurih <https://github.com/ilsurih>`_ for reporting the issue.
2021-07-29 23:41:23 +03:00
4.35.0
------
- Add support of six 1.16.0.
2021-07-24 23:33:16 +03:00
4.34.2
------
- Fix a bug with reverse shutdown order in ``container.shutdown_resources()``.
See issue `#432 <https://github.com/ets-labs/python-dependency-injector/issues/432>`_.
Thanks to `Saulius Beinorius <https://github.com/saulbein>`_ for bringing up the issue.
2021-07-21 01:48:23 +03:00
4.34.1
------
- Update ``container.shutdown_resources()`` to respect dependencies order while shutdown.
See issue `#432 <https://github.com/ets-labs/python-dependency-injector/issues/432>`_.
Thanks to `Saulius Beinorius <https://github.com/saulbein>`_ for bringing up the issue.
2021-06-24 16:03:11 +03:00
4.34.0
------
- Add option ``envs_required`` for configuration provider ``.from_yaml()`` and ``.from_ini()``
methods. With ``envs_required=True`` methods ``.from_yaml()`` and ``.from_ini()`` raise
an exception when encounter an undefined environment variable in the configuration file.
By default this option is set to false for preserving previous behavior ``envs_required=False``.
- Add raising of an exception in configuration provider strict mode when provider encounters
an undefined environment variable in the configuration file.
- Update configuration provider environment variables interpolation to replace
undefined environment variables with an empty value.
- Update configuration provider to perform environment variables interpolation before passing
configuration file content to the parser.
2021-06-14 05:06:27 +03:00
4.33.0
------
- Add support of default value for environment variable in INI and YAML
configuration files with ``${ENV_NAME:default}`` format.
See issue `#459 <https://github.com/ets-labs/python-dependency-injector/issues/459>`_.
Thanks to `Maksym Shemet @hbmshemet <https://github.com/hbmshemet>`_ for suggesting the feature.
- Add method ``Configuration.from_value()``.
See issue `#462 <https://github.com/ets-labs/python-dependency-injector/issues/462>`_.
Thanks to Mr. `Slack Clone <https://disqus.com/by/slackclone/>`_ for bringing it up
in the comments for configuration provider docs.
2021-05-21 01:12:00 +03:00
4.32.3
------
- This fix a typo in ``di_in_python.rst`` doc.
Thanks to `@loingo95 <https://github.com/loingo95>`_ for the fix.
2021-04-27 05:09:35 +03:00
4.32.2
------
- Improve wiring fault tolerance.
See issue `#441 <https://github.com/ets-labs/python-dependency-injector/issues/441>`_.
Thanks to `@ssheng <https://github.com/ssheng>`_ for reporting the issue.
2021-04-25 20:45:34 +03:00
4.32.1
------
- Fix a bug with ``List`` provider not working in async mode.
See issue: `#450 <https://github.com/ets-labs/python-dependency-injector/issues/450>`_.
Thanks to `@mxab <https://github.com/mxab>`_ for reporting the issue.
- Add async mode tests for ``List`` and ``Dict`` provider.
2021-04-19 04:47:47 +03:00
4.32.0
------
- Add ``ContextLocalSingleton`` provider.
See PR: `#443 <https://github.com/ets-labs/python-dependency-injector/pull/442>`_.
Thanks to `@sonthonaxrk <https://github.com/sonthonaxrk>`_ for the contribution.
- Regenerate C sources using Cython 0.29.22.
4.31.2
------
- Fix an issue with ``Dict`` provider non-string keys.
See issue: `#435 <https://github.com/ets-labs/python-dependency-injector/issues/435>`_.
Thanks to `@daniel55411 <https://github.com/daniel55411>`_ for reporting the issue.
- Fix Flask scoped contexts example.
See issue: `#440 <https://github.com/ets-labs/python-dependency-injector/pull/440>`_.
Thanks to `@sonthonaxrk <https://github.com/sonthonaxrk>`_ for the contribution.
2021-03-24 04:14:35 +03:00
4.31.1
------
- Fix ``ThreadSafeSingleton`` synchronization issue.
See issue: `#433 <https://github.com/ets-labs/python-dependency-injector/issues/433>`_.
Thanks to `@garlandhu <https://github.com/garlandhu>`_ for reporting the issue.
2021-03-21 04:42:40 +03:00
4.31.0
------
Schemas (#429) * Add single container prototype * Add multiple containers prototype * Add integration tests * Implement from_*() methods and add tests * Prototype inline injections * Add integration test for inline providers * Refactor integration tests * Add integration test for reordered schema * Remove unused imports from tests * Refactor schema module * Update tests to match latest schemas * Add mypy_boto3_s3 to the test requirements * Add boto3 to the test requirements * Add set_provides for Callable, Factory, and Singleton providers * Fix warnings in tests * Add typing stubs for Callable, Factory, and Singleton .set_provides() attributes * Fix singleton children to have optional provides * Implement provider to provider resolving * Fix pypy3 tests * Implement boto3 session use case and add tests * Implement lazy initialization and improve copying for Callable, Factory, Singleton, and Coroutine providers * Fix Python 2 tests * Add region name for boto3 integration example * Remove f-strings from set_provides() * Fix schema flake8 errors * Implement lazy initialization and improve copying for Delegate provider * Implement lazy initialization and improve copying for Object provider * Speed up wiring tests * Implement lazy initialization and improve copying for FactoryAggregate provider * Implement lazy initialization and improve copying for Selector provider * Implement lazy initialization and improve copying for Dependency provider * Implement lazy initialization and improve copying for Resource provider * Implement lazy initialization and improve copying for Configuration provider * Implement lazy initialization and improve copying for ProvidedInstance provider * Implement lazy initialization and improve copying for AttributeGetter provider * Implement lazy initialization and improve copying for ItemGetter provider * Implement lazy initialization and improve copying for MethodCaller provder * Update changelog * Fix typing in wiring module * Fix wiring module loader uninstallation issue * Fix provided instance providers error handing in asynchronous mode Co-authored-by: Roman Mogylatov <rmk@Romans-MacBook-Pro.local>
2021-03-20 20:16:51 +03:00
- Implement providers' lazy initialization.
- Improve providers' copying.
- Improve typing in wiring module.
- Fix wiring module loader uninstallation issue.
- Fix provided instance providers error handing in asynchronous mode.
- Fix overridden configuration option cache resetting.
See issue: `#428 <https://github.com/ets-labs/python-dependency-injector/issues/428>`_.
Thanks to `@dcendents <https://github.com/dcendents>`_ for reporting the issue.
Schemas (#429) * Add single container prototype * Add multiple containers prototype * Add integration tests * Implement from_*() methods and add tests * Prototype inline injections * Add integration test for inline providers * Refactor integration tests * Add integration test for reordered schema * Remove unused imports from tests * Refactor schema module * Update tests to match latest schemas * Add mypy_boto3_s3 to the test requirements * Add boto3 to the test requirements * Add set_provides for Callable, Factory, and Singleton providers * Fix warnings in tests * Add typing stubs for Callable, Factory, and Singleton .set_provides() attributes * Fix singleton children to have optional provides * Implement provider to provider resolving * Fix pypy3 tests * Implement boto3 session use case and add tests * Implement lazy initialization and improve copying for Callable, Factory, Singleton, and Coroutine providers * Fix Python 2 tests * Add region name for boto3 integration example * Remove f-strings from set_provides() * Fix schema flake8 errors * Implement lazy initialization and improve copying for Delegate provider * Implement lazy initialization and improve copying for Object provider * Speed up wiring tests * Implement lazy initialization and improve copying for FactoryAggregate provider * Implement lazy initialization and improve copying for Selector provider * Implement lazy initialization and improve copying for Dependency provider * Implement lazy initialization and improve copying for Resource provider * Implement lazy initialization and improve copying for Configuration provider * Implement lazy initialization and improve copying for ProvidedInstance provider * Implement lazy initialization and improve copying for AttributeGetter provider * Implement lazy initialization and improve copying for ItemGetter provider * Implement lazy initialization and improve copying for MethodCaller provder * Update changelog * Fix typing in wiring module * Fix wiring module loader uninstallation issue * Fix provided instance providers error handing in asynchronous mode Co-authored-by: Roman Mogylatov <rmk@Romans-MacBook-Pro.local>
2021-03-20 20:16:51 +03:00
2021-03-20 03:23:20 +03:00
4.30.0
------
- Remove restriction to wire a dynamic container.
2021-03-09 00:33:32 +03:00
4.29.2
------
- Fix wiring to not crash on missing signatures.
See issue: `#420 <https://github.com/ets-labs/python-dependency-injector/issues/420>`_.
Thanks to `@Balthus1989 <https://github.com/Balthus1989>`_ for reporting the issue.
2021-03-06 01:28:46 +03:00
4.29.1
------
- Fix recursive copying issue in ``Delegate`` provider.
See issue: `#245 <https://github.com/ets-labs/python-dependency-injector/issues/245>`_.
Thanks to `@GitterRemote <https://github.com/GitterRemote>`_ for reporting the issue.
- Add docs and example for ``Factory.add_attributes()`` method.
2021-03-06 01:23:57 +03:00
- Remove legacy css file.
- Remove ``unittest2`` test dependency.
2021-03-03 17:06:19 +03:00
4.29.0
------
- Implement context manager interface for resetting a singleton provider.
See issue: `#413 <https://github.com/ets-labs/python-dependency-injector/issues/413>`_.
Thanks to `@Arrowana <https://github.com/Arrowana>`_ for suggesting the improvement.
- Implement overriding interface to container provider.
See issue: `#415 <https://github.com/ets-labs/python-dependency-injector/issues/415>`_.
Thanks to `@wackazong <https://github.com/wackazong>`_ for bringing up the use case.
2021-03-01 17:06:11 +03:00
4.28.1
------
- Fix async mode mode exception handling issue in ``Dependency`` provider.
See issue: `#409 <https://github.com/ets-labs/python-dependency-injector/issues/409>`_.
Thanks to `@wackazong <https://github.com/wackazong>`_ for reporting the issue.
2021-03-01 16:28:22 +03:00
- Fix links to ``boto3`` example.
2021-03-01 05:08:50 +03:00
4.28.0
------
- Add wiring injections into modules and class attributes.
See issue: `#411 <https://github.com/ets-labs/python-dependency-injector/issues/411>`_.
Many thanks to `@brunopereira27 <https://github.com/brunopereira27>`_ for submitting
the use case.
2021-02-27 17:46:58 +03:00
4.27.0
------
- Introduce wiring inspect filter to filter out ``flask.request`` and other local proxy objects
from the inspection.
See issue: `#408 <https://github.com/ets-labs/python-dependency-injector/issues/408>`_.
Many thanks to `@bvanfleet <https://github.com/bvanfleet>`_ for reporting the issue and
help in finding the root cause.
2021-02-25 18:51:40 +03:00
- Add ``boto3`` example.
- Add tests for ``.as_float()`` modifier usage with wiring.
2021-02-25 17:51:33 +03:00
- Make refactoring of wiring module and tests.
See PR # `#406 <https://github.com/ets-labs/python-dependency-injector/issues/406>`_.
Thanks to `@withshubh <https://github.com/withshubh>`_ for the contribution:
- Remove unused imports in tests.
- Use literal syntax to create data structure in tests.
2021-02-26 01:02:01 +03:00
- Add integration with a static analysis tool `DeepSource <https://deepsource.io/>`_.
2021-02-21 18:35:33 +03:00
4.26.0
------
- Add wiring by string id.
- Improve error message for ``Dependency`` provider missing attribute.
2021-02-19 16:11:18 +03:00
4.25.1
------
- Amend docs and add another example for ``@containers.copy()`` decorator.
2021-02-19 01:52:29 +03:00
4.25.0
------
2021-02-19 01:49:39 +03:00
- Add ``application-multiple-containers-runtime-overriding`` example. This example demonstrates
how to build application from multiple containers and override one container config from
another one in the runtime.
See issue: `#207 <https://github.com/ets-labs/python-dependency-injector/issues/207>`_.
- Add attributes forwarding for the ``Dependency`` provider.
2021-02-18 16:51:11 +03:00
4.24.0
------
- Add docs on ``@containers.copy()`` decorator.
2021-02-18 16:25:22 +03:00
- Refactor ``@containers.copy()`` decorator.
- Refactor async mode support in containers module.
2021-02-17 19:31:39 +03:00
4.23.5
------
- Fix docs publishing.
2021-02-17 18:08:43 +03:00
4.23.4
------
- Fix a typo.
2021-02-17 18:02:20 +03:00
4.23.3
------
- Fix mistakenly processed awaitable objects in async mode. This bug has corrupted
``fastapi-redis`` example causing pool exhaustion.
2021-02-17 18:08:43 +03:00
Thanks to `@iliamir <https://github.com/iliamir>`_ and Valery Komarov for finding and
reporting the issue.
- Refactor async mode.
2021-02-16 20:28:00 +03:00
4.23.2
------
- Improve async mode exceptions handling.
- Fix double printing of exception when async resource initialization causes an error.
2021-02-16 02:13:01 +03:00
4.23.1
------
- Hotfix a bug with importing FastAPI ``Request``.
See issue: `#398 <https://github.com/ets-labs/python-dependency-injector/issues/398>`_.
Thanks to `@tapm <https://github.com/tapm>`_ for reporting the bug.
2021-02-15 17:12:46 +03:00
4.23.0
------
- Add support of aliases for ``Configuration`` provider.
See issue: `#394 <https://github.com/ets-labs/python-dependency-injector/issues/394>`_.
Thanks to `@gtors <https://github.com/gtors>`_ for suggesting the feature.
2021-02-15 05:09:21 +03:00
4.22.1
------
- Pin ``sphinx`` version to hotfix docs build.
- Fix a typo in docs.
2021-02-15 03:09:44 +03:00
4.22.0
------
- Add method ``container.check_dependencies()`` to check if all container dependencies
are defined.
See issue: `#383 <https://github.com/ets-labs/python-dependency-injector/issues/383>`_.
Thanks to `@shaunc <https://github.com/shaunc>`_ for suggesting the feature.
- Add container name to the representation of the ``Dependency`` provider.
- Add docs cross-links between ``Singleton`` provider and "Reset container singletons"
pages.
2021-02-13 17:17:59 +03:00
4.21.0
------
2021-02-13 17:11:52 +03:00
- Improve ``Dependency`` provider error message: when dependency is undefined,
error message contains its name.
2021-02-09 15:35:55 +03:00
4.20.2
------
- Move docs on container "self" injections to "Providers" section.
2021-02-07 22:17:40 +03:00
4.20.1
------
- Refactor containers module.
2021-02-07 22:14:22 +03:00
4.20.0
------
- Add container "self" injections.
See issue: `#364 <https://github.com/ets-labs/python-dependency-injector/issues/364>`_.
Thanks to `@shaunc <https://github.com/shaunc>`_ for suggesting the feature.
2021-02-06 02:28:26 +03:00
4.19.0
------
- Add ``singleton.full_reset()`` method to reset all underlying singleton providers.
- Fix ``container.reset_singleton()`` to reset all provider types, not only ``Singleton``.
- Improve ``container.traverse(types=[...])`` and ``provider.traverse(types=[...])`` typing stubs
to return ``types`` -typed iterator.
- Update docs on creating custom providers with a requirement to specify ``.related`` property.
2021-02-06 01:23:10 +03:00
4.18.0
------
- Add ``container.reset_singleton()`` method to reset container singletons.
- Refactor ``container.apply_container_providers_overridings()`` to use ``container.traverse()``.
This enables deep lazy initialization of ``Container`` providers.
2021-02-05 16:30:27 +03:00
- Add tests for ``Selector`` provider.
2021-02-05 16:48:25 +03:00
- Add tests for ``ProvidedInstance`` and ``MethodCaller`` providers.
- Update Makefile to make Python 3 tests to be a default test command: ``make test``.
2021-02-05 16:30:27 +03:00
2021-02-05 02:19:40 +03:00
4.17.0
------
- Add ``FastAPI`` + ``SQLAlchemy`` example.
Thanks to `@ShvetsovYura <https://github.com/ShvetsovYura>`_ for providing initial example:
`FastAPI_DI_SqlAlchemy <https://github.com/ShvetsovYura/FastAPI_DI_SqlAlchemy>`_.
2021-02-03 23:40:41 +03:00
4.16.0
------
2021-02-03 23:33:16 +03:00
- Add container base class ``containers.Container``. ``DynamicContainer``
and ``DeclarativeContainer`` become subclasses of the ``Container``.
See issue: `#386 <https://github.com/ets-labs/python-dependency-injector/issues/386>`_.
Thanks to `@ventaquil <https://github.com/ventaquil>`_ for reporting the issue.
2021-02-03 17:22:40 +03:00
4.15.0
------
- Add ``Configuration.from_pydantic()`` method to load configuration from a ``pydantic`` settings.
2021-02-01 17:55:21 +03:00
4.14.0
------
- Add container providers traversal.
- Fix an issue with ``container.init_resource()`` and ``container.shutdown_resource()`` ignoring
nested resources that are not present on the root level.
See issue: `#380 <https://github.com/ets-labs/python-dependency-injector/issues/380>`_.
Thanks to `@approxit <https://github.com/approxit>`_ for finding and reporting the issue.
- Add ``.provides`` attribute to ``Singleton`` and its subclasses.
It's a consistency change to make ``Singleton`` match ``Callable``
and ``Factory`` interfaces.
- Add ``.initializer`` attribute to ``Resource`` provider.
- Update string representation of ``Resource`` provider.
2021-01-30 00:58:30 +03:00
4.13.2
------
- Fix PyCharm typing warning "Expected type 'Optional[Iterable[ModuleType]]',
got 'List[module.py]' instead" in ``container.wire()`` method.
2021-01-30 00:42:30 +03:00
4.13.1
------
- Fix declarative container metaclass bug: parent container providers replaced child container providers.
See issue: `#367 <https://github.com/ets-labs/python-dependency-injector/issues/367>`_.
Many thanks to `Shaun Cutts <https://github.com/shaunc>`_ for finding and report the issue.
2021-01-29 21:50:53 +03:00
4.13.0
------
- Add ``default`` argument to the dependency provider: ``Dependency(..., default=...)``.
See issue: `#336 <https://github.com/ets-labs/python-dependency-injector/issues/336>`_.
Many thanks to `Shaun Cutts <https://github.com/shaunc>`_ for providing the use case.
2021-01-29 03:50:35 +03:00
4.12.0
------
- Add wiring import hook that auto-wires dynamically imported modules.
See issue: `#365 <https://github.com/ets-labs/python-dependency-injector/issues/365>`_.
Thanks to `@Balthus1989 <https://github.com/Balthus1989>`_ for providing a use case.
2021-01-28 16:44:10 +03:00
4.11.3
------
- Replace weakrefs with normal refs in ``ConfigurationOption`` to support
``Container().provider()`` use case. Test that it does not introduce a memory leak.
See issue: `#358#issuecomment-764482059 <https://github.com/ets-labs/python-dependency-injector/issues/358#issuecomment-764482059>`_.
Many thanks to `@Minitour <https://github.com/Minitour>`_ for reporting the issue.
2021-01-27 22:03:08 +03:00
4.11.2
------
- Fix a bug in ``providers.Container`` when it's declared not at class root level.
See issue `#379 <https://github.com/ets-labs/python-dependency-injector/issues/379>`_.
Many thanks to `@approxit <https://github.com/approxit>`_ for reporting the issue.
4.11.1
------
- Fix a bug in ``@containers.copy`` to improve replacing of subcontainer providers.
See issue `#378 <https://github.com/ets-labs/python-dependency-injector/issues/378>`_.
Many thanks to `Shaun Cutts <https://github.com/shaunc>`_ for reporting the issue.
2021-01-27 15:39:38 +03:00
4.11.0
------
- Add ``loader`` argument to the configuration provider ``Configuration.from_yaml(..., loader=...)``
to override the default YAML loader.
Many thanks to `Stefano Frazzetto <https://github.com/StefanoFrazzetto>`_ for suggesting an improvement.
- Make security improvement: change default YAML loader to the custom ``yaml.SafeLoader`` with a support
of environment variables interpolation.
Many thanks to `Stefano Frazzetto <https://github.com/StefanoFrazzetto>`_ for suggesting an improvement.
- Update configuration provider ``.from_*()`` methods to raise an exception in strict mode if
configuration file does not exist or configuration data is undefined.
Many thanks to `Stefano Frazzetto <https://github.com/StefanoFrazzetto>`_ for suggesting an improvement.
- Add ``required`` argument to the configuration provider ``.from_*()`` methods to specify
mandatory configuration sources.
Many thanks to `Stefano Frazzetto <https://github.com/StefanoFrazzetto>`_ for suggesting an improvement.
- Fix a bug with asynchronous injections: async providers do not work with async dependencies.
See issue: `#368 <https://github.com/ets-labs/python-dependency-injector/issues/368>`_.
Thanks `@kolypto <https://github.com/kolypto>`_ for the bug report.
2021-01-21 19:20:21 +03:00
- Refactor asynchronous injections.
- Add extra tests for asynchronous injections.
2021-01-27 15:39:38 +03:00
- Migrate CI to Github Actions.
2021-01-20 17:04:11 +03:00
4.10.3
------
- Fix a bug in the ``Configuration`` provider: strict mode didn't work when provider
is overridden by ``None``.
See issue: `#358#issuecomment-761607432 <https://github.com/ets-labs/python-dependency-injector/issues/358#issuecomment-761607432>`_.
Many thanks to `Stefano Frazzetto <https://github.com/StefanoFrazzetto>`_ for reporting the issue.
2021-01-20 01:50:46 +03:00
4.10.2
------
- Fix a bug in ``Resource`` that cause failure when async resource depends on
another async resource.
See issue `#361 <https://github.com/ets-labs/python-dependency-injector/issues/361>`_.
Thanks `@kolypto <https://github.com/kolypto>`_ for the bug report.
2021-01-19 05:02:56 +03:00
4.10.1
------
- Fix a Python 3.9 specific bug in ``wiring`` module: introspection doesn't work for
builtin ``types.GenericAlias``. This resulted in wiring failure for modules
importing ``queue.Queue``.
See issue `#362 <https://github.com/ets-labs/python-dependency-injector/issues/362>`_.
Thanks `@ventaquil <https://github.com/ventaquil>`_ for the bug report.
- Switch Coveralls reporting Travis Job to run on Python 3.9.
2021-01-16 16:55:00 +03:00
4.10.0
------
- Add ``strict`` mode and ``required`` modifier for ``Configuration`` provider.
See issue `#341 <https://github.com/ets-labs/python-dependency-injector/issues/341>`_.
Thanks `ms-lolo <https://github.com/ms-lolo>`_ for the feature request.
2021-01-16 00:22:12 +03:00
4.9.1
-----
- Fix a bug in the ``Configuration`` provider to correctly handle undefined values.
See issue `#358 <https://github.com/ets-labs/python-dependency-injector/issues/358>`_.
Many thanks to `Stefano Frazzetto <https://github.com/StefanoFrazzetto>`_ for reporting the issue.
2021-01-15 15:23:45 +03:00
4.9.0
-----
- Add ``.dependencies`` attribute to the ``DeclarativeContainer`` and ``DynamicContainer``.
It returns dictionary of container ``Dependency`` and ``DependenciesContainer`` providers.
See issue `#357 <https://github.com/ets-labs/python-dependency-injector/issues/357>`_.
Many thanks to `Shaun Cutts <https://github.com/shaunc>`_ for suggesting the feature.
2021-01-15 14:44:41 +03:00
4.8.3
-----
- Fix a bug in the ``Configuration`` provider to correctly handle overriding by ``None``.
See issue `#358 <https://github.com/ets-labs/python-dependency-injector/issues/358>`_.
Many thanks to `Stefano Frazzetto <https://github.com/StefanoFrazzetto>`_ for reporting the issue.
2021-01-14 01:08:26 +03:00
4.8.2
-----
- Fix ``Container`` provider to apply context overridings on root container initialization.
See issue `#354 <https://github.com/ets-labs/python-dependency-injector/issues/354>`_.
Many thanks to `Shaun Cutts <https://github.com/shaunc>`_ for submitting the issue.
- Hotfix for version ``4.8.0``: fix side effect in ``Container`` provider overriding.
2021-01-13 01:50:11 +03:00
4.8.1
-----
- Fix declarative container multi-level inheritance issue.
See issue `#350 <https://github.com/ets-labs/python-dependency-injector/issues/350>`_.
Many thanks to `Shaun Cutts <https://github.com/shaunc>`_ for submitting the issue.
2021-01-12 16:42:14 +03:00
4.8.0
-----
- Add support of overriding ``Container`` provider.
See issue `#354 <https://github.com/ets-labs/python-dependency-injector/issues/354>`_.
2021-01-13 01:50:11 +03:00
Many thanks to `Shaun Cutts <https://github.com/shaunc>`_ for submitting the issue.
2021-01-12 16:42:14 +03:00
2021-01-11 16:19:34 +03:00
4.7.0
-----
- Add container injection support for wiring.
2021-01-11 04:02:46 +03:00
4.6.1
-----
- Add Disqus comments widget to the provider's async injections docs page.
2021-01-11 03:31:59 +03:00
4.6.0
-----
Async resources and injections (#352) * Add support of async injections into wiring * Add support of async functions and async generators for resources * Update resource provider typing stub for stutdown * Add resource base class for async resources * Fix tests * Add tests for async injections in wiring @inject * Refactor provider tests * Add tests for async resources * Rework async resources callbacks to .add_done_callback() style (fixes pypy3 issue) * Add awaits into async resource class test * Refactor FastAPI tests * Implement async resources initialization in container * Move container async resource tests to a separate module for Python 3.6+ * Fix init async resources in container on Python 2 * Add first dirty async injections implementation * Fix isawaitable error * Turm asyncio import to conditional for safer Py2 usage * Refactor kwargs injections * Implement positional injections, add tests and make refactoring * Implement attribute injections and add tests * Add singleton implementation + tests for all singleton types * Implement injections in thread-local and thread-safe singleton providers * Update .provided + fix resource concurent initialization issue * Implement async mode for Dependency provider * Add async mode for the provider * Add overload for Factory typing * Add typing stubs for async resource * Refactor abstract* providers __call__() * Add async mode API + tests * Add typing stubs & tests for async mode API * Add tests for async mode auto configuration * Refactor Provider.__call__() to use async mode api * Refactor Dependency provider to use async mode api * Add tests for Dependency provider async mode * Add support of async mode for FactoryAggregate provider + tests * Refactor Singleton provider to use async mode api * Refactor ThreadSafeSingleton provider to use async mode api * Refactor ThreadLocalSingleton provider to use async mode api * Finish Singleton refactoring to use async mode api * Refactor Resource provider to use async mode api * Add Provider.async_() method + tests * Add typing stubs for async_() method + tests * Refactor Singleton typing stubs to return singleton from argument methods * Refactor provider typing stubs * Improve resource typing stub * Add tests for async context kwargs injections * Fix typo in resource provider tests * Cover shutdown of not initialized resource * Add test to cover resource initialization with an error * Fix Singleton and ThreadLocalSingleton to handle initialization errors * Add FastAPI + Redis example * Make cosmetic fixes to FastAPI + Redis example * Add missing development requirements * Update module docblock in fastapi + redis example * Add FastAPI + Redis example docs * Add references to FastAPI + Redis example * Refactor resource docs * Add asynchronous resources docs * Refactor wiring docs * Add async injections docs for wiring * Add async injections page and update docs index, readme, and key features pages * Add providers async injections example * Add docs on provider async mode enabling * Reword async provider docs * Add provider async mode docs * Add cross links to async docs * Mute flake8 errors in async provider examples * Update changelog * Make cosmetic fix to containers.pyx
2021-01-11 03:26:15 +03:00
- Add support of async injections for providers.
- Add support of async injections for wiring.
- Add support of async initializers for ``Resource`` provider.
- Add ``FastAPI`` + ``Redis`` example.
- Add ARM wheel builds.
See issue `#342 <https://github.com/ets-labs/python-dependency-injector/issues/342>`_ for details.
- Fix a typo in `ext.flask` deprecation warning.
See PR `#345 <https://github.com/ets-labs/python-dependency-injector/pull/345>`_ for details.
Thanks to `Fotis Koutoupas <https://github.com/kootoopas>`_ for the fix.
2021-01-11 03:31:01 +03:00
- Update copyright year.
2020-12-11 02:28:29 +03:00
4.5.4
-----
- Fix manylinux wheels uploading issue.
See issue `#333 <https://github.com/ets-labs/python-dependency-injector/issues/333>`_ for details.
Thanks to `Richard Jones <https://github.com/RichardDRJ>`_ for reporting the issue.
2020-12-06 06:14:35 +03:00
4.5.3
-----
- Fix ``4.5.2`` degradation bug in wiring ``@inject`` with not working ``FastAPI.Depends`` directive.
See issue `#331 <https://github.com/ets-labs/python-dependency-injector/issues/331>`_ for details.
Thanks to `Juan Esteban Marín <https://github.com/juanmarin96>`_ for reporting the issue.
- Add ``FastAPI`` tests.
2020-12-05 04:18:39 +03:00
4.5.2
-----
- Fix a bug in wiring ``@inject`` with not properly working ``FastAPI.Depends`` directive.
See issue `#330 <https://github.com/ets-labs/python-dependency-injector/issues/330>`_ for details.
Thanks to `Lojka-oops <https://github.com/Lojka-oops>`_ for reporting the issue.
2020-11-21 02:16:29 +03:00
4.5.1
-----
- Fix flake8 issue in ``Commands and Handlers`` example.
2020-11-21 02:10:04 +03:00
4.5.0
-----
- Add support of non-string keys for ``Dict`` provider.
2020-11-18 19:13:31 +03:00
- Add simple ``FastAPI`` example.
2020-11-21 02:09:34 +03:00
- Add ``Commands and Handlers`` example from
issue `#327 <https://github.com/ets-labs/python-dependency-injector/issues/327>`_.
- Add extra typing test for provided instance of ``DependenciesContainer`` provider.
2020-11-18 19:13:31 +03:00
2020-11-18 07:58:44 +03:00
4.4.1
-----
2020-11-18 07:44:32 +03:00
- Improve ``FastAPI`` integration: handle ``Depends(Provide[...])``.
2020-11-18 07:46:30 +03:00
- Update ``FastAPI`` example.
2020-11-18 07:50:56 +03:00
- Remove a typo from the ``Flask`` tutorial.
2020-11-18 07:44:32 +03:00
2020-11-16 02:19:34 +03:00
4.4.0
-----
- Add ``@inject`` decorator. It helps to fix a number of wiring bugs and make wiring be more resilient.
- Refactor ``wiring`` module.
- Update documentation and examples to use ``@inject`` decorator.
- Add ``Flask`` blueprints example.
- Fix wiring bug when wiring doesn't work with the class-based decorators.
- Fix wiring bug when wiring doesn't work with the decorators that doesn't use ``functools.wraps(...)``.
- Fix wiring bug with ``@app.route(...)`` -style decorators (Flask, Sanic, FastAPI, etc.).
- Fix wiring bug when wiring doesn't work with Flask blueprints.
4.3.9
-----
- Add ``FastAPI`` example.
2020-11-13 00:31:09 +03:00
4.3.8
-----
- Add a hotfix to support wiring for ``FastAPI`` endpoints.
2020-11-11 01:02:42 +03:00
4.3.7
-----
- Fix race in ``ThreadSafeSingleton``. Many thanks to
`Dmitry Rassoshenko aka rda-dev <https://github.com/rda-dev>`_ for the pull request
(See PR `#322 <https://github.com/ets-labs/python-dependency-injector/pull/322>`_).
2020-11-05 20:37:25 +03:00
4.3.6
-----
- Fix changelog typo.
2020-11-05 20:23:47 +03:00
4.3.5
-----
- Fix a bug in ``wiring`` module that caused multiple imports of the modules
when ``.wire(packages=[...])`` is used
(See issue `#320 <https://github.com/ets-labs/python-dependency-injector/issues/320>`_). Thanks
2020-11-05 20:37:25 +03:00
to `Federico iskorini <https://github.com/iskorini>`_ for reporting the issue.
2020-11-05 20:23:47 +03:00
2020-11-05 18:20:23 +03:00
4.3.4
-----
- Fix a bug in ``Configuration`` provider that resulted in not working ``.reset_override()``
(See issue `#319 <https://github.com/ets-labs/python-dependency-injector/issues/319>`_). Thanks
to `Jun lust4life <https://github.com/lust4life>`_ for reporting the issue and suggesting a fix.
2020-11-04 00:06:42 +03:00
4.3.3
-----
- Fix a bug in ``wiring`` with improper patching of ``@classmethod`` and ``@staticmethod`` decorated methods
(See issue `#318 <https://github.com/ets-labs/python-dependency-injector/issues/318>`_).
2020-10-30 23:56:13 +03:00
4.3.2
-----
- Fix a bug in ``wiring`` with mistakenly initialized and shutdown resource with ``Closing``
marker on context argument providing.
2020-10-30 06:00:43 +03:00
4.3.1
-----
- Fix README.
2020-10-30 05:57:14 +03:00
4.3.0
-----
- Implement per-function execution scope for ``Resource`` provider in tandem
with ``wiring.Closing``.
2020-10-29 22:48:04 +03:00
4.2.0
-----
- Add support of Python 3.9.
- Update readme.
2020-10-29 05:30:52 +03:00
4.1.8
-----
- Update asyncio daemon, single- and multi-container examples to use ``Resource`` provider.
2020-10-29 04:02:21 +03:00
4.1.7
-----
- Add CI job to build and push documentation to S3 bucket.
2020-10-28 21:23:00 +03:00
4.1.6
2020-10-28 20:11:07 +03:00
-----
2020-10-28 20:44:11 +03:00
- Fix wiring of multiple containers
(see issue `#313 <https://github.com/ets-labs/python-dependency-injector/issues/313>`_).
Thanks to `iskorini <https://github.com/iskorini>`_ for reporting the issue.
2020-10-28 20:11:07 +03:00
- Fix wiring for ``@classmethod``.
2020-10-28 00:48:05 +03:00
4.1.5
-----
- Fix Travis CI windows and MacOS builds.
2020-10-27 21:36:11 +03:00
4.1.4
-----
- Fix version of ``cibuildwheel==1.63``.
- Update Travis CI webhooks to fix builds triggering.
2020-10-27 21:05:16 +03:00
4.1.3
-----
- Migrate from ``travis-ci.org`` to ``travis-ci.com`` to fix build issues.
- Add explicit installation of ``certifi`` for Windows build to resolve build problems.
2020-10-27 20:28:02 +03:00
4.1.2
-----
- Bump version of ``cibuildwheel>=1.5.1`` to resolve Windows build problem.
2020-10-27 20:28:02 +03:00
2020-10-26 20:39:13 +03:00
4.1.1
-----
- Fix a few typos in ``Resource`` provider docs.
2020-10-25 03:57:48 +03:00
4.1.0
-----
- Add ``Resource`` provider.
- Add ``Dict`` provider.
- "Un-deprecate" ``@containers.override()`` and ``@containers.copy()`` decorators (
see `Issue 301 <https://github.com/ets-labs/python-dependency-injector/issues/301>`_
for more information).
2020-10-22 00:01:31 +03:00
- Add favicon.
2020-10-21 23:54:10 +03:00
- Remove redirects that occur while getting badge images to optimize docs load speed.
2020-10-22 00:06:12 +03:00
- Update license year.
- Update short description on PyPI.
2020-10-21 23:54:10 +03:00
2020-10-21 00:50:20 +03:00
4.0.6
-----
- Fix wiring for top-level package ``__init__.py``.
2020-10-20 00:35:12 +03:00
4.0.5
-----
- Move ``.provided`` attribute to ``providers.Provider``.
- Update all links in documentation and examples to use ``https://`` instead of ``http``.
2020-10-19 05:27:53 +03:00
4.0.4
-----
- Fix typing stubs for ``container.override()`` method.
2020-10-17 04:44:12 +03:00
4.0.3
-----
- Deprecate ``@containers.override()`` and ``@containers.copy()`` decorators.
- Update changelog of version ``4.0.0`` so it lists all deprecated features.
2020-10-16 23:38:37 +03:00
4.0.2
-----
- Fix typing stubs for ``@container.override()`` and ``@containers.copy()`` decorators (
see `PR 302 <https://github.com/ets-labs/python-dependency-injector/pull/302>`_). Thanks
to `JarnoRFB <https://github.com/JarnoRFB>`_ for reporting the issue.
2020-10-16 21:10:14 +03:00
4.0.1
-----
- Extend ``Configuration.from_ini()`` and ``Configuration.from_yaml()`` typing stubs to
accept ``pathlib.Path``. The methods were already compatible with ``pathlib.Path``
and just did not accept it in their signatures (see
`PR 300 <https://github.com/ets-labs/python-dependency-injector/pull/300>`_). Fix
was provided by `JarnoRFB <https://github.com/JarnoRFB>`_. Many thanks to you again,
JarnoRFB.
Develop 4.0 (#298) * Add wiring (#294) * Add wiring module * Fix code style * Fix package test * Add version fix * Try spike for 3.6 * Try another fix with metaclass * Downsample required version to 3.6 * Introduce concept with annotations * Fix bugs * Add debug message * Add extra tests * Add extra debugging * Update config resolving * Remove 3.6 generic meta fix * Fix Flake8 * Add spike for 3.6 * Add Python 3.6 spike * Add unwire functionality * Add support of corouting functions * Bump version to 4.0 * Updaet demo example * Add pydocstyle ignore for demo * Add flake8 ignore for demo * Update aiohttp example * Update flask example * Rename aiohttp example directory * Rename views module to handlers in aiohttp example * Add sanic example * Remove not needed images * Update demo * Implement wiring for Provide[foo.provider] * Implement Provide[foo.provided.bar.baz.call()] * Make flake8 happy * Wiring refactoring (#296) * Refactor wiring * Add todos to wiring * Implement wiring of config invariant * Implement sub containers wiring + add tests * Add test for wiring config invariant * Add container.unwire() typing stub * Deprecate ext package modules and remove types module * Deprecate provider.delegate() method * Add __all__ for wiring module * Add protection for wiring only declarative container instances * Bump version to 4.0.0a2 * Add wiring docs * Add wiring of class methods * Remove unused import * Add a note on individuals import to wiring docs * Add minor improvement to wiring doc * Update DI in Python page * Update key features * Update README concep and FAQ * Add files via upload * Update README.rst * Update README.rst * Update README.rst * Update docs index page * Update README * Remove API docs for flask and aiohttp ext * Add wiring API docs * Update docs index * Update README * Update readme and docs index * Change wording in README * Django example (#297) * Add rough django example * Remove sqlite db * Add gitignore * Fix flake8 and pydocstyle errors * Add tests * Refactor settings * Move web app to to the root of the project * Add bootstrap 4 * Add doc blocks for web app * Add coverage * Fix typo in flask * Remove not needed newlines * Add screenshot * Update django app naming * Add django example to the docs * Update changelog * Update Aiohttp example * Add sanic example to the docs * Make a little fix in django example docs page * Add flask example to the docs * Add aiohttp example to the docs * Update installation docs page * Fix .delegate() deprecation * Refactor movie lister to use wiring * Make micro cosmetic changes to flask, aiohttp & sanic examples * Refactor single container example to use wiring * Refactor multiple container example to use wiring * Add return type to main() in application examples * Refactor decoupled packages example to use wiring * Refactor code layout for DI demo example * Update wiring feature message * Add more links to the examples * Change code layout in miniapps * Update sanic example * Update miniapp READMEs * Update wiring docs * Refactor part of cli tutorial * Refactor CLI app tutorial * Update test coverage results in movie lister example and tutorial * Make some minor updates to aiohttp and cli tutorials * Refactor flask tutorial * Make cosmetic fix in flask example * Refactor Flask tutorial: Connect to the GitHub * Refactor Flask tutorial: Search service * Refactor Flask tutorial: Inject search service into view * Refactor Flask tutorial: Make some refactoring * Finish flask tutorial refactoring * Update tutorials * Refactor asyncio monitoring daemon example application * Fix tutorial links * Rename asyncio miniapp * Rename tutorial image dirs * Rename api docs tol-level page * Refactor initial sections of asyncio daemon tutorial * Refactor asyncio tutorial till Example.com monitor section * Refactor asyncio tutorial example.com monitor section * Refactor asyncio tutorial httpbin.org monitor tutorial * Refactor tests section of asyncio daemon tutorial * Update conclusion of asyncio daemon tutorial * Rename tutorial images * Make cosmetic update to flask tutorial * Refactor aiohttp tutorial: Minimal application section * Refactor aiohttp tutorial: Giphy API client secion * Refactor aiohttp tutorial secion: Make the search work * Refactor aiohttp tutorial tests section * Refactor aiohttp tutorial conclusion * Upgrade Cython to 0.29.21 * Update changelog * Update demo example * Update wording on index pages * Update changelog * Update code layout for main demo
2020-10-09 22:16:27 +03:00
4.0.0
-----
New features:
- Add ``wiring`` feature.
Deprecations:
- Deprecate ``ext.aiohttp`` module in favor of ``wiring`` feature.
- Deprecate ``ext.flask`` module in favor of ``wiring`` feature.
- Deprecate ``.delegate()`` provider method in favor of ``.provider`` attribute.
Removals:
- Remove deprecated ``types`` module.
Tutorials:
- Update ``flask`` tutorial.
- Update ``aiohttp`` tutorial.
- Update ``asyncio`` daemon tutorial.
- Update CLI application tutorial.
Examples:
- Add ``django`` example.
- Add ``sanic`` example.
- Update ``aiohttp`` example.
- Update ``flask`` example.
- Update ``asyncio`` daemon example.
- Update ``movie-lister`` example.
- Update CLI application example.
Misc:
- Regenerate C sources using Cython 0.29.21.
- Improve documentation and README (typos removal, rewording, etc).
2020-09-14 03:51:10 +03:00
3.44.0
------
- Add native support of the generics to the providers: ``some_provider = providers.Provider[SomeClass]``.
- Deprecate module ``types``.
- Add documentation page on providers typing and ``mypy`` support.
2020-09-14 03:51:10 +03:00
- Update README.
2020-09-10 06:48:08 +03:00
3.43.1
------
- Fix a typo in README.
2020-09-10 06:36:13 +03:00
3.43.0
------
- Update API documentation.
2020-09-10 04:34:30 +03:00
- Remove not relevant "speech" example.
2020-09-10 06:36:13 +03:00
- Fix a few typos.
2020-09-10 04:34:30 +03:00
2020-09-10 01:02:37 +03:00
3.42.0
------
2020-09-10 00:39:49 +03:00
- Update "DI in Python" documentation page.
- Delete "What is DI?" documentation page.
2020-09-10 00:39:49 +03:00
- Delete "engines cars" example mini app.
2020-09-10 00:53:19 +03:00
- Update README.
2020-09-10 00:39:49 +03:00
2020-09-08 05:07:09 +03:00
3.41.0
------
2020-09-07 19:34:49 +03:00
- Refactor "use cases" example.
2020-09-07 18:50:32 +03:00
- Refactor "password hashing" example.
- Refactor "chained factories" pattern example.
- Refactor "factory of factories" pattern example.
2020-09-07 18:53:03 +03:00
- Fix declarative container mypy stub to ``__init__`` to accept not only providers.
- Refactor main module of the "decoupled packages" example.
2020-09-08 05:02:33 +03:00
- Delete "api client" example mini app.
2020-09-08 05:04:50 +03:00
- Delete "mail service" example mini app.
2020-09-07 18:50:32 +03:00
2020-09-07 04:54:58 +03:00
3.40.0
------
- Add "Decoupled packages" example.
- Delete "Bundles" examples mini application.
2020-09-05 06:22:58 +03:00
3.39.0
------
- Add application examples with single and multiple containers.
- Remove "Services" application examples.
- Split examples page into "Examples" with main examples and "Other Examples" with secondary
examples.
- Move "Installation" page to "Introduction" section.
2020-09-04 06:25:32 +03:00
3.38.1
------
- Fix README.
2020-09-04 06:22:11 +03:00
3.38.0
------
- Update "What is What is dependency injection?" documentation page.
2020-09-04 06:22:11 +03:00
- Update README.
- Fix a bunch of typos.
2020-09-04 01:05:45 +03:00
3.37.0
------
- Update index documentation page.
2020-09-04 01:03:21 +03:00
- Make multiple improvements and fixes for the providers documentation.
2020-09-03 20:36:19 +03:00
- Update "Key Features" documentation page.
- Remove "Structure of Dependency Injector" documentation page.
2020-09-03 23:26:32 +03:00
- Edit "Feedback" documentation page.
2020-09-03 20:36:19 +03:00
2020-09-03 04:28:09 +03:00
3.36.0
------
- Update providers overriding documentation and rework examples.
- Update documentation on injecting provided object attributes, items or method calls.
- Update documentation and example on creating a custom provider.
2020-09-03 04:28:09 +03:00
- Update providers index documentation page to give better overview of providers functionality.
- Fix mypy stub of the ``Provider`` to specify the protected ``._copy_overridings()`` method.
- Update copyright year in the documentation.
2020-09-02 04:58:13 +03:00
3.35.1
------
- Fix minor issues in the providers documentation and examples.
2020-09-02 04:40:14 +03:00
3.35.0
------
- Update documentation and rework examples for: ``Singleton``, ``Callable``, ``Coroutine``,
``Object``, ``List``, ``Configuration``, ``Selector``, and ``Dependency`` providers.
- Fix mypy stub of the ``DeclarativeContainer`` to specify the ``__init__`` interface.
2020-09-01 23:05:58 +03:00
2020-09-01 04:29:05 +03:00
3.34.0
------
- Update ``Factory`` provider documentation.
- Rework ``Factory`` provider examples.
2020-08-27 05:25:22 +03:00
3.33.0
------
- Add typing stubs.
2020-08-26 23:35:31 +03:00
3.32.3
------
- Fix few typos on README and docs main pages.
2020-08-26 23:24:59 +03:00
3.32.2
------
- Make a fix in the factory delegation example (thanks to
`Joël Bourgault <https://github.com/ojob>`_ for finding and reporting the issue).
2020-08-25 17:27:24 +03:00
3.32.1
------
- Update DI Demo 2 example and READ to make typed configuration option injection.
2020-08-24 20:38:08 +03:00
3.32.0
------
- Add a feature that helps to explicitly specify the type of the configuration option value
before the injection.
- Add disqus comments to the docs page on injecting provided instance attributes, items, etc.
2020-08-21 04:59:09 +03:00
3.31.0
------
- Add a feature that helps to inject provided instance attribute, item, or method call result
(see `Issue 281 <https://github.com/ets-labs/python-dependency-injector/issues/281>`_). Design
for this feature was provided by `JarnoRFB <https://github.com/JarnoRFB>`_. Many thanks to you,
JarnoRFB.
2020-08-16 08:16:25 +03:00
3.30.4
------
- Update README.
2020-08-16 08:13:32 +03:00
3.30.3
------
- Update README.
- Update containers documentation and examples.
2020-08-14 05:57:34 +03:00
3.30.2
------
- Update README.
2020-08-14 04:53:13 +03:00
3.30.1
------
- Update README.
- Add one more example.
2020-08-13 00:06:40 +03:00
3.30.0
------
- Rework ``Movie Lister`` example.
- Add tutorial for building ``Movie Lister``.
- Make some rewording for the other tutorials.
- Fix a couple of typos.
2020-08-11 05:32:29 +03:00
3.29.0
------
- Update README with the more direct message on what is ``Dependency Injector`` and how is it
different from the other frameworks.
- Change the example code in the README.
- Add FAQ to the README.
- Update documentation key features and index pages.
2020-08-10 22:50:51 +03:00
3.28.1
------
- Fix typos in the ``asyncio`` + ``Dependency Injector`` monitoring daemon tutorial.
2020-08-08 21:49:08 +03:00
3.28.0
------
- Add ``asyncio`` + ``Dependency Injector`` example ``monitoring-daemon-asyncio``.
- Add ``asyncio`` + ``Dependency Injector`` monitoring daemon tutorial.
- Fix a typo in the docblock of the ``Configuration`` provider.
- Fix multiple typos in the ``flask`` and ``aiohttp`` tutorials.
- Fix ``Makefile`` to run ``aiohttp`` integration tests on Python 3.5+.
2020-08-06 23:42:49 +03:00
3.27.0
------
- Add deep init injections overriding for ``Factory`` provider.
- Add ``asyncio`` monitoring daemon example.
2020-08-06 23:42:49 +03:00
2020-08-04 01:08:53 +03:00
3.26.0
------
- Add configuration itemselector feature (see
`Issue 274 <https://github.com/ets-labs/python-dependency-injector/issues/274>`_).
- Re-design ``Configuration`` provider implementation.
- Update ``giphynav-aiohttp`` to remove doubled "if not query" (many thanks to
`Oleg Baranov <https://github.com/mrbish>`_ for the feedback).
2020-07-30 20:53:37 +03:00
3.25.1
------
- Fix ``aiohttp`` tutorial typos.
2020-07-30 05:20:34 +03:00
3.25.0
------
- Add ``aiohttp`` tutorial.
- Fix ``Flask`` tutorial typos and change some wording.
2020-07-29 19:18:09 +03:00
3.24.1
------
- Update Google Search Console verification meta tag.
- Update meta description.
2020-07-29 02:26:41 +03:00
3.24.0
------
- Add ``Aiohttp`` integration module ``dependency_injector.ext.aiohttp``.
- Add ``Aiohttp`` + ``Dependency Injector`` example ``giphynav-aiohttp``.
2020-07-24 03:49:08 +03:00
3.23.2
------
- Fix ``Flask`` tutorial code issues, typos and change some wording.
2020-07-22 19:17:37 +03:00
3.23.1
------
- Fix an issue with creating ``Dependency`` provider with ``abc.ABCMeta``.
Thanks to `awaizman1 <https://github.com/awaizman1>`_. More info:
`Issue #266 <https://github.com/ets-labs/python-dependency-injector/issues/266>`_,
`PR #267 <https://github.com/ets-labs/python-dependency-injector/pull/267>`_.
2020-07-21 00:02:32 +03:00
3.23.0
------
- Add ``Flask`` tutorial.
- Add PyPI classifiers.
2020-07-18 07:45:06 +03:00
3.22.0
------
2020-07-18 07:44:11 +03:00
- Migrate docs to ``alabaster`` theme.
- Add ``Bootstrap`` extension to the ``ghnav-flask`` example.
- Add stubs for the tutorials to the docs.
2020-07-14 06:29:32 +03:00
3.21.2
------
- Hotfix changelog typo.
3.21.1
2020-07-14 06:09:42 +03:00
------
- Hotfix ``ghnav-flask`` example to read Github token from environment variable.
2020-07-14 05:50:02 +03:00
3.21.0
------
2020-07-14 05:45:15 +03:00
- Re-design ``Flask`` integration.
- Make cosmetic fixes for ``Selector`` provider docs.
2020-07-11 19:42:55 +03:00
3.20.1
------
- Hotfix Windows builds.
2020-07-11 19:16:08 +03:00
3.20.0
------
- Add ``Flask`` integration module ``dependency_injector.ext.flask``.
Readme update (#263) * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Add files via upload * Update README.rst * Rename Blank Diagram (1).svg to di-map.svg * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Add files via upload * Rename Blank Diagram (2).svg to di-map2.svg * Update README.rst * Update README.rst * Update README.rst * Update README.rst * Add files via upload * Add files via upload * Rename README.svg to di-map3.svg * Update README.rst * Add files via upload * Rename README - Page 3.svg to di-map4.svg * Update README.rst * Add files via upload * Rename README - Copy of Page 3.svg to di-map5.svg * Update README.rst * Delete di-map.svg * Delete di-map2.svg * Delete di-map3.svg * Delete di-map4.svg * Update README.rst * Update README.rst * Add Github Navigator - Flask application * Do more refactoring for ghnav-flask * More refactoring * Update README * Add tests * Update readme * Add Flask extension * Add Factory.provides attribute * Add Flask extension module * User flask extension in githubnavigator example * Add README for ghnav-flask * Update ghnav-flask README * Update ghnav-flask README * Update README with ghnav container example * Move ghnav-flask to miniapps/ folder * Fix auth token reading from env for ghnav-flask * Update readme * Fix ghnav-flask linter errors * Add downloads and wheel badge * Add tests for flask extension * Fix flask tests * Add requirements-ext.txt installation to tox.ini * Add API docs for ext.flask module * Update setup.py * Add Flask to the list of keywords * Update badges on docs README * Update docs README title * Fix ext.flask tests * Fix syntax of ext.flask for Python 2.7, 3.4, 3.5 * Fix syntax of ext.flask for Python 2.7, 3.4, 3.5 * Fix imports in ext.flask for Python 2.7, 3.4, 3.5 * Update ghfnav-flask README * Update ghfnav-flask README * Remove setting of empty github token * Add flask extras * Update requirements * Update requirements * Add flask extra to python 3.4 tox.ini * Update changelog * Update changelog
2020-07-11 19:15:00 +03:00
- Add ``Flask`` + ``Dependency Injector`` example ``ghnav-flask``.
- Add ``Factory.provides`` attribute. It is an alias to the ``Factory.cls``.
- New README.
2020-07-03 05:08:12 +03:00
3.19.2
------
- Add logo.
2020-07-02 06:17:29 +03:00
3.19.1
------
- Start distributing wheels for Linux, MacOS, and Windows (thanks to
`Travis CI <https://travis-ci.org/>`_ and
`cibuildwheel <https://github.com/joerick/cibuildwheel>`_).
2020-06-30 23:44:01 +03:00
- Start using ``twine`` for publishing package on PyPI.
2020-07-01 00:32:16 +03:00
- Fix Travis CI configuration file warnings.
2020-06-30 23:44:01 +03:00
2020-06-29 23:34:05 +03:00
3.19.0
------
- Add ``Selector`` provider.
- Fix ``Configuration.override()`` to return ``OverridingContext`` for non-dictionary values.
3.18.1
------
- Add interpolation of environment variables to ``Configuration.from_yaml()`` and
``Configuration.from_ini()``.
2020-06-26 06:37:01 +03:00
- Add ignoring of ``IOError`` to ``Configuration.from_yaml()``.
2020-06-26 01:06:37 +03:00
3.18.0
------
- Add ``Configuration.from_yaml()`` method to load configuration from the yaml file.
- Add ``Configuration.from_ini()`` method to load configuration from the ini file.
- Add ``Configuration.from_dict()`` method to load configuration from the dictionary.
- Add ``Configuration.from_env()`` method to load configuration from the environment variable.
- Add default value for ``name`` argument of ``Configuration`` provider.
2020-06-26 00:12:16 +03:00
- Add documentation for ``Configuration`` provider.
- Remove undocumented positional parameter of ``DependenciesContainer`` provider.
2020-06-23 23:46:24 +03:00
2020-06-23 19:48:01 +03:00
3.17.1
------
- Fix ``DynamicContainer`` deep-copying bug.
2020-06-23 19:14:06 +03:00
3.17.0
------
- Add ``Container`` provider.
- Add ``Configuration`` providers linking.
2020-06-17 05:34:19 +03:00
3.16.1
2020-06-15 00:49:57 +03:00
------
2020-06-17 05:34:19 +03:00
- Update ``singleton_thread_locals.py`` to support Python 3 (thanks to
`RobinsonMa <https://github.com/RobinsonMa>`_,
`PR #252 <https://github.com/ets-labs/python-dependency-injector/pull/252>`_).
- Fix Disqus comments.
- Fix warnings in API docs.
2020-06-17 05:34:19 +03:00
3.16.0
------
- Add ``List`` provider
`issue #243 <https://github.com/ets-labs/python-dependency-injector/issues/243>`_,
`PR #251 <https://github.com/ets-labs/python-dependency-injector/pull/251>`_.
- Fix a few typos in docs (thanks to `Bruno P. Kinoshita <https://github.com/kinow>`_,
`issue #249 <https://github.com/ets-labs/python-dependency-injector/issues/249>`_,
`PR #250 <https://github.com/ets-labs/python-dependency-injector/pull/250>`_).
2020-06-15 00:43:06 +03:00
- Add support of six 1.15.0.
2020-06-15 00:38:24 +03:00
- Regenerate C sources using Cython 0.29.20.
2020-02-19 01:52:46 +03:00
3.15.6
------
- Fix changelog typo.
3.15.5
2020-02-19 01:50:56 +03:00
------
- Add downloads badge.
2020-01-27 04:37:13 +03:00
3.15.4
------
- Update a link to the PyPi page on the README page.
2020-01-27 03:53:06 +03:00
3.15.3
------
2020-01-27 04:32:16 +03:00
- Fix a typo in the link to the PyPi on the "Dependency Injection in Python" documentation page.
2020-01-27 03:53:06 +03:00
- Fix a couple of typos in the list of key features on the "Key Features" and index documentation
pages.
2020-01-27 04:32:16 +03:00
- Update a link to the PyPi page on a couple of documentation pages.
2020-01-27 03:53:06 +03:00
2020-01-27 03:33:28 +03:00
3.15.2
------
- Fix a typo in the installation instructions on the README page and in the documentation.
2020-01-27 03:17:03 +03:00
3.15.1
------
- Fix a couple of typos in the README.
- Fix a couple of types in the diagram of "Engines-Cars" example.
2020-01-27 02:55:33 +03:00
3.15.0
------
- Add Python 3.8 support.
- Add PyPy 3.6 support.
- Add support of six 1.14.0.
- Add support of six 1.13.0.
2020-01-26 22:28:15 +03:00
- Regenerate C sources using Cython 0.29.14.
- Remove Python 2-ish inheritance from ``object`` in example modules.
- Replace Python 2-ish ``super(class, self).__init__()`` calls with Python 3-ish
``super().__init__()`` in example modules.
- Fix doc block errors in example modules, including related to PEP257-compliance.
2020-01-26 23:15:50 +03:00
- Clean up tox.ini file.
2019-10-09 17:46:08 +03:00
3.14.12
-------
2020-01-26 22:28:15 +03:00
- Fix ``3.14.11`` degradation issue causing inability of using ``Delegate`` provider in
``DeclarativeContainer`` when this container is instantiated with overriding of delegating
2020-06-17 04:40:01 +03:00
provider (thanks to `GitterRemote <https://github .com/GitterRemote>`_, issue details are here
`#235 <https://github.com/ets-labs/python-dependency-injector/issues/235>`_).
2019-10-08 21:46:26 +03:00
3.14.11
-------
2020-01-26 22:28:15 +03:00
- Fix issue causing creation of a copy of provided object by ``Object`` provider when it was a
part of ``DeclarativeContainer`` and this container was instantiated (thanks to
2020-06-17 04:40:01 +03:00
`davidcim <https://github.com/davidcim>`_, issue details are here
`#231 <https://github.com/ets-labs/python-dependency-injector/issues/231>`_).
2019-08-18 04:24:26 +03:00
3.14.10
2020-06-17 04:40:01 +03:00
-------
2020-01-26 22:28:15 +03:00
- Make spelling fix for the list of contributors.
2019-08-18 04:24:26 +03:00
2019-08-18 04:08:53 +03:00
3.14.9
------
2020-01-26 22:28:15 +03:00
- Improve README - minor English nitpicking (thanks to `supakeen <https://github.com/supakeen>`_).
2019-08-18 04:08:53 +03:00
2019-07-29 22:24:55 +03:00
3.14.8
------
- Regenerate C sources using Cython 0.29.13.
2019-06-07 17:03:11 +03:00
3.14.7
------
- Fix typo on "Dependency injection and inversion of control in Python" docs page (thanks to
`Dmitry (xotonic) <https://github.com/xotonic>`_).
2019-05-09 21:58:54 +03:00
3.14.6
------
- Fix ``FactoryAggregate`` provider copying issue.
2019-05-09 21:35:27 +03:00
- Regenerate C sources using Cython 0.29.7.
2019-03-22 05:22:57 +03:00
3.14.5
------
2019-03-22 05:10:53 +03:00
- Fix issue causing ``ThreadLocalSingleton`` provider to return ``None`` after
reset (thanks to `Jeroen Rietveld <https://github.com/jeroenrietveld>`_).
- Add test for ``ThreadLocalSingleton`` provider reset functionality (thanks
to `Jeroen Rietveld <https://github.com/jeroenrietveld>`_).
- Regenerate C sources using Cython 0.29.6.
2019-03-22 05:10:53 +03:00
2019-01-06 05:38:07 +03:00
3.14.4
------
- Fix typo in providers doc (thanks to `Vlad Ghita <https://github.com/vlad-ghita>`_).
2018-12-22 22:02:00 +03:00
3.14.3
------
- Fix issue with copying providers that have system streams injections
(``sys.stdin``, ``sys.stdout`` and ``sys.stderr``).
- Add support of six 1.12.0.
- Regenerate C sources using Cython 0.29.2.
2018-11-09 00:12:50 +03:00
3.14.2
------
- Set Cython ``language_level=2``.
2018-11-08 23:59:21 +03:00
3.14.1
------
2018-11-08 23:49:37 +03:00
- Fix bug `#208 <https://github.com/ets-labs/python-dependency-injector/issues/208>`_:
version ``3.14.0`` hasn't worked on Python 3.5.2 (thanks to
`Jeroen Entjes <https://github.com/JeroenEntjes>`_).
2018-11-08 23:55:01 +03:00
- Remove deprecated ``assertEquals`` from tests.
2018-11-08 23:58:17 +03:00
- Regenerate C sources using Cython 0.29.
2018-11-08 23:49:37 +03:00
2018-10-19 13:00:55 +03:00
3.14.0
------
- Add ``Coroutine`` provider.
- Add ``DelegatedCoroutine`` provider.
- Add ``AbstractCoroutine`` provider.
- Add ``CoroutineDelegate`` provider.
- Fix type-hinting of ``*args`` & ``**kwargs`` that was specified in doc
blocks of various providers and caused inspection problems in PyCharm.
- Regenerate C sources using Cython 0.28.5.
2018-09-02 21:01:19 +03:00
3.13.2
------
2018-08-20 22:14:52 +03:00
- Add additional benchmark of ``Factory`` provider.
2018-09-02 21:01:19 +03:00
- Add tests and tox.ini to the distribution, so that they could be used after
package is installed (thanks to
`Tobias Happ <https://github.com/Gerschtli>`_).
2018-08-20 22:14:52 +03:00
2018-08-17 00:27:49 +03:00
3.13.1
------
- Fix typo on "Chained Factories" pattern docs page.
2018-08-17 00:17:57 +03:00
3.13.0
2018-08-16 23:53:22 +03:00
------
2018-08-17 00:17:57 +03:00
- Add Python 3.7 support.
- Drop Python 3.3 support.
- Drop Python 2.6 support.
2018-08-16 23:53:22 +03:00
- Add example of "Chained Factories" pattern.
- Add example of "Factory of Factories" pattern.
2018-07-26 10:23:27 +03:00
3.12.4
------
- Fix bug `#200 <https://github.com/ets-labs/python-dependency-injector/issues/200>`_.
- Make some refactoring `#199 <https://github.com/ets-labs/python-dependency-injector/issues/199>`_.
2018-07-24 23:14:08 +03:00
3.12.3
------
- Fix bug `#198 <https://github.com/ets-labs/python-dependency-injector/issues/198>`_.
- Regenerate C sources using Cython 0.28.4.
2018-07-24 23:14:08 +03:00
2018-07-03 19:31:51 +03:00
3.12.2
------
- Apply code style fixes to "services_v2" example miniapp.
2018-07-02 16:47:46 +03:00
3.12.1
------
2018-06-27 19:29:55 +03:00
- Update main page example from "services_v1" to "services_v2".
- Fix few typos on main page.
2018-06-27 19:29:55 +03:00
- Add new example miniapp "password_hashing".
- Add new example miniapp "services_v2".
- Rename example miniapp "services" to "services_v1".
- Fix incompatibility issue between Python 3.3, pip 10.0.0 and virtualenv
16.0.0 (`details <https://github.com/awslabs/base64io-python/issues/4>`_)
that caused failures of Python 3.3 tests on Travis.
- Regenerate C sources using Cython 0.28.3.
2018-06-22 09:52:58 +03:00
2018-04-23 19:41:53 +03:00
3.12.0
------
- Regenerate C sources using Cython 0.28.2.
2018-02-22 16:32:14 +03:00
3.11.3
------
- Fix padding problem in code samples in docs.
2018-02-22 12:43:08 +03:00
3.11.2
------
- Fix padding problem in code samples in docs.
- Remove ``autodoc`` from the list of documentation dependencies.
3.11.1
------
- Fix small typo in documentation (thanks to James Lafa).
2018-01-24 20:59:31 +03:00
3.11.0
------
2018-01-24 21:01:46 +03:00
- Improve ``Configuration`` provider overriding logic.
- Refactor ``Configuration`` provider.
2018-01-24 21:12:10 +03:00
- Improve ``DependenciesContainer`` provider overriding logic.
2018-01-25 02:06:28 +03:00
- Update "services" example miniapp.
2018-01-24 21:01:46 +03:00
- Update "bundles" example miniapp.
3.10.0
------
- Add ``DependenciesContainer`` provider.
- Add "use_cases" example miniapp.
- Update documentation requirements to use fixed version of
``sphinxcontrib-disqus``.
2017-12-25 21:39:56 +03:00
3.9.1
-----
- Fix docs build problem (``sphinx`` is frozen on ``1.5.6`` version because of
incompatibility with ``sphinxcontrib-discus``).
- Add badge for docs.
2017-12-25 18:42:01 +03:00
3.9.0
-----
- Change initialization of declarative container, so it accepts overriding
providers as keyword arguments -
``DeclarativeContainer(**overriding_providers)``.
- Add method to dynamic catalog for setting groups of providers -
``DynamicContainer.set_providers(**providers)``.
- Add method to dynamic catalog for overriding groups of providers -
``DynamicContainer.set_providers(**overriding_providers)``.
2017-12-25 18:42:01 +03:00
- Rename ``ExternalDependency`` provider to ``Dependency``.
- Add default value for ``instance_of`` argument of ``Dependency`` provider -
``Dependency(instance_of=object)``.
- Fix bug when copying ``Configuration`` provider.
- Regenerate C sources using Cython 0.27.3.
2017-12-25 17:47:58 +03:00
- Add "bundles" example miniapp.
2017-12-21 23:48:07 +03:00
2017-11-30 12:49:13 +03:00
3.8.2
-----
- Fix padding problem in code samples in docs (part 2).
2017-11-30 12:30:41 +03:00
3.8.1
-----
- Fix padding problem in code samples in docs.
2017-11-21 12:48:15 +03:00
3.8.0
-----
- Add ``DeclarativeContainer.containers`` attribute that stores dictionary of
nested containers.
- Fix bug related to double-overridden providers (provider1 -> provider2 ->
provider3).
2017-10-30 17:52:05 +03:00
3.7.1
-----
- Add support of six 1.11.0.
2017-10-13 20:22:16 +03:00
3.7.0
-----
2017-10-13 06:06:00 +03:00
- Add ``FactoryAggregate`` provider.
2017-10-13 20:15:21 +03:00
- Add ``Provider.provider`` dynamic attribute that return new provider's
delegate (alias of method ``Provider.delegate()``).
2017-10-13 06:06:00 +03:00
- Add support of six 1.11.0.
2017-10-13 06:25:46 +03:00
- Regenerate C sources using Cython 0.27.1.
2017-10-13 06:06:00 +03:00
2017-08-08 19:10:06 +03:00
3.6.1
-----
2017-08-08 19:06:03 +03:00
- Regenerate C sources using Cython 0.26.
2017-07-09 23:41:32 +03:00
3.6.0
-----
2017-07-09 23:29:40 +03:00
- Add ``CallableDelegate`` provider.
2017-07-09 23:17:39 +03:00
- Add ``FactoryDelegate`` provider.
2017-07-09 23:34:38 +03:00
- Add ``SingletonDelegate`` provider.
2017-07-09 23:17:39 +03:00
3.5.0
-----
2017-07-07 17:49:16 +03:00
- Add functionality for initializing ``Configuration`` provider with default
values.
2017-06-09 01:46:18 +03:00
3.4.8
-----
- Code style fixes in ``providers`` module.
2017-04-18 23:42:48 +03:00
2017-05-29 10:41:31 +03:00
3.4.7
-----
- Correct typo in changelog.
2017-05-29 10:19:43 +03:00
3.4.6
-----
2017-05-29 10:41:31 +03:00
- Add "Useful links" section to the "Dependency injection and inversion of
control in Python" article.
2017-05-29 10:19:43 +03:00
2017-05-17 10:58:53 +03:00
3.4.5
-----
- Remove non-ascii character from README. This character created an
installation problem on Debian (Python 3.4).
3.4.4
-----
- Add ``Provider.last_overriding`` read-only property that points to last
overriding provider, if any. If target provider is not overridden, ``None``
would be returned.
- Update example of writing custom providers.
2017-05-08 18:55:14 +03:00
- Update movie lister example miniapp.
2017-05-08 19:05:02 +03:00
- Update source of ``coveralls.io`` badge.
2017-04-19 00:00:29 +03:00
3.4.3
-----
- Update doc block for ``Provider.overriding_lock`` attribute.
2017-04-18 23:42:48 +03:00
3.4.2
-----
- Make ``Provider`` overriding methods thread safe:
``Provider.override(provider)``, ``Provider.reset_last_overriding()``,
``Provider.reset_override()``.
- Refactor storage locking of ``ThreadSafeSingleton`` provider.
2017-04-18 23:38:04 +03:00
- Fix few ``pydocstyle`` errors in examples.
2017-03-26 16:32:13 +03:00
2017-04-07 09:19:48 +03:00
3.4.1
-----
- Update movie lister example miniapp with ``AbstractFactory`` provider.
2017-04-06 12:33:19 +03:00
3.4.0
-----
2017-04-06 18:17:06 +03:00
- Add ``AbstractCallable`` provider.
- Add ``AbstractFactory`` provider.
- Add ``AbstractSingleton`` provider.
- Optimize calling of overridden providers (~15% faster).
2017-04-06 12:33:19 +03:00
2017-03-29 01:34:08 +03:00
3.3.7
-----
- Fix minor bug related to patch of ``Configuration`` provider in version
3.3.6 - special attributes were identified by formula ``__{text}`` - now
2017-03-29 01:34:08 +03:00
they are identified by formula ``__{text}__``, that is more correct
according to Python Data Model.
2017-03-29 00:22:54 +03:00
3.3.6
-----
- Patch ``Configuration`` provider to raise ``AttributeError`` when there
is an attempt to access special attribute like ``__module__`` or
``__name__`` (this behaviour is identical to behaviour of ``object``).
- Apply minor refactoring for ``providers`` module.
- Remove cythonization from travis building process.
2017-03-26 23:01:00 +03:00
3.3.5
-----
- [Refactoring] Consolidate all containers in
``dependency_injector.containers`` module.
2017-03-26 16:32:13 +03:00
- [Refactoring] Consolidate all providers in
``dependency_injector.providers`` module.
3.3.4
-----
- Change ``__module__`` attribute for all members of
``dependency_injector.containers`` package to point to package, but not to
package modules.
- Regenerate C sources using Cython 0.25.2.
2016-12-02 21:47:57 +03:00
2017-03-15 18:28:03 +03:00
3.3.3
-----
- Update services miniapp example.
2017-02-28 23:31:19 +03:00
3.3.2
-----
- Add `disqus.com <https://disqus.com/>`_ comments for documentation.
- Fix reference to version in api docs.
- Fix title underline in containers api docs.
- Update documentation copyright year.
- Update example version in installation document.
2017-02-01 14:08:45 +03:00
3.3.1
-----
- Add some improvements to the documentation.
2017-01-30 01:12:08 +03:00
3.3.0
-----
- Add support of Python 3.6.
2017-01-30 00:39:15 +03:00
3.2.5
-----
- Add description of structure into README.
- Fix documentation errors.
2017-01-11 01:14:32 +03:00
3.2.4
-----
- Switch to single version of documentation for getting shorter urls (without
``/en/stable/``). Add appropriate redirects for compatibility with previous
links.
- Update copyright date.
2016-12-28 00:10:52 +03:00
3.2.3
-----
- Add examples into README.
- Make minor documentation updates.
3.2.2
-----
- Change name of version variable to follow PEP8: ``VERSION`` -> ``__version__``.
2016-12-02 22:04:17 +03:00
3.2.1
-----
- Update ``services`` miniapp example.
2016-12-02 21:47:57 +03:00
3.2.0
-----
2016-12-02 16:01:52 +03:00
- Add ``Configuration`` provider for late static binding of configuration
options.
2016-11-11 19:36:35 +03:00
2016-11-23 23:26:14 +03:00
3.1.5
-----
- Refactor provider internals: C functions naming scheme and code layout.
- Add Terrence Brannon (metaperl) to the list of contributors.
2016-11-18 00:35:27 +03:00
3.1.4
-----
- Move ``inline`` functions from class level to module level for removing them
from virtual table and enable inlining.
2016-11-15 15:32:23 +03:00
3.1.3
-----
- Fix flake8 ``E305`` error in examples.
2016-11-15 15:28:12 +03:00
3.1.2
-----
- Remove ``public`` (``extern``) modifier utils constants.
- Fix flake8 ``E305`` error in examples.
2016-11-13 12:52:09 +03:00
3.1.1
-----
- Fix minor typo in README.
2016-11-12 00:08:47 +03:00
3.1.0
-----
- Add "Services mini application" example.
- Fix minor error in ``Factory`` provider API doc.
2016-11-11 19:36:35 +03:00
3.0.1
-----
- Add ``*.c`` source files under version control.
- Change keywords.
2016-11-11 18:30:13 +03:00
3.0.0
-----
2016-11-11 18:05:25 +03:00
- **Providers**
1. All providers from ``dependency_injector.providers`` package are
implemented as C extension types using Cython.
2. Add ``BaseSingleton`` super class for all singleton providers.
3. Make ``Singleton`` provider not thread-safe. It makes performance of
``Singleton`` provider 10x times faster.
4. Add ``ThreadSafeSingleton`` provider - thread-safe version of
``Singleton`` provider.
5. Add ``ThreadLocalSingleton`` provider - ``Singleton`` provider that uses
thread-local storage.
6. Remove ``provides`` attribute from ``Factory`` and ``Singleton``
providers.
7. Add ``set_args()`` and ``clear_args()`` methods for ``Callable``,
``Factory`` and ``Singleton`` providers.
- **Containers**
1. Module ``dependency_injector.containers`` was split into submodules
2016-11-11 18:05:25 +03:00
without any functional changes.
- **Utils**
1. Module ``dependency_injector.utils`` is split into
2016-11-11 18:05:25 +03:00
``dependency_injector.containers`` and ``dependency_injector.providers``.
- **Miscellaneous**
1. Remove ``@inject`` decorator.
2. Add makefile (``clean``, ``test``, ``build``, ``install``, ``uninstall``
& ``publish`` commands).
3. Update repository structure:
2020-06-17 04:40:01 +03:00
2016-11-11 18:05:25 +03:00
1. Sources are moved under ``src/`` folder.
2. Tests are moved under ``tests/unit/`` folder.
2016-10-30 14:19:39 +03:00
2016-10-19 20:25:16 +03:00
2016-10-20 17:17:52 +03:00
2.2.10
------
- Fix typo in README.
2016-10-19 20:25:16 +03:00
2.2.9
-----
- Add github badges to readme and docs index pages.
- Update service names in services example miniapp.
2016-10-19 20:20:36 +03:00
- Create engines & cars example miniapp.
2016-09-23 00:35:51 +03:00
2016-10-13 10:42:52 +03:00
2.2.8
-----
- Move fixtures to separate module in movie lister example.
2016-10-12 10:45:26 +03:00
2.2.7
-----
- Fix typo in README.
2016-10-12 10:42:02 +03:00
2.2.6
-----
- Update README.
- Update docs index page.
2016-10-11 23:52:57 +03:00
2.2.5
-----
- Fix typo in README.
2016-10-11 17:46:56 +03:00
2.2.4
-----
- Update README.
2016-10-07 18:04:18 +03:00
2.2.3
-----
- Update README.
2016-10-07 16:59:22 +03:00
2.2.2
-----
- Update README.
2.2.1
-----
- Update examples.
2016-09-23 00:35:51 +03:00
2.2.0
-----
2016-09-23 00:24:45 +03:00
- Deprecate ``inject`` decorator.
2016-08-19 01:16:43 +03:00
2016-09-07 11:00:24 +03:00
2.1.1
-----
- Normalize package names by PEP-503.
2016-08-19 01:16:43 +03:00
2.1.0
-----
- Add ``ThreadLocalSingleton`` and ``DelegatedThreadLocalSingleton`` providers.
- Add documentation section about singleton providers and multi-threading.
- Update API docs of creational providers.
2016-04-20 17:38:19 +03:00
2016-05-17 21:01:08 +03:00
2.0.0
------
2016-05-22 16:25:17 +03:00
- Introduce new injections style for ``Callable``, ``Factory`` &
``Singleton`` providers.
2016-06-09 19:44:05 +03:00
- Drop providers: ``Static``, ``Value``, ``Function``, ``Class``, ``Config``.
- Increase performance of making injections in 2 times (+100%).
- Drop method injections.
2016-06-09 19:44:05 +03:00
- Simplify providers overriding system.
- Replace ``catalogs`` package with ``containers`` module.
- Drop all backward compatibilities for 1.x.
- Refactor most of the components.
- Update documentation.
2016-05-17 21:01:08 +03:00
1.17.0
------
- Add ``add_injections()`` method to ``Callable``, ``DelegatedCallable``,
``Factory``, ``DelegatedFactory``, ``Singleton`` and ``DelegatedSingleton``
providers.
- Fix bug with accessing to declarative catalog attributes from instance level.
2016-04-27 02:04:18 +03:00
1.16.8
------
- Fix some typos in introduction section of documentation.
2016-04-26 13:14:39 +03:00
1.16.7
------
- Add some changes into introduction section of documentation.
1.16.5
------
- Move project to ``https://github.com/ets-labs/python-dependency-injector``.
- Move project docs to ``http://python-dependency-injector.ets-labs.org/``.
2016-04-23 15:24:38 +03:00
1.16.4
2016-04-23 15:00:06 +03:00
------
- Add some documentation improvements.
2016-04-20 18:15:23 +03:00
1.16.1
2016-04-20 17:38:19 +03:00
------
2016-04-10 17:26:30 +03:00
- Add ``@copy`` decorator for copying declarative catalog providers.
- Add line numbers for all code samples in documentation.
2016-04-20 17:38:19 +03:00
- Add "Examples" section into documentation.
- Add "Movie Lister" example.
- Add "Services" example.
2016-04-20 14:19:54 +03:00
- Move project documentation into organisation's domain
(dependency-injector.ets-labs.org).
1.15.2
------
- [Refactoring] split ``catalogs`` module into smaller modules,
``catalogs`` module become a package.
- [Refactoring] split ``providers`` module into smaller modules,
``providers`` module become a package.
- Update introduction documentation.
2015-12-28 18:40:26 +03:00
2016-03-17 03:05:54 +03:00
1.15.1
------
- Update package information and documentation.
2016-03-14 01:08:12 +03:00
1.15.0
------
- Add ``Provider.provide()`` method. ``Provider.__call__()`` become a
reference to ``Provider.provide()``.
- Add provider overriding context.
- Update main examples and README.
2016-03-11 14:01:26 +03:00
1.14.11
-------
- Update README.
2016-03-09 12:39:05 +03:00
1.14.10
-------
- Add "catalog-providing-callbacks" example and several tests for it.
2016-03-01 18:04:01 +03:00
1.14.9
------
- Add ``override`` decorator in providers module.
- Add storing of originally decorated instance in ``inject`` decorator.
- Add several refactorings.
- Switch to ``pydocstyle`` tool from ``pep257``.
2016-02-27 01:19:09 +03:00
1.14.8
------
- Update README.
2016-02-27 01:13:42 +03:00
1.14.7
------
- Add one more example in README (inline providers and injections).
2016-02-27 01:07:32 +03:00
1.14.6
------
- Add ``cls`` alias for ``provides`` attributes of ``Factory``,
``DelegatedFactory``, ``Singleton`` and ``DelegatedSingleton`` providers.
2016-02-26 20:34:30 +03:00
1.14.5
------
- Fix typo in provider's error message.
2016-02-08 02:42:21 +03:00
1.14.4
------
- Update documentation.
2016-02-08 01:37:39 +03:00
1.14.3
------
- Optimize internals of providers.
- Optimize ``Callable`` provider.
- Optimize ``Factory`` provider.
- Optimize ``Singleton`` provider.
2016-02-04 23:55:41 +03:00
1.14.2
------
- Update documentation and description.
2016-02-02 00:18:07 +03:00
1.14.1
------
- Add meta description & keywords on docs index page.
2016-01-25 16:05:25 +03:00
1.14.0
------
- Drop support of Python 3.2.
2016-01-11 12:30:50 +03:00
1.13.2
------
- Update PyPi info.
2016-01-11 12:20:29 +03:00
1.13.1
------
- Transfer ownership to `ETS Labs <https://github.com/ets-labs>`_.
2015-12-28 18:40:26 +03:00
1.13.0
------
- Add ``DelegatedCallable`` provider.
- Add ``DelegatedFactory`` provider.
- Add ``DelegatedSingleton`` provider.
2015-12-28 18:40:26 +03:00
- Add some documentation improvements.
2015-12-15 18:02:21 +03:00
1.12.0
------
- Add possibility to specialize ``Factory`` provided type.
- Add possibility to specialize ``Singleton`` provided type.
2015-12-15 17:49:07 +03:00
- Add possibility to specialize ``DeclarativeCatalog`` provider type.
- Add possibility to specialize ``DynamicCatalog`` provider type.
2015-12-11 23:46:49 +03:00
- Make some refactorings for providers.
2015-12-11 12:40:00 +03:00
1.11.2
------
- Improve representation of providers and injections.
2015-11-26 16:34:14 +03:00
2015-11-30 13:09:56 +03:00
1.11.1
2015-11-26 16:50:12 +03:00
------
Previous state of *Dependency Injector* framework (0.11.0 version) is
considered to be production ready / stable, so current release is considered
to be the first major release.
- Increase major version.
- Backward compatibility with all previous versions above 0.7.6 has been saved.
2015-11-26 16:34:14 +03:00
0.11.0
------
- Rename ``AbstractCatalog`` to ``DeclarativeCatalog``
(with backward compatibility).
2015-11-26 16:34:14 +03:00
- Rename ``catalog`` module to ``catalogs`` with backward compatibility.
- Implement dynamic binding of providers for ``DeclarativeCatalog``.
- Add ``DynamicCatalog``.
- Change restrictions for providers-to-catalogs bindings - provider could be
bound to several catalogs with different names.
- Restrict overriding of providers by themselves.
- Restrict overriding of catalogs by themselves.
- Make ``DeclarativeCatalog.last_overriding`` attribute to be ``None`` by
default.
- Make ``Provider.last_overriding`` attribute to be ``None`` by
default.
- Refactor catalogs and providers modules.
- Add API documentation
- Improve user's guides and examples.
2015-11-04 17:32:04 +03:00
0.10.5
------
2015-11-26 16:34:14 +03:00
- Add more representable implementation for ``AbstractCatalog`` and
``AbstractCatalog.Bundle``.
2015-11-04 17:32:04 +03:00
2015-11-02 11:58:09 +03:00
0.10.4
------
- Remove VERSION file from MANIFEST.in.
2015-10-26 13:52:52 +03:00
0.10.3
------
- Update example docblocks.
0.10.2
------
- Fix bug with injecting entities that implement ``__getattr__``.
2015-10-23 17:04:39 +03:00
0.10.1
------
- Update some examples.
2015-10-23 16:49:07 +03:00
0.10.0
------
2015-11-26 16:34:14 +03:00
- Add functionality for creating ``AbstractCatalog`` provider bundles.
- Improve ``AbstractCatalog`` inheritance.
- Improve ``AbstractCatalog`` overriding.
2015-10-11 15:34:21 +03:00
- Add images for catalog "Writing catalogs" and "Operating with catalogs"
examples.
- Add functionality for using positional argument injections with
2015-11-26 16:34:14 +03:00
``Factory``, ``Singleton``, ``Callable`` providers and
``inject`` decorator.
- Add functionality for decorating classes with ``@inject``.
- Add ``Singleton.injections`` attribute that represents a tuple of all
``Singleton`` injections (including args, kwargs, attributes and methods).
- Add ``Callable.injections`` attribute that represents a tuple of all
``Callable`` injections (including args and kwargs).
- Add optimization for ``Injection.value`` property that will compute
type of injection once, instead of doing this on every call.
2015-11-26 16:34:14 +03:00
- Add ``VERSION`` constant for verification of currently installed version.
- Add support of Python 3.5.
- Add support of six 1.10.0.
- Add minor refactorings and code style fixes.
2015-09-03 00:27:56 +03:00
2015-09-14 10:53:24 +03:00
0.9.5
-----
- Change provider attributes scope to public.
2015-11-26 16:34:14 +03:00
- Add ``Factory.injections`` attribute that represents a tuple of all
``Factory`` injections (including kwargs, attributes and methods).
2015-09-14 10:53:24 +03:00
0.9.4
-----
- Add minor documentation fixes.
2015-09-04 02:33:15 +03:00
0.9.3
-----
- Implement thread safety.
2015-09-04 02:33:15 +03:00
2015-09-03 16:00:23 +03:00
0.9.2
-----
- Add minor refactorings.
2015-09-03 00:27:56 +03:00
0.9.1
-----
- Add simplified syntax of kwarg injections for ``di.Factory`` and
``di.Singleton`` providers:
``di.Factory(SomeClass, dependency1=injectable_provider_or_value)``.
- Add simplified syntax of kwarg injections for ``di.Callable`` provider:
``di.Callable(some_callable, dependency1=injectable_provider_or_value)``
- Add simplified syntax of kwarg injections for ``@di.inject`` decorator:
``@di.inject(dependency1=injectable_provider_or_value)``.
- Optimize ``@di.inject()`` decorations when they were made several times for
the same callback.
2015-09-01 00:37:21 +03:00
- Add minor refactorings.
- Fix of minor documentation issues.
2015-08-31 16:36:31 +03:00
0.8.1
2015-08-31 16:31:38 +03:00
-----
- ``Objects`` is renamed to ``Dependency Injector``.
2015-08-17 22:44:28 +03:00
0.7.8
-----
- Fixing @inject import bug in examples.
2015-08-05 17:44:22 +03:00
0.7.7
-----
- Fixing minor bug in concept example.
0.7.6
-----
- Adding support of six from 1.7.0 to 1.9.0.
- Factory / Singleton providers are free from restriction to operate with
classes only. This feature gives a change to use factory method and
functions with Factory / Singleton providers.
- All attributes of all entities that have to be protected was renamed using
``_protected`` manner.
- Providers extending was improved by implementing overriding logic in
``Provider.__call__()`` and moving providing logic into
``Provider._provide()``.
- ``NewInstance`` provider was renamed to ``Factory`` provider.
``NewInstance`` still can be used, but it considered to be deprecated and
will be removed in further releases.
- ``@inject`` decorator was refactored to keep all injections in
``_injections`` attribute of decorated callback. It will give a possibility to
track all the injections of particular callbacks and gives some performance
boost due minimizing number of calls for doing injections.
- A lot of documentation updates were made.
- A lot of examples were added.
- Some minor refactorings were done.
Previous versions
-----------------
- While *Objects* was in alpha state, changes were not tracked.
2017-02-28 23:05:00 +03:00
.. disqus::
.. _Semantic versioning: https://semver.org/