mirror of
				https://github.com/ets-labs/python-dependency-injector.git
				synced 2025-11-01 00:17:55 +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>
 |