Commit Graph

1742 Commits

Author SHA1 Message Date
Roman Mogylatov
351bdd282e Clean up DependenciesContainer provider and add tests 2021-02-12 09:16:21 -05:00
Roman Mogylatov
9677701626 Update makefile to run coverage when tests fail 2021-02-12 09:15:49 -05:00
Roman Mogylatov
b376836150 Add tests for Dependency provider 2021-02-12 08:35:04 -05:00
Roman Mogylatov
99e404650f Refactor Dependency provider and its typing stub 2021-02-12 08:02:44 -05:00
Roman Mogylatov
b68d4d8d08 Rename set_parent() to assign_parent() 2021-02-11 18:06:47 -05:00
Roman Mogylatov
dd6b0caffd Fix flaky container copy issue 2021-02-11 16:32:31 -05:00
Roman Mogylatov
980f9fc2bc Add hardening fix for Self provider to avoid copying bugs 2021-02-11 09:20:05 -05:00
Roman Mogylatov
e29040d2ee Fix Dependency provider copying issue 2021-02-11 09:09:52 -05:00
Roman Mogylatov
7ef3c63ca9 Update DependenciesContainer to handle Contrainer provider 2021-02-11 07:50:52 -05:00
Roman Mogylatov
5f34c7ce3f Add working prototype, requires deep refactoring 2021-02-10 08:52:13 -05:00
Roman Mogylatov
ff3ae95482 Add working prototype for sample 1 and 3 2021-02-10 07:57:04 -05:00
Roman Mogylatov
1c433ed0ad Add prototype for flat resolving 2021-02-09 08:57:31 -05:00
Roman Mogylatov
81da4e0451 Merge branch 'release/4.20.2' into master 2021-02-09 07:36:06 -05:00
Roman Mogylatov
5b18d609f1 Bump version to 4.20.2 2021-02-09 07:35:55 -05:00
Roman Mogylatov
47aa8c11fe Move Self provider docs to providers section 2021-02-09 07:34:46 -05:00
Roman Mogylatov
a9fd206aae Merge branch 'release/4.20.1' into master 2021-02-07 14:17:53 -05:00
Roman Mogylatov
719b61cf22 Bump version to 4.20.1 2021-02-07 14:17:40 -05:00
Roman Mogylatov
5e5531765d Merge branch 'release/4.20.0' into master 2021-02-07 14:14:35 -05:00
Roman Mogylatov
6b24cb84a5 Bump version to 4.20.0 2021-02-07 14:14:22 -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
ce6d3df72c Merge branch 'release/4.19.0' into master 2021-02-05 18:28:44 -05:00
Roman Mogylatov
398d502981 Bump version to 4.19.0 2021-02-05 18:28:26 -05:00
Roman Mogylatov
19a2f551ae Update docs on creating custom providers with a requirement to specify `.related` property 2021-02-05 18:27:32 -05:00
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
78f623c05b Merge branch 'release/4.18.0' into master 2021-02-05 17:24:00 -05:00
Roman Mogylatov
e80c56f9be Bump version to 4.18.0 2021-02-05 17:23:10 -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
c4892af31e Refactor `container.apply_container_providers_overridings() to use container.traverse()` 2021-02-05 08:59:16 -05:00
Roman Mogylatov
c9ab7d540d Add tests for .provided & .call() 2021-02-05 08:48:25 -05:00
Roman Mogylatov
288284aa9c Make "make test" to be a default test command and run Python 3 tests 2021-02-05 08:36:36 -05:00
Roman Mogylatov
b3bd8e888b Add tests for selector provider 2021-02-05 08:34:20 -05:00
Roman Mogylatov
35f280ac8a Merge branch 'release/4.17.0' into master 2021-02-04 18:19:55 -05:00
Roman Mogylatov
2c1eb9f95f Bump version to 4.17.0 2021-02-04 18:19:40 -05:00
Roman Mogylatov
d45d98e300
Fastapi sqlalchemy example (#389)
* Add application

* Dockerize the app

* Fix 204 content-leength error

* Rename database file

* Add tests

* Add README

* Fix a typo in FastAPI example

* Add docs on FastAPI + SQLAlchemy example

* Update changelog

* Add link to the example to README and other docs pages

* Add EOF to the config.yml
2021-02-04 18:18:25 -05:00
Roman Mogylatov
a1f779a9f3 Merge branch 'release/4.16.0' into master 2021-02-03 15:40:53 -05:00
Roman Mogylatov
892330f43c Bump version to 4.16.0 2021-02-03 15:40:41 -05:00
Roman Mogylatov
cba5aefd65 Add container base class 2021-02-03 15:36:37 -05:00
Roman Mogylatov
6cc1a0c61f Merge branch 'release/4.15.0' into master 2021-02-03 09:22:58 -05:00
Roman Mogylatov
f48fd159f0 Bump version to 4.15.0 2021-02-03 09:22:40 -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
1fabbf314b Merge branch 'release/4.14.0' into master 2021-02-01 09:57:43 -05:00
Roman Mogylatov
fbe51b95e8 Bump version to 4.14.0 2021-02-01 09:55:21 -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
0c1a08174f Merge branch 'release/4.13.2' into master 2021-01-29 16:58:44 -05:00
Roman Mogylatov
cd949c6a0b Bump version to 4.13.2 2021-01-29 16:58:30 -05:00
Roman Mogylatov
4942f9c160 Fix PyCharm typing warning in container.wire() method 2021-01-29 16:58:08 -05:00
Roman Mogylatov
b7afbe2cdc Merge branch 'release/4.13.1' into master 2021-01-29 16:42:38 -05:00
Roman Mogylatov
fba00894ea Bump version to 4.13.1 2021-01-29 16:42:30 -05:00