Roman Mogylatov
2fe0e00cef
Singleton.full_reset() ( #391 )
...
* Improve .traverse() typing stubs
* Fix container.reset_singletons()
* Add implementation, tests, and typing stubs
* Add docs and example
* Update changelog
2021-02-05 18:17:44 -05:00
Roman Mogylatov
15fa6c301e
Pydantic settings support ( #388 )
...
* Add implementation and basic test
* Add full test coverage + bugfix
* Add test coverage for .from_yaml() method
* Update setup.py, tox and dev requirements
* Stop running pydantic tests on Python 3.5 and below
* Remove pydantic from tox Python < 3.6
* Add example and docs
* Update features block
* Add extra test
* Update changelog
2021-02-03 09:21:32 -05:00
Roman Mogylatov
478ca18ae3
336 Dependency provider default ( #382 )
...
* Add implementation and tests
* Refactor dependency provider docs
* Update docs
* Update changelog
2021-01-29 13:49:40 -05:00
Roman Mogylatov
d74e8248a1
Required config options and strict mode ( #360 )
...
* Add strict mode + tests
* Add .required() for configuration option
* Add wiring tests for required() modifier
* Add wiring support
* Add tests for defined None values in required/strict mode
* Add docs
* Update changelog
* Update example doc block
2021-01-16 08:53:40 -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
fbaf35244c
Add example and docs
2020-11-20 17:57:33 -05:00
Roman Mogylatov
b01ee7709c
Bump version to 4.1.1
2020-10-26 13:39:13 -04: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
b54bcb7b31
Dict provider ( #311 )
...
* Add tests
* Add implementation and typing stubs
* Update README and docs pages
* Add example and docs
* Update changelog
* Add long description to the doc block
2020-10-22 14:49:39 -04:00
Roman Mogylatov
b5b6c1f680
Fix flake8 warning in factory provided type example
2020-09-03 18:05:28 -04:00
Roman Mogylatov
441cc66427
Improve singleton provider docs
2020-09-03 17:57:26 -04:00
Roman Mogylatov
ad260fe709
Add container usage to the custom provider example
2020-09-03 17:56:54 -04:00
Roman Mogylatov
d6e4e8fb08
Add container usage to provided instance examples
2020-09-03 17:48:45 -04:00
Roman Mogylatov
4f111aae9b
Update provider overriding example to use container and fix bug
2020-09-03 17:42:15 -04:00
Roman Mogylatov
d61281a0b9
Add usage of the container to the selector example
2020-09-03 17:38:52 -04:00
Roman Mogylatov
e48746d65f
Add usage of the container to the configuration examples
2020-09-03 17:37:03 -04:00
Roman Mogylatov
2a23f3d2f4
Add container usage for list provider example
2020-09-03 17:03:28 -04:00
Roman Mogylatov
6528411271
Add container usage for object provider example
2020-09-03 17:00:14 -04:00
Roman Mogylatov
b074d2aeb7
Add container usage for coroutine provider example
2020-09-03 16:59:11 -04:00
Roman Mogylatov
a497cb2527
Add container usage for callable provider example
2020-09-03 16:57:35 -04:00
Roman Mogylatov
1eb9020a4e
Add container usage for all singleton provider examples
2020-09-03 16:56:01 -04:00
Roman Mogylatov
a7afa66e40
Add container usage for all factory provider examples
2020-09-03 16:51:12 -04:00
Roman Mogylatov
dd2ded7321
Update documentation and example on creating a custom provider
2020-09-02 21:09:08 -04:00
Roman Mogylatov
aeace8cba5
Update documentation on injecting provided object attributes, items or method calls
2020-09-02 17:59:31 -04:00
Roman Mogylatov
f8648adaf7
Update providers overriding documentation and rework examples
2020-09-02 16:59:25 -04:00
Roman Mogylatov
806bd31735
Bump version to 3.35.1
2020-09-01 21:58:13 -04:00
Roman Mogylatov
c4b33749d2
Providers docs update ( #289 )
...
* Update callable provider docs
* Update coroutine provider docs
* Edit object docs
* Edit list provider docs
* Edit configuration provider docs
* Edit selector provider docs
* Fix mypy stub of the ``DeclarativeContainer`` to specify the ``__init__`` interface
* Edit Dependency provider docs
2020-09-01 21:39:23 -04:00
Roman Mogylatov
0bb30f91ef
Singleton docs update ( #288 )
...
* Update docblocks of factory provider examples
* Edit singleton docs
2020-09-01 16:04:48 -04:00
Roman Mogylatov
1ad852d193
Factory provider docs update ( #287 )
...
* Update index page
* Update providers index page
* Make a little wording fix on containers index page
* Refactor factory provider docs header
* Update factory injection docs
* Update factory init injections example and picture
* Start work on underlying providers
* Finish the docs for factory arguments to the underlying providers
* Edit providers delegation section
* Edit section about specialized factory provider
* Edit abstract factory section
* Edit FactoryAggregate docs
* Add meta keywords and description
2020-08-31 21:26:21 -04:00
Roman Mogylatov
9d85b63c3b
Make a fix in the providers delegation example
2020-08-26 16:22:54 -04:00
Roman Mogylatov
f5b97ca92e
Configuration option typed injections ( #284 )
...
* Add implementation and tests
* Add docs page and examples
* Revert the api_client miniapp accidental changes
2020-08-24 13:34:47 -04:00
Roman Mogylatov
cf862fe8b5
Provided attributes ( #282 )
...
* Add sketch
* Cythonize MethodCaller
* Cythonize ItemGetter, AttributeGetter & ProvidedInstance providers
* Add docblock for .provided attribute
* Refactor repr methods
* Add .provided attribute to the Dependency provider
* Add tests for the .provided attribute to the majority of the providers
* Add docblock for the ProvidedInstance provider
* Add docblocks for the rest of the providers
* Add example of the provided instance usage
* Add tests for provided instance* providers
* Add complex provided instance example
* Update example provided_instance.py
* Add docs
2020-08-20 21:52:12 -04:00
Roman Mogylatov
0cb45bbc1c
Update the docblock of the example
2020-08-06 16:45:00 -04:00
Roman Mogylatov
4a8133204c
Factory deep init injections ( #277 )
...
* Add factory deep context providing
* Add example
* Add test
2020-08-06 16:33:06 -04:00
Roman Mogylatov
ea1e79885c
274 Configuration provider redesign ( #275 )
...
* Get 1st stable version
* Remove prototype module
* Try fix copying
* Add config itemselector example
* Add doc blocks
2020-08-03 18:01:20 -04:00
Roman Mogylatov
6eff213a68
Migrate to alabaster ( #264 )
...
* Add bootstrap and remove created at from ghnav-flask app
* Update readme
* Add logo to the docs
* Update key features description
* Update README
* Change headers of API docs
* Add alabaster theme config
* Update docs index
* Add tutorials section
* Update what is DI page
* Update DI in Python page
* Update tutorials index page
* Update provider docs
* Update container docs
* Update examples docs
2020-07-18 00:40:14 -04:00
Roman Mogylatov
a0a3da8f72
Improve List and Configuration provider docs
2020-06-29 16:32:48 -04:00
Roman Mogylatov
2513d1f600
Selector provider ( #258 )
...
* Add Selector provider
* Add Selector provider example
* Add tests for selector provider
* Update changelog
* Add pydocstyle ignore D101 for examples
* Fix repr() test
* Update changelog
* Add D203,D213 to examples pydocstyle ignore
* Add selector provider docs
2020-06-29 16:32:12 -04:00
Roman Mogylatov
62e1995a7d
Add configuration provider docs
2020-06-25 17:12:16 -04:00
RobinsonMa
c136663071
Update singleton_thread_locals.py ( #252 )
...
* Update singleton_thread_locals.py
fix
* Update singleton_thread_locals.py
* Update singleton_thread_locals.py
2020-06-16 21:53:00 -04:00
Roman Mogylatov
2beafb9a51
List provider ( #251 )
...
* Add List provider
* Add List provider example
* Add List provider unit tests
* Add docs
* Upstream changes from develop
* Update API docs
* Update unit tests
* Add support of positional context argument injections
* Update changelog
2020-06-14 17:32:12 -04:00
Bruno P. Kinoshita
910dec38a4
Fix a few typos ( #250 )
...
* Fix a few typos
* Spell, grammar checkers on docs
2020-06-13 22:24:32 -04:00
Roman Mogylatov
cf44e5815d
Refactor example modules in Python3-ish way
2020-01-26 18:41:36 -05:00
Roman Mogylatov
23642e49f4
Fix PEP257 doc block errors in example modules.
2020-01-26 14:22:43 -05: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
c5d8032e95
Update docs & examples
2017-12-21 22:54:44 +02:00
Roman Mogylatov
be65996e57
Add .provider attribute
2017-10-13 10:15:21 -07:00
Roman Mogylatov
3364d6f1b9
Add documentation for FactoryAggregate provider
2017-10-12 21:55:29 -07:00
Roman Mogylatov
c1053cbd73
Add early implementation of FactoryAggregate provider
2017-10-11 10:13:31 -07:00
Roman Mogylatov
eb52ccb3c0
Add example & prototype of factory aggregate
2017-10-11 10:11:07 -07:00