Roman Mogylatov 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							7b19fa0964 
							
						 
					 
					
						
						
							
							477 Containers @copy fix and refactoring ( #485 )  
						
						... 
						
						
						
						* Rename local variables
* Make code layout enhancements
* Add fix and tests
* Add more refactoring
* Update changelog 
						
					 
					
						2021-08-11 21:18:37 -04:00 
						 
				 
			
				
					
						
							
							
								Roman Mogylatov 
							
						 
					 
					
						
						
						
						
							
						
						
							384117db9c 
							
						 
					 
					
						
						
							
							Update declarative container to support custom string types  
						
						
						
					 
					
						2021-08-05 17:01:53 -04:00 
						 
				 
			
				
					
						
							
							
								Roman Mogylatov 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							06f9855140 
							
						 
					 
					
						
						
							
							Update types and add tests ( #480 )  
						
						
						
					 
					
						2021-08-05 16:52:08 -04:00 
						 
				 
			
				
					
						
							
							
								Roman Mogylatov 
							
						 
					 
					
						
						
						
						
							
						
						
							aa251a44ba 
							
						 
					 
					
						
						
							
							Fix reverse shutdown order bug in container.shutdown_resources()  
						
						
						
					 
					
						2021-07-24 16:32:44 -04:00 
						 
				 
			
				
					
						
							
							
								Roman Mogylatov 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							3d1bb5d7b3 
							
						 
					 
					
						
						
							
							432 resource shutdown order ( #473 )  
						
						... 
						
						
						
						* Add PoC
* Add tests for init and shutdown ordering
* Add circular dependencies breaker tests
* Refactoring and sync + async test
* Update changelog 
						
					 
					
						2021-07-20 18:46:44 -04:00 
						 
				 
			
				
					
						
							
							
								Roman Mogylatov 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							f961ff536a 
							
						 
					 
					
						
						
							
							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 13:16:51 -04:00 
						 
				 
			
				
					
						
							
							
								Roman Mogylatov 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							d4ebb1b786 
							
						 
					 
					
						
						
							
							Remove unittest2 ( #419 )  
						
						... 
						
						
						
						* Remove unittest2 framework
* Skip a couple of tests on Python 2.7
* Update changelog 
						
					 
					
						2021-03-05 20:17:28 -05:00 
						 
				 
			
				
					
						
							
							
								Roman Mogylatov 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							2bf3601695 
							
						 
					 
					
						
						
							
							Singleton reset context ( #417 )  
						
						... 
						
						
						
						* Add implementation and typing stubs
* Make some refactoring and add tests
* Pin ubuntu version to 18.04
* Add docs and example
* Add changelog
* Add container docs 
						
					 
					
						2021-03-03 08:28:10 -05:00 
						 
				 
			
				
					
						
							
							
								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