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
c1e53e5edd
Replace AsyncMock with simple mock class in FastAPI wiring tests for better compatibility
2020-12-05 22:08:05 -05:00
Roman Mogylatov
ec49d56751
Add tests for FastAPI wiring
2020-12-05 21:36:30 -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
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
97c33442e0
Add wiring hotfix for fastapi
2020-11-12 15:54:49 -05:00
Roman Mogylatov
18ef566aae
Fix issue #319 resulting in configuration.reset_override() not working properly
2020-11-05 10:16:39 -05:00
Roman Mogylatov
fb2d927cae
Fix wiring for @classmethod and @staticmethod
2020-11-03 15:59:02 -05:00
Roman Mogylatov
c5f799a1ec
Fix issue with wiring and resource initialization
2020-10-30 16:40:27 -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
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
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
4ddac663d9
Fix wiring for package init ( #308 )
...
* Add test
* Add fix
* Add extra test
* Remove package imports on discovery for Python versions < 3.6
* Move wiring samples to a different directory
2020-10-20 17:48:54 -04:00
Roman Mogylatov
ff4d24706e
Move "provided" attribute ( #306 )
...
* Update typing stub
* Move attribute
* Add typing test
* Update docs
* Add test
* Update changelog
2020-10-19 17:21:38 -04:00
Roman Mogylatov
0ffa1e8392
Fix typing stub for container.override() method
2020-10-18 22:22:11 -04:00
Roman Mogylatov
56c9023b2d
Fix override and copy decorator stubs ( #302 )
...
* Fix stubs and add tests
* Fix tests
* Fix stubs
2020-10-16 16:36:07 -04:00
Rüdiger Busche
819023e7aa
Make Configuration.from_ methods accept Path ( #300 )
...
Co-authored-by: rbusche <rbusche@inserve.de>
2020-10-16 13:57:28 -04:00
Roman Mogylatov
07d4f7e74f
Develop 4.0 ( #298 )
...
* Add wiring (#294 )
* Add wiring module
* Fix code style
* Fix package test
* Add version fix
* Try spike for 3.6
* Try another fix with metaclass
* Downsample required version to 3.6
* Introduce concept with annotations
* Fix bugs
* Add debug message
* Add extra tests
* Add extra debugging
* Update config resolving
* Remove 3.6 generic meta fix
* Fix Flake8
* Add spike for 3.6
* Add Python 3.6 spike
* Add unwire functionality
* Add support of corouting functions
* Bump version to 4.0
* Updaet demo example
* Add pydocstyle ignore for demo
* Add flake8 ignore for demo
* Update aiohttp example
* Update flask example
* Rename aiohttp example directory
* Rename views module to handlers in aiohttp example
* Add sanic example
* Remove not needed images
* Update demo
* Implement wiring for Provide[foo.provider]
* Implement Provide[foo.provided.bar.baz.call()]
* Make flake8 happy
* Wiring refactoring (#296 )
* Refactor wiring
* Add todos to wiring
* Implement wiring of config invariant
* Implement sub containers wiring + add tests
* Add test for wiring config invariant
* Add container.unwire() typing stub
* Deprecate ext package modules and remove types module
* Deprecate provider.delegate() method
* Add __all__ for wiring module
* Add protection for wiring only declarative container instances
* Bump version to 4.0.0a2
* Add wiring docs
* Add wiring of class methods
* Remove unused import
* Add a note on individuals import to wiring docs
* Add minor improvement to wiring doc
* Update DI in Python page
* Update key features
* Update README concep and FAQ
* Add files via upload
* Update README.rst
* Update README.rst
* Update README.rst
* Update docs index page
* Update README
* Remove API docs for flask and aiohttp ext
* Add wiring API docs
* Update docs index
* Update README
* Update readme and docs index
* Change wording in README
* Django example (#297 )
* Add rough django example
* Remove sqlite db
* Add gitignore
* Fix flake8 and pydocstyle errors
* Add tests
* Refactor settings
* Move web app to to the root of the project
* Add bootstrap 4
* Add doc blocks for web app
* Add coverage
* Fix typo in flask
* Remove not needed newlines
* Add screenshot
* Update django app naming
* Add django example to the docs
* Update changelog
* Update Aiohttp example
* Add sanic example to the docs
* Make a little fix in django example docs page
* Add flask example to the docs
* Add aiohttp example to the docs
* Update installation docs page
* Fix .delegate() deprecation
* Refactor movie lister to use wiring
* Make micro cosmetic changes to flask, aiohttp & sanic examples
* Refactor single container example to use wiring
* Refactor multiple container example to use wiring
* Add return type to main() in application examples
* Refactor decoupled packages example to use wiring
* Refactor code layout for DI demo example
* Update wiring feature message
* Add more links to the examples
* Change code layout in miniapps
* Update sanic example
* Update miniapp READMEs
* Update wiring docs
* Refactor part of cli tutorial
* Refactor CLI app tutorial
* Update test coverage results in movie lister example and tutorial
* Make some minor updates to aiohttp and cli tutorials
* Refactor flask tutorial
* Make cosmetic fix in flask example
* Refactor Flask tutorial: Connect to the GitHub
* Refactor Flask tutorial: Search service
* Refactor Flask tutorial: Inject search service into view
* Refactor Flask tutorial: Make some refactoring
* Finish flask tutorial refactoring
* Update tutorials
* Refactor asyncio monitoring daemon example application
* Fix tutorial links
* Rename asyncio miniapp
* Rename tutorial image dirs
* Rename api docs tol-level page
* Refactor initial sections of asyncio daemon tutorial
* Refactor asyncio tutorial till Example.com monitor section
* Refactor asyncio tutorial example.com monitor section
* Refactor asyncio tutorial httpbin.org monitor tutorial
* Refactor tests section of asyncio daemon tutorial
* Update conclusion of asyncio daemon tutorial
* Rename tutorial images
* Make cosmetic update to flask tutorial
* Refactor aiohttp tutorial: Minimal application section
* Refactor aiohttp tutorial: Giphy API client secion
* Refactor aiohttp tutorial secion: Make the search work
* Refactor aiohttp tutorial tests section
* Refactor aiohttp tutorial conclusion
* Upgrade Cython to 0.29.21
* Update changelog
* Update demo example
* Update wording on index pages
* Update changelog
* Update code layout for main demo
2020-10-09 15:16:27 -04:00
Roman Mogylatov
39368591b9
Move generic types test to separate module
2020-09-13 20:38:23 -04:00
Roman Mogylatov
d8439a28b1
Make provider generic type ( #293 )
...
* Add __class_getitem__ for Provider to null the typing in runtime
* Make Provider stub generic and remove types module
* Update types module tests
* Return types module with deprecation warning
* Return types module with deprecation warning
* Update changelog
* Add docs page
2020-09-13 20:32:21 -04:00
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
4a8133204c
Factory deep init injections ( #277 )
...
* Add factory deep context providing
* Add example
* Add test
2020-08-06 16:33:06 -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
e0d81c2d28
Aiohttp integration ( #270 )
...
* Add aiohttp extension module
* Add giphynav-aiohttp app
* Add missing docstrings
* Remove print() call
* Remove not needed import from flask extension tests
* Improve coroutine provider tests
* Add aiohttp extension tests
* Update tox.ini
* Add aiohttp extras
* Try fix Python 3.4 tests
* Try fix 3.6 tests
* Stop running coroutine tests for Python 3.4
* Rename tests
* Remove type hints
* Fix pypy and change python version for coverage job to 3.8
* Fix coveralls job
* Try fix Python 3.4, 3.5 tests
* Make coverage job to run 3.5+ tests
* Add tests
* Add readme
* Update the readmes
* Add API docs
* Add API docs page
* Update changelog
2020-07-28 19:19:05 -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
72147b664e
Re-design Flask integration
2020-07-13 22:45:15 -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
1cd25e701f
Add interpolation of environment variables for Configuration provider
2020-06-25 23:16:19 -04:00
Roman Mogylatov
507a832bb8
Add Configuration.from_env() method + refactoring
2020-06-25 12:50:42 -04:00
Roman Mogylatov
65db4f2b1d
Fix code style issue
2020-06-24 21:23:05 -04:00
Roman Mogylatov
e22edcdadd
Restore configuration methods
2020-06-24 21:04:30 -04:00
Roman Mogylatov
50d8363650
Pin virtualenv to 20.0.23
2020-06-24 17:26:58 -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
f95dadfc23
Add Configuration.from_dict() method
2020-06-23 18:09:20 -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
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
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
3e73555869
Remove assertEquals from tests
2018-11-08 22:55:01 +02: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
b2b69b34bb
Add benchmark of Factory provider
2018-08-20 22:14:52 +03:00
Roman Mogylatov
461c546d31
Fix bug #200
2018-07-26 10:16:02 +03:00
Roman Mogylatov
4bfaf92099
Refactor tests
2018-07-26 10:08:46 +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
1c6160e827
Feature/declarative container initialization ( #176 )
...
* Add overriding functionality on declarative container initialization
* Update changelog
* Update bundles example
2017-12-24 23:03:13 +02:00
Roman Mogylatov
a67e4ebd44
Rename provider ExternalDependency -> Dependency
2017-12-21 22:47:31 +02:00
Roman Mogylatov
7bd0997f85
Add parsing of nested containers to declarative container
2017-11-21 11:47:55 +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
bca7c78e22
Add FactoryAggregate unit tests
2017-10-12 19:54:06 -07:00
Roman Mogylatov
d969125d7a
Update pydocstyle config for unit tests
2017-10-12 19:54:05 -07:00
Roman Mogilatov
0008363a96
Update CallableDelegate tests
2017-07-09 23:37:51 +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
3046804bf5
Add / remove some performance tests
2017-06-09 01:39:07 +03:00
Roman Mogilatov
e8bd524b6d
Add Provider.last_overriding read-only property
2017-05-08 17:07:22 +03:00
Roman Mogilatov
2aa85228d7
Add abstract providers
2017-04-06 18:17:06 +03:00
Roman Mogilatov
c2b61defb3
Add performance test for overridden providers
2017-04-06 10:58:07 +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
Roman Mogilatov
b8ab88dcd5
Change name of version variable to make it follow PEP8
2016-12-04 13:16:48 +02:00
Roman Mogilatov
e03729958d
Add test for configuration provider
2016-12-02 19:29:17 +02:00
Roman Mogilatov
3f8e53aa9c
Add configuration provider
2016-12-02 13:53:37 +02:00
Roman Mogilatov
a79df278b5
Modify performance test
2016-11-23 23:07:17 +02:00
Roman Mogilatov
bb4ad5eb62
Temporary disable factory sublcass performance test
2016-11-17 23:34:44 +02:00
Roman Mogilatov
82296d9fed
Add tests for base providers
2016-11-11 12:11:56 +02:00
Roman Mogilatov
07b9a991b3
Add singleton tests
2016-11-10 21:19:17 +02:00
Roman Mogilatov
93c8bd6438
Add tests for injections
2016-11-10 21:00:23 +02:00
Roman Mogilatov
3bb9146496
Add tests for Callable provider
2016-11-09 23:45:25 +02:00
Roman Mogilatov
55f3d5d8ec
Add tests for factory providers
2016-11-09 11:48:10 +02:00
Roman Mogilatov
7b61464c93
Make providers stable
2016-11-08 13:13:43 +02:00
Roman Mogilatov
322ba98f18
Implement singletons (need refactoring)
2016-11-06 17:14:12 +02:00
Roman Mogilatov
b2f6a2cd1a
Commit onging work results
2016-11-04 20:45:26 +02:00
Roman Mogilatov
38bdc4f04f
Update providers package structure
2016-11-04 18:35:53 +02:00
Roman Mogilatov
e68df7167f
Make some style fixes in tests
2016-11-04 16:13:21 +02:00
Roman Mogilatov
f5680ff032
Update project structure
2016-11-04 15:48:26 +02:00
Roman Mogilatov
5695c781c9
Update project structure
2016-11-04 13:06:47 +02:00
Roman Mogilatov
e3408075de
Update repository structure
2016-11-02 22:58:30 +02:00
Roman Mogilatov
6b1ff707a2
Remove unnecessary injection tests
2016-11-02 12:50:13 +02:00
Roman Mogilatov
76d47df7fd
Add few tests for injections
2016-11-02 11:25:39 +02:00
Roman Mogilatov
c78c9ddd86
Add pep257 exceptions for tests
2016-11-02 11:25:29 +02:00
Roman Mogilatov
c8a5db7691
Remove @inject decorator
2016-10-30 13:19:39 +02:00
Roman Mogilatov
81072832e4
Add deprecation warning when @inject is used
2016-09-16 16:02:59 +03:00
Roman Mogilatov
ada2e70e28
Add unit tests for ThreadLocalSingleton and DelegatedThreadLocalSingleton providers
2016-08-18 23:28:39 +03:00
Roman Mogilatov
1eee0fe529
Update containers documentation
...
+ Refactor provider overriding system
2016-06-06 11:26:53 +03:00
Roman Mogilatov
ab7c8ac4d1
Rename Provider.inject() -> Provider.provide_injection()
2016-06-01 19:59:41 +03:00
Roman Mogilatov
3416728309
Add dynamic containers
...
+ Drop catalogs
2016-06-01 18:53:35 +03:00
Roman Mogilatov
1c1596543d
Add some tests for containers
2016-06-01 12:03:17 +03:00
Roman Mogilatov
a35db5889d
Add some functionality and tests for declarative containers
...
+ Add checks for valid provider type
+ Add some wider functionality for overriding
2016-05-30 23:34:14 +03:00
Roman Mogilatov
8fdb190118
Add latest containers module updates + movie_lister refactoring
2016-05-30 22:34:58 +03:00
Roman Mogilatov
99b6e27ab4
Refactor injections
2016-05-29 16:39:39 +03:00
Roman Mogilatov
7d33e0e3a2
Drop catalogs name attribute
2016-05-22 17:01:27 +03:00
Roman Mogilatov
918335e0e4
Remove catalog bundles
2016-05-22 16:50:06 +03:00
Roman Mogilatov
7729d97a41
Make injections 2 times faster
2016-05-22 15:37:39 +03:00
Roman Mogilatov
a0b8b11a91
Sanitize callable and creational provider tests
2016-05-18 01:17:39 +03:00
Roman Mogilatov
f2a9b35c6d
Change style and get first stable run
2016-05-18 00:05:10 +03:00
Roman Mogilatov
2878ea5515
Drop method injections
2016-05-17 22:37:50 +03:00
Roman Mogilatov
4a160ed999
Drop Config provider
2016-05-17 21:31:40 +03:00
Roman Mogilatov
1320c12780
Drop Static, Value, Function & Class providers
2016-05-17 21:28:22 +03:00
Roman Mogilatov
7392f35991
Drop backward compatibilities of 1.x
2016-05-17 21:13:55 +03:00
Roman Mogilatov
bef0a952b5
Fix bug with accessing declarative catalog attributes from instance level
2016-05-16 11:18:00 +03:00
Roman Mogilatov
b4b93b4016
Remove copying functionality from dynamic catalog
2016-04-10 17:02:01 +03:00
Roman Mogilatov
7cdeede38a
Add declarative catalog @copy decorator
2016-04-10 16:52:37 +03:00
Roman Mogilatov
43258e5fd9
Add force binding and copying functionaloty for DynamicCatalog
2016-04-10 16:41:54 +03:00
Roman Mogilatov
136b562a81
Split `catalogs
` module into smaller modules
2016-04-03 23:47:34 +03:00
Roman Mogilatov
040d44d55b
Split `providers
` module into smaller modules
2016-04-03 22:54:08 +03:00
Roman Mogilatov
043665f8e5
Fix provider overriding tests
2016-03-14 00:15:28 +02:00
Roman Mogilatov
1f7a76ef5e
Add provider OverridingContext
2016-03-13 22:46:32 +02:00
Roman Mogilatov
92df7338ca
Add catalog-providing-callbacks exaple and some tests for it
2016-03-09 10:25:17 +02:00
Roman Mogilatov
37fde8e97c
Add tests for @providers.override decorator
2016-03-01 16:28:37 +02:00
Roman Mogilatov
c8fda3da8d
Add FactoryAsDecoratorTests
2016-02-28 17:50:47 +02:00
Roman Mogilatov
319128260a
Add DelegatedCallable, DelegatedFactory & DelegatedSingleton providers
2015-12-28 17:25:25 +02:00
Roman Mogilatov
76e4837201
Add validation for catalog providers type
2015-12-14 11:22:55 +02:00
Roman Mogilatov
f3668ed815
Make some refactorings for providers
2015-12-11 22:46:49 +02:00
Roman Mogilatov
10e76f65d7
Add validation of provided type for Factory provider
2015-12-11 16:01:07 +02:00
Roman Mogilatov
7b611820c5
Add smarter providers representation
2015-12-11 11:18:09 +02:00
Roman Mogilatov
9ef7a961f6
Update representation of injections
2015-12-09 19:28:52 +02:00
Roman Mogilatov
5bb20a9c2d
Improve representation of injections
2015-12-07 14:31:51 +02:00
Roman Mogilatov
449dff6282
Restrict overriding of catalogs by themselves
2015-11-26 15:11:46 +02:00
Roman Mogilatov
ff629989bb
Make DynamicCatalog.last_overriding and DeclarativeCatalog.last_overriding attributes None by default
2015-11-25 13:39:50 +02:00
Roman Mogilatov
b7f42a3ff4
Make Provider.last_overriding None by default
2015-11-25 13:25:40 +02:00
Roman Mogilatov
dd80bb3c17
Add tests for singleton attributes
2015-11-24 12:19:49 +02:00
Roman Mogilatov
64bc56cbb9
Add test for catalog module backward compatibility
2015-11-23 21:46:22 +02:00
Roman Mogilatov
524cd78c5f
Add VERSION to API docs and add test for VERSION
2015-11-23 21:46:22 +02:00
Roman Mogilatov
da4976e3c7
Add DeclarativeCatalog API docs
2015-11-23 21:46:17 +02:00
Roman Mogilatov
3c0c3b3abc
Refactor tests imports
2015-11-23 21:45:58 +02:00
Roman Mogilatov
99b9a5648a
Restrict overriding of providers with themselves
2015-11-20 13:51:36 +02:00
Roman Mogilatov
f090a73486
Add DynamicCatalog tests
2015-11-12 18:35:23 +02:00
Roman Mogilatov
2236d77313
Refactor DeclarativeCatalog
2015-11-12 16:56:00 +02:00
Roman Mogilatov
be1ff0445d
Refactor DeclarativeCatalog
2015-11-12 13:57:33 +02:00
Roman Mogilatov
4252fbfe4c
Implement DeclarativeCatalog.__repr__ and add some tests for it
2015-11-12 01:00:27 +02:00