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
cd949c6a0b
Bump version to 4.13.2
2021-01-29 16:58:30 -05:00
Roman Mogylatov
fba00894ea
Bump version to 4.13.1
2021-01-29 16:42:30 -05:00
Roman Mogylatov
39cb963351
367 Fix declarative container metaclass bug with child providers
2021-01-29 16:37:50 -05:00
Roman Mogylatov
a0ba7fd16c
Bump version to 4.13.0
2021-01-29 13:50:53 -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
ebeb258e96
Bump version to 4.12.0
2021-01-28 19:50:35 -05:00
Roman Mogylatov
eb587933f4
Implement wiring autoloader ( #381 )
...
* Implement wiring autoloader
* Add docs
* Update changelog
2021-01-28 19:49:24 -05:00
Roman Mogylatov
aca67663b6
Bump version to 4.11.3
2021-01-28 08:44:10 -05:00
Roman Mogylatov
6224131a76
358 Replace configuration option weakref to root with regular ref
2021-01-28 08:40:43 -05:00
Roman Mogylatov
725e3fa322
Bump version to 4.11.2
2021-01-27 14:03:08 -05:00
Roman Mogylatov
ba0fb38ad0
379 Fix a bug in `providers.Container
` when it's declared not at class root level
2021-01-27 14:02:13 -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
63dade0615
Bump version to 4.11.0
2021-01-27 07:39:38 -05:00
Roman Mogylatov
7b33733bdf
Update badge
2021-01-27 07:38:35 -05:00
Roman Mogylatov
4cc39fc6eb
369 Add required argument to config from_* methods ( #376 )
...
* Update typing stubs
* Update from_yaml() method
* Update from_ini() method
* Update from_dict() method
* Update from_env() method
* Update documentation
* Update changelog
* Update changelog
* Make doc block fix
* Add extra test for from_ini()
2021-01-24 10:27:45 -05:00
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
c865e7c90d
Bump version to 4.10.3
2021-01-20 09:04:11 -05:00
Roman Mogylatov
9f7dbe89f6
Merge branch 'release/4.10.2' into master
2021-01-20 08:58:32 -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
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
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
21fb81dffb
Bump version to 4.9.1
2021-01-15 16:22:12 -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
a996c142ac
Bump version to 4.8.3
2021-01-15 06:44:41 -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
b425ac955c
Bump version to 4.8.1
2021-01-12 17:50:11 -05:00
Roman Mogylatov
6b8239ebb4
Bump version to 4.8.0
2021-01-12 08:42:14 -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
ce1bf704f2
Bump version to 4.6.1
2021-01-10 20:02:46 -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
Roman Mogylatov
89aeca76c0
Arm builds ( #343 )
...
* Add arm64 wheels travis build job
* Update changelog
2020-12-23 20:03:00 -05:00
Roman Mogylatov
468451d4c0
Bump version to 4.5.4
2020-12-10 18:28:29 -05:00
Roman Mogylatov
730baf87d8
Bump version to 4.5.3
2020-12-05 22:14:35 -05:00
Roman Mogylatov
de092023b8
Bump version to 4.5.2
2020-12-04 20:18:39 -05:00
Roman Mogylatov
4ff1a6eb25
Bump version to 4.5.1
2020-11-20 18:16:29 -05:00
Roman Mogylatov
57faa5f93f
Bump version to 4.5.0
2020-11-20 18:10:04 -05:00
Roman Mogylatov
cd2c5697c3
Add commands and handlers example
2020-11-20 18:09:34 -05:00
Roman Mogylatov
fbaf35244c
Add example and docs
2020-11-20 17:57:33 -05:00
Roman Mogylatov
034e4814da
Add support of non-string keys for Dict provider
2020-11-20 17:30:42 -05:00
Roman Mogylatov
c8178cecda
Add extra typing test for provided instance of `DependenciesContainer
` provider
2020-11-20 12:25:35 -05:00
Roman Mogylatov
8092421727
Add simple FastAPI example
2020-11-18 11:13:31 -05:00
Roman Mogylatov
d581a28b6e
Bump version to 4.4.1
2020-11-17 23:59:33 -05:00
Roman Mogylatov
49921dcf9d
Remove a typo from the Flask tutorial
2020-11-17 23:50:56 -05:00
Roman Mogylatov
950d5a5e6e
Update FastAPI example
2020-11-17 23:46:30 -05:00
Roman Mogylatov
d37ae8e7db
Improve FastAPI integration
2020-11-17 23:44:32 -05:00
Roman Mogylatov
a2b09c57dc
Bump version to 4.4.0
2020-11-15 18:19:34 -05:00
Roman Mogylatov
092be74145
Add docs page on flask blueprints example
2020-11-15 18:09:45 -05:00
Roman Mogylatov
ae3024588c
Wiring reengineering ( #324 )
...
* Bump version to 4.3.9: FastAPI example
* Reengineer wiring
* Add @inject decorator
* Add .workspace dir to gitignore
* Add generic typing for @inject
* Add type cast for @inject
* Update movie lister example
* Update cli application tutorial
* Update demo example
* Update wiring docs and examples
* Update aiohttp example and tutorial
* Update multiple containers example
* Update single container example
* Update decoupled packages example
* Update django example
* Update asyncio daemon example and tutorial
* Update FastAPI example
* Update flask example and tutorial
* Update sanic example
* Add wiring registry
* Add new line to .gitignore
* Add @inject to the test samples
* Fix flake8 errors
2020-11-15 16:06:42 -05:00
Roman Mogylatov
cdce5247c8
Bump version to 4.3.8
2020-11-12 16:31:20 -05:00
Roman Mogylatov
ccf6ccad54
Bump version to 4.3.7
2020-11-10 17:02:42 -05:00
Roman Mogylatov
3ff5c8ce82
Bump version to 4.3.6
2020-11-05 12:37:25 -05:00
Roman Mogylatov
6b93c2e412
Bump version to 4.3.5
2020-11-05 12:23:47 -05:00
Roman Mogylatov
f3ec74a31f
Bump version to 4.3.4
2020-11-05 10:20:23 -05:00
Roman Mogylatov
25549d7cfe
Bump version to 4.3.3
2020-11-03 16:06:42 -05:00
Roman Mogylatov
fb2d927cae
Fix wiring for @classmethod and @staticmethod
2020-11-03 15:59:02 -05:00
Roman Mogylatov
b0d3f08aa6
Bump version to 4.3.2
2020-10-30 16:56:13 -04:00
Roman Mogylatov
f65f8b1af9
Bump version to 4.3.1
2020-10-29 23:00:43 -04:00
Roman Mogylatov
d65b31865b
Bump version to 4.3.0
2020-10-29 22:57:14 -04:00
Roman Mogylatov
707446a70f
Closing wiring marker ( #315 )
...
* Add closing marker
* Add example
* Fix flake8 errors
* Add test
* Update docs and README
2020-10-29 22:55:09 -04:00
Roman Mogylatov
21f0658ef3
Bump version to 4.2.0
2020-10-29 15:48:04 -04:00
Roman Mogylatov
30bc505b79
Update README and docs index
2020-10-29 15:46:43 -04:00
Roman Mogylatov
e3ccb0e764
Bump version to 4.1.8
2020-10-28 22:30:52 -04:00
Roman Mogylatov
018102b4e2
Update asyncio daemon to use Resource provider
2020-10-28 22:28:49 -04:00
Roman Mogylatov
f7499354ec
Bump version to 4.1.7
2020-10-28 21:02:21 -04:00
Roman Mogylatov
bf82f594b4
Add google analytics id
2020-10-28 20:48:07 -04:00
Roman Mogylatov
5c09be46d2
Bump version to 4.1.6
2020-10-28 14:23:00 -04:00
Roman Mogylatov
776cb4eebf
Fix multiple containers wiring issue
2020-10-28 13:44:11 -04:00
Roman Mogylatov
2565a1eab0
Fix wiring for @classmethod
2020-10-28 13:11:07 -04:00
Roman Mogylatov
c7d8645044
Bump version to 4.1.5
2020-10-27 17:48:05 -04:00
Roman Mogylatov
279910410e
Bump version to 4.1.4
2020-10-27 14:36:11 -04:00
Roman Mogylatov
969849e4da
Bump version to 4.1.3
2020-10-27 14:05:16 -04:00
Roman Mogylatov
3b4fae8dca
Add installation of certifi for windows ci builds
2020-10-27 14:04:52 -04:00
Roman Mogylatov
25d626e92f
Migrate from travis-ci.org to travis-ci.com
2020-10-27 14:02:50 -04:00
Roman Mogylatov
c6e7551e87
Bump version to 4.1.2
2020-10-27 13:28:02 -04:00
Roman Mogylatov
b01ee7709c
Bump version to 4.1.1
2020-10-26 13:39:13 -04:00
Roman Mogylatov
a3c7296879
Bump version to 4.1.0
2020-10-24 20:57:48 -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
5c1486e1a3
Un deprecate container decorators ( #310 )
...
* Remove deprecation warnings
* Add example and docs
* Update changelog
2020-10-22 12:00:46 -04:00
Roman Mogylatov
97731db180
Update license year
2020-10-21 17:06:12 -04:00
Roman Mogylatov
081fccea93
Add favicon
2020-10-21 17:01:31 -04:00
Roman Mogylatov
c81194682b
Remove redirect in bages
2020-10-21 16:55:28 -04:00