Commit Graph

1818 Commits

Author SHA1 Message Date
Roman Mogylatov
2d49308c16
Configuration strict mode raise on non existing files (#375)
* Update from_yaml()

* Refactor YAML environment variables interpolation

* Update from_ini()

* Refactor UNDEFINED

* Update from_env()

* Update from_dict()

* Update docs

* Update changelog
2021-01-23 22:37:50 -05:00
Roman Mogylatov
500855895b
372 Change yaml loader to safe loader (#373)
* Add safe loader with env interpolation and an arg to provide custom loader

* Add docs

* Update changelog
2021-01-21 18:00:24 -05:00
Roman Mogylatov
582c232790 Update version to dev 2021-01-21 17:57:31 -05:00
Roman Mogylatov
d533ac110a Add extra tests for asynchronous injections 2021-01-21 11:42:22 -05:00
Roman Mogylatov
c16f974517 Refactor asynchronous injections 2021-01-21 11:20:24 -05:00
Roman Mogylatov
4b0272ab30 Fix #368 Async providers do not work with async dependencies 2021-01-21 10:58:49 -05:00
Roman Mogylatov
349c252b50 Merge branch 'release/4.10.3' into master 2021-01-20 09:04:24 -05:00
Roman Mogylatov
c865e7c90d Bump version to 4.10.3 2021-01-20 09:04:11 -05:00
Roman Mogylatov
e338309c10 Merge branch 'develop' of https://github.com/ets-labs/python-dependency-injector into develop 2021-01-20 08:59:49 -05:00
Roman Mogylatov
9f7dbe89f6 Merge branch 'release/4.10.2' into master 2021-01-20 08:58:32 -05:00
Roman Mogylatov
0cc63cd075 Merge branch 'release/4.10.2' into master 2021-01-19 17:51:00 -05:00
Roman Mogylatov
a635e46b59 Bump version to 4.10.2 2021-01-19 17:50:46 -05:00
Roman Mogylatov
21cc6ffc1b Fix bug #361: failure on async resource depends on other async resource 2021-01-19 17:47:25 -05:00
Roman Mogylatov
2cfc61aa37 Merge branch 'release/4.10.1' into master 2021-01-18 21:03:09 -05:00
Roman Mogylatov
50c5c81fd7 Bump version to 4.10.1 2021-01-18 21:02:56 -05:00
Roman Mogylatov
0ab0239d47 Switch Coveralls reporting Travis Job to run on Python 3.9. 2021-01-18 20:56:55 -05:00
Roman Mogylatov
4991c5d4b0 Fix a Python 3.9 GenericAlias introspection bug, issue #362 2021-01-18 20:49:56 -05:00
Roman Mogylatov
2ced67d52b Merge branch 'release/4.10.0' into master 2021-01-16 08:55:15 -05:00
Roman Mogylatov
7ada2dc938 Bump version to 4.10.0 2021-01-16 08:55:00 -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
3b69ed91c6 Merge branch 'release/4.9.1' into master 2021-01-15 16:22:28 -05:00
Roman Mogylatov
21fb81dffb Bump version to 4.9.1 2021-01-15 16:22:12 -05:00
Roman Mogylatov
d9ff0a01fd Fix a bug in the `Configuration` provider to correctly handle undefined values 2021-01-15 16:21:57 -05:00
Roman Mogylatov
b873137614 Merge branch 'release/4.9.0' into master 2021-01-15 07:24:02 -05:00
Roman Mogylatov
07d6261e3f Bump version to 4.9.0 2021-01-15 07:23: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
3e207a4f21 Merge branch 'release/4.8.3' into master 2021-01-15 06:44:54 -05:00
Roman Mogylatov
a996c142ac Bump version to 4.8.3 2021-01-15 06:44:41 -05:00
Roman Mogylatov
1c87a9973d Fix a bug in the `Configuration provider to correctly handle overriding by None`. 2021-01-15 06:44:24 -05:00
Roman Mogylatov
1cbd3a0215 Merge branch 'release/4.8.2' into master 2021-01-13 17:08:36 -05:00
Roman Mogylatov
21053b3fb1 Bump version to 4.8.2 2021-01-13 17:08:26 -05:00
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
d9f914dfeb Merge branch 'release/4.8.1' into master 2021-01-12 17:50:28 -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
46422a6845 Merge branch 'release/4.8.0' into master 2021-01-12 08:42:38 -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
cebeb79b93 Merge branch 'release/4.7.0' into master 2021-01-11 08:19: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
6e77a95909 Merge branch 'release/4.6.1' into master 2021-01-10 20:02:57 -05:00
Roman Mogylatov
ce1bf704f2 Bump version to 4.6.1 2021-01-10 20:02:46 -05:00
Roman Mogylatov
9cd201a493 Merge branch 'release/4.6.0' into master 2021-01-10 19:32:29 -05:00
Roman Mogylatov
dfb7bb5a93 Bump version to 4.6.0 2021-01-10 19:31:59 -05:00
Roman Mogylatov
48a2bcc039 Update copyright year 2021-01-10 19:31:01 -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
9f6d2bb522 Update changelog and list of contributors 2020-12-30 13:26:28 -05:00
Fotis Koutoupas
aad84476d0
Fix flask ext warning message (#345) 2020-12-30 13:19:42 -05:00