python-dependency-injector/examples/providers/abstract_factory/example.py
Roman Mogylatov 6eff213a68
Migrate to alabaster (#264)
* Add bootstrap and remove created at from ghnav-flask app

* Update readme

* Add logo to the docs

* Update key features description

* Update README

* Change headers of API docs

* Add alabaster theme config

* Update docs index

* Add tutorials section

* Update what is DI page

* Update DI in Python page

* Update tutorials index page

* Update provider docs

* Update container docs

* Update examples docs
2020-07-18 00:40:14 -04:00

37 lines
1.0 KiB
Python

"""`AbstractFactory` providers example."""
import cache
import dependency_injector.providers as providers
# Define abstract cache client factory:
cache_client_factory = providers.AbstractFactory(cache.AbstractCacheClient)
if __name__ == '__main__':
# Override abstract factory with redis client factory:
cache_client_factory.override(
providers.Factory(
cache.RedisCacheClient,
host='localhost',
port=6379,
db=0,
),
)
redis_cache = cache_client_factory()
print(redis_cache)
# <cache.RedisCacheClient object at 0x10975bc50>
# Override abstract factory with memcache client factory:
cache_client_factory.override(
providers.Factory(
cache.MemcacheCacheClient,
hosts=['10.0.1.1', '10.0.1.2', '10.0.1.3'],
port=11211,
prefix='my_app',
),
)
memcache_cache = cache_client_factory()
print(memcache_cache)
# <cache.MemcacheCacheClient object at 0x10975bc90>