Roman Mogylatov
|
aaff333f01
|
Python 3.11 Support (#647)
* Update tests
* Enable tests on 3.11
* Fix coverage config in tox.ini
* feat: re cythonize to support python 3.11 (#646)
* feat: re cythonize to support python 3.11
* misc: added tox env for python 3.11
* misc: add classifiers for python 3.11
* fix: skip tests for removed functions
* misc: CI updates for python 3.11
Co-authored-by: Roman Mogylatov <rmogilatov@gmail.com>
* Update tests and linters job
* Update test skip decorators
* Fix tox.ini
* Update 3.10 to be explicit string literal
* Move pypy3 to legacy job
* Fix error in resourse typing test
* Update publishing job
* Update actions and setup-python versions
* Update changelog
* Update pypy
* Update tox.ini with new pypy versions
* Update publishing job
* Update actions/upload-artifact@v3
* Update ubuntu to 22.04 on docs publishing job
* Update actions/download-artifact@v3 and pypa/gh-action-pypi-publish@release/v1
Co-authored-by: Gen Xu <xgbarry@gmail.com>
|
2022-12-18 21:09:14 -05:00 |
|
Roman Mogylatov
|
86df7f91f6
|
531 Provider import from string (#555)
* Implement string imports for Factory, Callable, Singletons, and Resource
* Refactor the implementation
* Add tests
* Update tests to pass on Python 2
* Update typing and add typing tests
* Update changelog
* Update docs
|
2022-01-30 23:16:55 -05:00 |
|
Roman Mogylatov
|
36bfd2ed58
|
Improve resource subclasses typing and make shutdown definition optional (#492)
* Improve resource subclasses typing and make shutdown definition optional
* Update mypy tests
|
2021-08-23 20:54:17 -04: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 |
|