mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2024-11-23 18:13:56 +03:00
29 lines
1.3 KiB
Python
29 lines
1.3 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>
|