Roman Mogylatov
|
8eea9c4e45
|
Implement container.check_dependencies() (#396)
* Add implementation, typing stubs, and tests
* Add docs and example
* Update changelog
|
2021-02-14 18:47:15 -05:00 |
|
Roman Mogylatov
|
839a319831
|
Better error message for dependency provider (#395)
* Add prototype for flat resolving
* Add working prototype for sample 1 and 3
* Add working prototype, requires deep refactoring
* Update DependenciesContainer to handle Contrainer provider
* Fix Dependency provider copying issue
* Add hardening fix for Self provider to avoid copying bugs
* Fix flaky container copy issue
* Rename set_parent() to assign_parent()
* Refactor Dependency provider and its typing stub
* Add tests for Dependency provider
* Update makefile to run coverage when tests fail
* Clean up DependenciesContainer provider and add tests
* Clean up Container provider and add tests
* Clean up container instance and add tests
* Refactor isinstance() checks
* Clean up DeclarativeContainer and add tests
* Update docs and examples
* Update changelog
* Revoke makefile change
|
2021-02-13 09:16:38 -05:00 |
|
Roman Mogylatov
|
674a6b0f9e
|
Container "self" injections (#392)
* Add implementation
* Add Self provider tests
* Add container tests
* Remove ellipsis from tests to make them pass on Python 2
* Add tests
* Add docs
* Improve traverse() typing stubs
* Update changelog
|
2021-02-07 14:13:23 -05:00 |
|
Roman Mogylatov
|
b25356d2fa
|
Fix tests
|
2021-02-05 17:21:26 -05:00 |
|
Roman Mogylatov
|
c964253204
|
Container.reset_singletons() (#390)
* Rename container tests
* Add implementation + tests
* Update changelog
* Add examples and docs
|
2021-02-05 17:14:10 -05:00 |
|
Roman Mogylatov
|
cba5aefd65
|
Add container base class
|
2021-02-03 15:36:37 -05:00 |
|
Roman Mogylatov
|
e9a16d1f17
|
Fix #380: .init_resources() and .shutdown_resource() dont ignore nested resources
|
2021-02-01 09:54:36 -05:00 |
|
Roman Mogylatov
|
3ca6dd9af1
|
Providers traversal (#385)
* Implement providers traversal in first precision
* Implement traversal for all providers
* Update traverse interface + add some tests
* Refactor tests
* Add tests for callable provider
* Add configuration tests
* Add Factory tests
* Add FactoryAggrefate tests
* Add .provides attribute to singleton providers
* Add singleton provider tests
* Add list and dict provider tests
* Add resource tests
* Add Container provider tests
* Add Selector provider tests
* Add ProvidedInstance provider tests
* Add AttributeGetter provider tests
* Add ItemGetter provider tests
* Add MethodCaller provider tests
* Refactor container interface
* Update resource provider string representation
* Add .initializer attribute to Resource provider
* Add docs and examples
* Remove not needed EOL in the tests
* Make cosmetic refactoring
* Ignore flake8 line width error in traverse example
|
2021-02-01 09:42:21 -05:00 |
|
Roman Mogylatov
|
39cb963351
|
367 Fix declarative container metaclass bug with child providers
|
2021-01-29 16:37:50 -05:00 |
|
Roman Mogylatov
|
92938b018d
|
Improve @containers.copy to replace subcontainer providers (#378)
* Improve @containers.copy to replace subcontainer providers
* Bump version to 4.11.1
|
2021-01-27 09:21:45 -05:00 |
|
Roman Mogylatov
|
907a4f1887
|
Add dependencies attribute to declarative and dynamic containers (#359)
* Add .dependencies attribute to declarative and dynamic containers
* Update changelog
* Add typing tests
|
2021-01-15 07:20:37 -05:00 |
|
Roman Mogylatov
|
dd57c68ce5
|
Fix declarative container multi-level inheritance issue
|
2021-01-12 17:49:48 -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 |
|
Roman Mogylatov
|
47c79b2772
|
Resources (#312)
* Add prototype
* Add example
* Remove typing erros in Python 2.7 and 3.4
* Move resources example
* Draft resources docs
* Update resources docs
* Fix repr
* Rename dict provider test
* Add more tests
* Add tests + refactoring
* Add more tests
* Update tests to run only on 3.5+
* Update setup.py
* Add typing tests
* Update changelog
* Fix generator iteration
* Remove contextlib
* Hotfix aiohttp issue
* Move aiohttp fix to tox.ini
* Move aiohttp fix to a different place in tox
|
2020-10-24 20:56:32 -04:00 |
|
Roman Mogylatov
|
08de710b2f
|
235 Fix Delegate cannot be used in overridden container (#236)
* Add test for bug #235
* Fix issue + refactoring
* Update changelog
|
2019-10-09 10:45:14 -04:00 |
|
Roman Mogylatov
|
9a785de4b5
|
Coroutine provider (#206)
* Add coroutine provider examples
* Add coroutine provier
* Update changelog
* Update static analysis travis jobs to python 3.7
* Update coroutine provider implementation for python 3.4
* Update static analysis travis jobs to python 3.6
* Make pycode style happy
* Add tests for coroutine providers
* Make coroutine tests python 2 syntax friendly
* Split tests to python2 and python3
* Refactor coroutine provider tests
* Modify pypy tests running command
* Update coroutine provider docs
|
2018-10-18 19:39:19 +03:00 |
|
Roman Mogylatov
|
461c546d31
|
Fix bug #200
|
2018-07-26 10:16:02 +03:00 |
|
Roman Mogylatov
|
4bfaf92099
|
Refactor tests
|
2018-07-26 10:08:46 +03:00 |
|
Roman Mogylatov
|
48ac3824cb
|
Fix bug #198
|
2018-07-24 23:09:56 +03:00 |
|
Roman Mogylatov
|
1c6160e827
|
Feature/declarative container initialization (#176)
* Add overriding functionality on declarative container initialization
* Update changelog
* Update bundles example
|
2017-12-24 23:03:13 +02:00 |
|
Roman Mogylatov
|
7bd0997f85
|
Add parsing of nested containers to declarative container
|
2017-11-21 11:47:55 +02:00 |
|
Roman Mogilatov
|
5695c781c9
|
Update project structure
|
2016-11-04 13:06:47 +02:00 |
|