Commit Graph

325 Commits

Author SHA1 Message Date
Roman Mogylatov
1628cfaf28 Fix `Container` provider to apply context overridings on root container initialization 2021-01-13 17:07:41 -05:00
Roman Mogylatov
de6c3cda78 Fix side effect in `Container` provider overriding 2021-01-13 09:11:24 -05:00
Roman Mogylatov
b425ac955c Bump version to 4.8.1 2021-01-12 17:50:11 -05:00
Roman Mogylatov
dd57c68ce5 Fix declarative container multi-level inheritance issue 2021-01-12 17:49:48 -05:00
Roman Mogylatov
6b8239ebb4 Bump version to 4.8.0 2021-01-12 08:42:14 -05:00
Roman Mogylatov
cd4807b2f9 Add support of overriding for container provider 2021-01-12 08:41:59 -05:00
Roman Mogylatov
86c4a22b5f Bump version to 4.7.0 2021-01-11 08:19:34 -05:00
Roman Mogylatov
8dd8446d39
Wiring container injection (#353)
* Add container injections to wiring

* Add example

* Update docs

* Update changelog

* Improve typing
2021-01-11 08:18:02 -05:00
Roman Mogylatov
ce1bf704f2 Bump version to 4.6.1 2021-01-10 20:02:46 -05:00
Roman Mogylatov
dfb7bb5a93 Bump version to 4.6.0 2021-01-10 19:31:59 -05:00
Roman Mogylatov
feed916f46
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-10 19:26:15 -05:00
Fotis Koutoupas
aad84476d0
Fix flask ext warning message (#345) 2020-12-30 13:19:42 -05:00
Roman Mogylatov
468451d4c0 Bump version to 4.5.4 2020-12-10 18:28:29 -05:00
Roman Mogylatov
730baf87d8 Bump version to 4.5.3 2020-12-05 22:14:35 -05:00
Roman Mogylatov
b49f158583 Fix bug #331 2020-12-05 21:40:51 -05:00
Roman Mogylatov
de092023b8 Bump version to 4.5.2 2020-12-04 20:18:39 -05:00
Roman Mogylatov
afa39b148e Fix issue 330: FastAPI Depends directive does not work after patching with @inject 2020-12-04 20:11:21 -05:00
Roman Mogylatov
4ff1a6eb25 Bump version to 4.5.1 2020-11-20 18:16:29 -05:00
Roman Mogylatov
57faa5f93f Bump version to 4.5.0 2020-11-20 18:10:04 -05:00
Roman Mogylatov
034e4814da Add support of non-string keys for Dict provider 2020-11-20 17:30:42 -05:00
Roman Mogylatov
d581a28b6e Bump version to 4.4.1 2020-11-17 23:59:33 -05:00
Roman Mogylatov
d37ae8e7db Improve FastAPI integration 2020-11-17 23:44:32 -05:00
Roman Mogylatov
a2b09c57dc Bump version to 4.4.0 2020-11-15 18:19:34 -05:00
Roman Mogylatov
ae3024588c
Wiring reengineering (#324)
* Bump version to 4.3.9: FastAPI example

* Reengineer wiring

* Add @inject decorator

* Add .workspace dir to gitignore

* Add generic typing for @inject

* Add type cast for @inject

* Update movie lister example

* Update cli application tutorial

* Update demo example

* Update wiring docs and examples

* Update aiohttp example and tutorial

* Update multiple containers example

* Update single container example

* Update decoupled packages example

* Update django example

* Update asyncio daemon example and tutorial

* Update FastAPI example

* Update flask example and tutorial

* Update sanic example

* Add wiring registry

* Add new line to .gitignore

* Add @inject to the test samples

* Fix flake8 errors
2020-11-15 16:06:42 -05:00
Roman Mogylatov
cdce5247c8 Bump version to 4.3.8 2020-11-12 16:31:20 -05:00
Roman Mogylatov
97c33442e0 Add wiring hotfix for fastapi 2020-11-12 15:54:49 -05:00
Roman Mogylatov
ccf6ccad54 Bump version to 4.3.7 2020-11-10 17:02:42 -05:00
Roman Mogylatov
985be71a04 Regenerate C sources after PR#322 2020-11-10 17:02:21 -05:00
Dmitry Rassoshenko
fb0d99c1c9
Fix race in ThreadSafeSingleton (#322) 2020-11-10 14:57:10 -05:00
Roman Mogylatov
3ff5c8ce82 Bump version to 4.3.6 2020-11-05 12:37:25 -05:00
Roman Mogylatov
6b93c2e412 Bump version to 4.3.5 2020-11-05 12:23:47 -05:00
Roman Mogylatov
3c71ba4b2a Fix wiring multiple imports, issue #320 2020-11-05 12:20:09 -05:00
Roman Mogylatov
f3ec74a31f Bump version to 4.3.4 2020-11-05 10:20:23 -05:00
Roman Mogylatov
18ef566aae Fix issue #319 resulting in configuration.reset_override() not working properly 2020-11-05 10:16:39 -05:00
Roman Mogylatov
25549d7cfe Bump version to 4.3.3 2020-11-03 16:06:42 -05:00
Roman Mogylatov
fb2d927cae Fix wiring for @classmethod and @staticmethod 2020-11-03 15:59:02 -05:00
Roman Mogylatov
b0d3f08aa6 Bump version to 4.3.2 2020-10-30 16:56:13 -04:00
Roman Mogylatov
e4e77d0cdb Fix wiring decorator 2020-10-30 16:55:37 -04:00
Roman Mogylatov
63977a73b2 Refactor wiring to reduce complexity 2020-10-30 16:47:26 -04:00
Roman Mogylatov
c5f799a1ec Fix issue with wiring and resource initialization 2020-10-30 16:40:27 -04:00
Roman Mogylatov
f65f8b1af9 Bump version to 4.3.1 2020-10-29 23:00:43 -04:00
Roman Mogylatov
d65b31865b Bump version to 4.3.0 2020-10-29 22:57:14 -04:00
Roman Mogylatov
707446a70f
Closing wiring marker (#315)
* Add closing marker

* Add example

* Fix flake8 errors

* Add test

* Update docs and README
2020-10-29 22:55:09 -04:00
Roman Mogylatov
21f0658ef3 Bump version to 4.2.0 2020-10-29 15:48:04 -04:00
Roman Mogylatov
e3ccb0e764 Bump version to 4.1.8 2020-10-28 22:30:52 -04:00
Roman Mogylatov
f7499354ec Bump version to 4.1.7 2020-10-28 21:02:21 -04:00
Roman Mogylatov
5c09be46d2 Bump version to 4.1.6 2020-10-28 14:23:00 -04:00
Roman Mogylatov
871bd617d4 Fix wiring linter errors 2020-10-28 13:50:51 -04:00
Roman Mogylatov
776cb4eebf Fix multiple containers wiring issue 2020-10-28 13:44:11 -04:00
Roman Mogylatov
2565a1eab0 Fix wiring for @classmethod 2020-10-28 13:11:07 -04:00