Commit Graph

253 Commits

Author SHA1 Message Date
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