Commit Graph

322 Commits

Author SHA1 Message Date
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
Roman Mogilatov
3fc5f044f9 Update DeclarativeCatalog and Override tests 2015-11-11 21:25:41 +02:00
Roman Mogilatov
9a617479cc Refactor CatalogBundle 2015-11-11 15:51:42 +02:00
Roman Mogilatov
548847f83a Remove required DynamicCatalog.name attribute 2015-11-10 19:47:59 +02:00
Roman Mogilatov
05d6db5664 Make some refactoring after DynamicCatalog implementation 2015-11-10 19:38:18 +02:00
Roman Mogilatov
b456d770b6 Implement DynamicCatalog 2015-11-10 17:58:04 +02:00
Roman Mogilatov
c5602cf88b Change provider-to-catalog binding restrictions 2015-11-10 15:06:12 +02:00
Roman Mogilatov
68ce5c79ef Rename AbstractCatalog to DeclarativeCatalog 2015-11-10 10:42:29 +02:00
Roman Mogilatov
b269023f7a Improve functionality of catalog overriding 2015-10-23 16:41:21 +03:00
Roman Mogilatov
6dc007c8df Add functionality for using positional argument injections with @inject decorator 2015-10-23 14:44:36 +03:00
Roman Mogilatov
a37f1fc256 Fix Callable.injections attribute test 2015-10-23 09:59:25 +03:00
Roman Mogilatov
5bdca32779 Add Callable.injections read-only attribute for getting a full list of Callable injections 2015-10-22 17:43:29 +03:00
Roman Mogilatov
59b98959bc Add support of positional argument injections for Callable provider
Also current commit contains:
- Some refactoring of internals
- Additional unit tests for Factory and Singleton providers
2015-10-21 11:47:37 +03:00
Roman Mogilatov
9b4a7bd28c Add additional unittests for full validation of Singleton provider 2015-10-19 15:41:16 +03:00
Roman Mogilatov
b61e3ee007 Fix test of Injection.value with catalog bundle 2015-10-19 14:53:38 +03:00
Roman Mogilatov
824ed4f3e9 Add support of positional args for Factory & Singleton providers 2015-10-19 14:50:15 +03:00
Roman Mogilatov
7a4ffa140f Add functionality of checking catalog bundles ownership 2015-10-19 12:12:38 +03:00
Roman Mogilatov
53025756d8 Fix bug with injections of catalog bundles 2015-10-19 10:47:24 +03:00
Roman Mogilatov
476e867dc9 Restrict repeatedly binding of catalog providers 2015-10-17 01:00:32 +03:00
Roman Mogilatov
40dc54b64b Refactor catalog bundle 2015-10-16 23:54:51 +03:00
Roman Mogilatov
730d46f9a0 Add catalog packs 2015-10-15 20:16:40 +03:00
Roman Mogilatov
4b22680406 Update subset unit tests 2015-10-14 18:07:28 +03:00
Roman Mogilatov
2ed460f054 Refactor catalog subsets 2015-10-14 17:51:05 +03:00
Roman Mogilatov
3e8232e9db Add catalog subsets 2015-10-12 16:41:38 +03:00
Roman Mogilatov
8ab0cc5e0e Fix PEP257 D211 error 2015-10-11 23:41:55 +03:00
Roman Mogilatov
ee73f03cb2 Implement catalog providers, cls_providers and inherited providers class attributes 2015-10-07 14:06:11 +03:00
Roman Mogilatov
1c55f9d645 Add functionality for @inject decorator to work with classes 2015-09-28 14:19:22 +03:00
Roman Mogilatov
6cbd0ce7fc 0.9.5 release 2015-09-14 10:53:24 +03:00
Roman Mogilatov
bb33c925de Add simplified syntax of kwarg injections for `Callable` provider 2015-09-01 15:21:55 +03:00
Roman Mogilatov
ad2072688b Update test imports 2015-09-01 15:02:00 +03:00
Roman Mogilatov
01970dba27 Add simplified kwarg injections syntax for Factory and Singleton providers 2015-09-01 00:31:29 +03:00
Roman Mogilatov
6ac0e4a04e Add simplified syntax for @inject decorator 2015-09-01 00:30:38 +03:00
Roman Mogilatov
6d0f892f8a Rename Objects to Dependency Injector 2015-08-31 16:31:38 +03:00
Roman Mogilatov
498465b705 Moving @override decorator into catalogs module and @inject decorator into injections module 2015-08-03 12:57:42 +03:00
Roman Mogilatov
2c2d4f7434 Removing of Factory restriction to operate with class types only, factory methods are valid now 2015-07-24 00:28:52 +03:00
Roman Mogilatov
040aad93f8 Make all protected attributes _protected 2015-07-22 16:42:36 +03:00
Roman Mogilatov
541d3c0e4b Refactoring of utils checks 2015-07-22 10:53:16 +03:00
Roman Mogilatov
7d3460deba Add functionality for resetting of last overriding provider 2015-07-21 09:29:50 +03:00
Roman Mogilatov
0e272f9d58 Refactoring of Catalog using metaclass 2015-07-17 19:31:44 +03:00
Roman Mogilatov
e3ea517d72 Minor ExternalDependency provider updates, Adding ExternalDependency provider docs 2015-06-18 16:34:26 +03:00
Roman Mogilatov
c824eae566 Renaming NewInstance provider to Factory provider 2015-05-14 11:35:41 +03:00
Roman Mogilatov
b0720cfc2c moving @override and @inject decorators to decorators module 2015-04-14 23:17:53 +03:00
Roman Mogilatov
4e4bcd4b23 Removing reduce function references from tests 2015-03-26 00:54:34 +02:00
Roman Mogilatov
65f7704463 Minor refactoring 2015-03-23 16:27:48 +02:00
Roman Mogilatov
b5c1bea18f Adding inject() decorator tests 2015-03-23 12:23:34 +02:00
Roman Mogilatov
b0c2005288 Adding tests for inject() decorator 2015-03-23 12:19:58 +02:00
Roman Mogilatov
1032143f5b Renaming InitArg to KwArg, adding @inject decorator 2015-03-23 01:04:18 +02:00
Roman Mogilatov
6bbf7e3526 Remove providers.Scoped because it being has not yet justified 2015-03-22 00:36:59 +02:00
Roman Mogilatov
27bf9e0a8e Remove ExternalDependency.satisfy() in favor of inherited Provider.override() 2015-03-20 14:53:47 +02:00
Roman Mogilatov
3b880d12a5 Add ability to reset provider override 2015-03-20 13:32:11 +02:00
Roman Mogilatov
22055c3f63 Add tests for catalog.overrides decorator 2015-03-16 17:31:16 +02:00
Roman Mogilatov
d93abe8554 Add some tests for catalog 2015-03-16 15:58:07 +02:00
Roman Mogilatov
654e7f05c8 Removing unused import from provider tests 2015-03-16 15:57:45 +02:00
Roman Mogilatov
47d33e524c Add tests for providers.Config & refactoring of it 2015-03-16 15:09:01 +02:00
Roman Mogilatov
1736a6e008 Add check for callable in providers.Callable.__init__ 2015-03-16 11:52:53 +02:00
Roman Mogilatov
b1f6963fbe Little tests refactoring 2015-03-16 11:49:34 +02:00
Roman Mogilatov
3e3f782ab8 Test for is_provider check for providers.ExternalDependency 2015-03-16 11:44:47 +02:00
Roman Mogilatov
3754c7a6c5 Test for is_provider check for providers.Callable 2015-03-16 11:43:51 +02:00
Roman Mogilatov
08c7e7048f Add tests for providers.Callable & minor refactoring 2015-03-16 01:56:23 +02:00
Roman Mogilatov
d36e01bf3e Add tests for providers.ExternalDependency & refactoring 2015-03-16 01:10:43 +02:00
Roman Mogilatov
5ef157d252 Add tests for static providers 2015-03-16 00:52:29 +02:00
Roman Mogilatov
bb5715be90 Little refactoring of providers.Scoped tests 2015-03-15 15:35:33 +02:00
Roman Mogilatov
37f8382f4b Add tests for providers.Scoped & little test refactoring 2015-03-15 15:31:05 +02:00
Roman Mogilatov
fa113af977 Test for providers.Singleton 2015-03-15 00:50:24 +02:00
Roman Mogilatov
62e0a55b1b tests for NewInstance provider 2015-03-15 00:41:19 +02:00
Roman Mogilatov
91ea284723 Some tests for NewInstance provider, NewInstance provider refactoring 2015-03-14 15:57:30 +02:00
Roman Mogilatov
f6fb605080 adding some tests on NewInstance provider 2015-03-14 00:40:35 +02:00
Roman Mogilatov
6567ee2b4d renaming ProviderDelegate to Delegate 2015-03-14 00:02:01 +02:00
Roman Mogilatov
1c4abb7533 adding tests for utils.ensure_is_provider() 2015-03-13 23:38:41 +02:00
Roman Mogilatov
abdb1eeac0 adding tests for ProviderDelegate, making of some refactoring 2015-03-13 17:46:03 +02:00
Roman Mogilatov
9d72eaf675 adding objects-specific errors 2015-03-13 17:31:07 +02:00
Roman Mogilatov
3221832a8d adding some more tests for Provider 2015-03-12 19:24:29 +02:00
Roman Mogilatov
3c489c54bf adding a little tests for provider 2015-03-12 12:46:14 +02:00
Roman Mogilatov
0c1c13be33 updating Catalog override method name 2015-03-12 12:45:15 +02:00
Roman Mogilatov
ff4a092dab adding utils tests, fixing of bug in utils with returning True for checked classes, not only instances 2015-03-12 12:01:56 +02:00
Roman Mogilatov
0414ab5460 adding injections module unittests 2015-03-12 00:10:51 +02:00
Roman Mogilatov
911117f5a7 minor codestyle fixes for tests 2015-03-11 00:25:37 +02:00
Roman Mogilatov
54f35a5d35 adding some tests 2015-03-11 00:23:26 +02:00
Roman Mogilatov
13d6a0f667 adding .coveragerc and some tests 2015-03-10 16:12:42 +02:00
Roman Mogilatov
a4a160b061 adding command for running of tests 2015-03-10 16:03:54 +02:00
Roman Mogilatov
5bc4a7eb55 adding test sample 2015-01-05 17:10:36 +02:00
Roman Mogilatov
18d6abdb09 separating pubish and tag setup.py commands 2015-01-05 17:10:12 +02:00