Roman Mogylatov
2e940adb50
Typing stubs ( #286 )
...
* Add basic setup
* Add more tests for factory
* Add mypy checks to CI
* Add mypy checks to makefile command
* Add typing for the factories
* Add stub for Callable providers
* Add typing module and object provider stubs
* Fix typing test issue
* Remove typing module
* Add Delegate stub
* Add stub for Dependency provider
* Add stub for ExternalDependency
* Add stubs for providers module functions
* Add stubs for the DependenciesContainer provider
* Add stub for the CallableDelegate provider
* Add stubs for Coroutine providers
* Add stubs for the configuration options
* Add stub for the FactoryDelegate
* Add stub for the FactoryAggregate provider
* Add singleton stubs
* Add stubs for singletons
* Add stub for the List provider
* Add stub for the Container provider
* Add stub for the Selector provider
* Add stubs for the dynamic container
* Add stub for the declarative container
* Add stubs for the extensions
* Add types module for explicit provider typing
* Set absolute import mode for the providers module and add types module test
* Skip typing test for Python 3.5
* Remove coroutine test from py35
* Fix py35 tests
* Add \n to the tox.ini
2020-08-26 22:24:20 -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
3a61457be7
Asyncio daemon tutorial ( #278 )
...
* Fix a typo in the docblock of the Configuration provider
* Update the changelog
* Add tutorial sections
* Switch to use https for httpbin.org requests
* Add what we are going to build section
* Fix ``Makefile`` to run ``aiohttp`` integration tests on Python 3.5+
* Add prerequisities and prepare the env sections
* Add logging, config and the dispacher sections
* Change logging
* Fix multiple typos in the ``flask`` and ``aiohttp`` tutorials
* Add the initial and dirty version
* Fix multiple typos in the ``flask`` and ``aiohttp`` tutorials
* Fix the 3.27.0 changelog
* Finish all the parts before the dispatcher
* Finish dispatcher section
* Update http monitor logging format
* Finish the tutorial
* Fix docblock in the dispatcher module
* Update changelog
* Add meta keywords and description
2020-08-08 14:48:05 -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
1f115111b2
Dependency provider issue with abc ( #267 )
...
* Fix the issue
* Add the test
* Update tests
* Update changelog
* Update tests
2020-07-22 12:14:26 -04:00
Roman Mogylatov
fa469618dd
Readme update ( #263 )
...
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Add files via upload
* Update README.rst
* Rename Blank Diagram (1).svg to di-map.svg
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Add files via upload
* Rename Blank Diagram (2).svg to di-map2.svg
* Update README.rst
* Update README.rst
* Update README.rst
* Update README.rst
* Add files via upload
* Add files via upload
* Rename README.svg to di-map3.svg
* Update README.rst
* Add files via upload
* Rename README - Page 3.svg to di-map4.svg
* Update README.rst
* Add files via upload
* Rename README - Copy of Page 3.svg to di-map5.svg
* Update README.rst
* Delete di-map.svg
* Delete di-map2.svg
* Delete di-map3.svg
* Delete di-map4.svg
* Update README.rst
* Update README.rst
* Add Github Navigator - Flask application
* Do more refactoring for ghnav-flask
* More refactoring
* Update README
* Add tests
* Update readme
* Add Flask extension
* Add Factory.provides attribute
* Add Flask extension module
* User flask extension in githubnavigator example
* Add README for ghnav-flask
* Update ghnav-flask README
* Update ghnav-flask README
* Update README with ghnav container example
* Move ghnav-flask to miniapps/ folder
* Fix auth token reading from env for ghnav-flask
* Update readme
* Fix ghnav-flask linter errors
* Add downloads and wheel badge
* Add tests for flask extension
* Fix flask tests
* Add requirements-ext.txt installation to tox.ini
* Add API docs for ext.flask module
* Update setup.py
* Add Flask to the list of keywords
* Update badges on docs README
* Update docs README title
* Fix ext.flask tests
* Fix syntax of ext.flask for Python 2.7, 3.4, 3.5
* Fix syntax of ext.flask for Python 2.7, 3.4, 3.5
* Fix imports in ext.flask for Python 2.7, 3.4, 3.5
* Update ghfnav-flask README
* Update ghfnav-flask README
* Remove setting of empty github token
* Add flask extras
* Update requirements
* Update requirements
* Add flask extra to python 3.4 tox.ini
* Update changelog
* Update changelog
2020-07-11 12:15:00 -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
7491fc05a2
Fix ini files parsing
2020-06-25 23:37:01 -04:00
Roman Mogylatov
1cd25e701f
Add interpolation of environment variables for Configuration provider
2020-06-25 23:16:19 -04:00
Roman Mogylatov
62e1995a7d
Add configuration provider docs
2020-06-25 17:12:16 -04:00
Roman Mogylatov
507a832bb8
Add Configuration.from_env() method + refactoring
2020-06-25 12:50:42 -04:00
Roman Mogylatov
3217feb73b
Update providers.pyx code style
2020-06-24 21:27:40 -04:00
Roman Mogylatov
ad2d8155d4
Remove yaml stub in providers module
2020-06-24 21:13:37 -04:00
Roman Mogylatov
e22edcdadd
Restore configuration methods
2020-06-24 21:04:30 -04:00
Roman Mogylatov
1a23b8b6f5
Try type(dict) fix
2020-06-24 17:38:52 -04:00
Roman Mogylatov
52c98bbe49
Comment yaml-related code
2020-06-24 17:16:46 -04:00
Roman Mogylatov
597f5d772f
Add default value for name argument of Configuration provider
2020-06-24 16:40:53 -04:00
Roman Mogylatov
a76744805a
Add Configuration.from_yaml method
2020-06-24 16:29:44 -04:00
Roman Mogylatov
2c43a1c426
Remove undocumented positional parameter of DependenciesContainer provider
2020-06-24 14:39:07 -04:00
Roman Mogylatov
feab6b6814
Revert "Add overriding logic for Container provider"
...
This reverts commit b727be3f9a
.
2020-06-24 13:24:57 -04:00
Roman Mogylatov
b727be3f9a
Add overriding logic for Container provider
2020-06-24 12:41:18 -04:00
Roman Mogylatov
f95dadfc23
Add Configuration.from_dict() method
2020-06-23 18:09:20 -04:00
Roman Mogylatov
a985952d0c
Fix Configuration.from_ini() to support Python 2
2020-06-23 16:53:22 -04:00
Roman Mogylatov
87bb5ff97d
Add Configuration.from_ini() method
2020-06-23 16:46:24 -04:00
Roman Mogylatov
c8b781e744
Container provider ( #256 )
...
* Add unit tests
* Add Container provider
* Update changelog
2020-06-22 22:45:16 -04:00
Roman Mogylatov
e6f096270e
Config linking ( #255 )
...
* Add config linking test
* Add provider linking
* Update changelog
2020-06-22 21:52:00 -04:00
Roman Mogylatov
eadac4b1cc
Fix warnings in API docs
2020-06-16 22:22:06 -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
08de710b2f
235 Fix Delegate cannot be used in overridden container ( #236 )
...
* Add test for bug #235
* Fix issue + refactoring
* Update changelog
2019-10-09 10:45:14 -04:00
Roman Mogylatov
7e61412b8a
231 Fix object provider copies provided object issue ( #233 )
...
* Add test that reproduces the issue
* Fix the issue
* Add a note about fix in changelog
2019-10-08 14:45:12 -04:00
Roman Mogylatov
215b45b442
FactoryAggregate copying issue fix ( #220 )
...
* Add test
* Implement deepcopy handler for FactoryAggregate provider
* Add more granularity for the test
* Update changelog
* Refactor test
2019-05-09 14:58:04 -04:00
Jeroen Rietveld
72d5741ece
Bugfix thread local singleton reset ( #218 )
...
* Fix issue causing ThreadLocalSingleton provider to return None after reset
* Add test for ThreadLocalSingleton provider reset functionality
2019-03-21 22:04:20 -04:00
Roman Mogylatov
f4f773be5a
Copying providers with sys stream injections ( #211 )
...
* Add fix + tests
* Update changelog
2018-12-22 20:37:53 +02:00
Roman Mogylatov
b1e166dcd5
Fix issue #208
2018-11-08 22:49:41 +02:00
Roman Mogylatov
ea0f9d8306
Update doc blocks with *args and **kwargs
2018-10-19 12:56:41 +03: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
18393eb9ed
Apply refactoring #199
2018-07-26 10:22:43 +03:00
Roman Mogylatov
461c546d31
Fix bug #200
2018-07-26 10:16:02 +03:00
Roman Mogylatov
48ac3824cb
Fix bug #198
2018-07-24 23:09:56 +03:00
Roman Mogylatov
39b62e37d5
Improve DependenciesContainer overriding logic
2018-01-24 20:11:36 +02:00
Roman Mogylatov
e877b33fd1
Refactor configuration provider
2018-01-24 19:59:48 +02:00
Roman Mogylatov
c50322db02
178 dependencies container provider ( #179 )
...
* Add DependenciesContainer provider
* Remove bundles_v2 example
* Add use cases example
* Update changelog
* Update documentation requirements to use fixed version of sphinxcontrib-disqus
* Add use cases miniapp to docs
* Update changelog
2018-01-21 23:55:32 +02:00
Roman Mogylatov
4a24549923
Fix bug when copying Configuration provider
2017-12-25 16:43:45 +02:00
Roman Mogylatov
a67e4ebd44
Rename provider ExternalDependency -> Dependency
2017-12-21 22:47:31 +02:00
Roman Mogylatov
236fe316e3
Fix bug related to double-overridden providers
2017-11-21 11:44:33 +02:00
Roman Mogylatov
be65996e57
Add .provider attribute
2017-10-13 10:15:21 -07:00
Roman Mogylatov
9bdf010bc5
Add FactoryAggregate provider implementation
2017-10-12 19:54:06 -07:00
Roman Mogylatov
c1053cbd73
Add early implementation of FactoryAggregate provider
2017-10-11 10:13:31 -07:00
Roman Mogilatov
76fb03a2a6
Update FactoryDelegate doc block
2017-07-09 23:38:01 +03:00
Roman Mogilatov
de12aee362
Update CallableDelegate doc block
2017-07-09 23:36:04 +03:00
Roman Mogilatov
8705e47d37
Add SingletonDelegate provider + tests
2017-07-09 23:34:14 +03:00
Roman Mogilatov
3f197e3744
Add CallableDelegate provider + tests
2017-07-09 23:29:33 +03:00
Roman Mogilatov
89c1c975e6
Add FactoryDelegate provider + tests
2017-07-09 23:17:12 +03:00
Roman Mogilatov
d4f4c47242
Add default value setting for Configuration provider
2017-07-07 17:53:36 +03:00
Roman Mogilatov
e8bd524b6d
Add Provider.last_overriding read-only property
2017-05-08 17:07:22 +03:00
Roman Mogilatov
0766df39d7
Update version to 3.4.3
2017-04-19 00:00:29 +03:00
Roman Mogilatov
2a9b14cb0e
Make Provider overriding methods thread safe
2017-04-18 23:30:29 +03:00
Roman Mogilatov
9ed806b0ca
Refactor storage locking of ThreadSafeSingleton
2017-04-18 23:11:03 +03:00
Roman Mogilatov
2aa85228d7
Add abstract providers
2017-04-06 18:17:06 +03:00
Roman Mogilatov
1dacd096f6
Optimize calling of overridden providers
2017-04-06 12:34:04 +03:00
Roman Mogilatov
bd62c79702
Fix minor bug in Configuration provider
2017-03-29 01:33:37 +03:00
Roman Mogilatov
ef40c2a543
Apply minor refactoring for providers module
2017-03-29 00:08:38 +03:00
Roman Mogilatov
7cb3310c5d
Patch Configuration provider to raise AttributeError for special attributes
2017-03-29 00:07:21 +03:00
Roman Mogilatov
5b3dbae572
Consolidate providers into single cython module
2017-03-25 22:38:48 +02:00