|  | @@ -1,4 +1,5 @@
 | 
	
		
			
				|  |  |  import sys
 | 
	
		
			
				|  |  | +import importlib
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  from billiard.utils.functional import curry
 | 
	
		
			
				|  |  |  from carrot.utils import rpartition
 | 
	
	
		
			
				|  | @@ -26,19 +27,12 @@ def resolve_backend(backend):
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  def _get_backend_cls(backend):
 | 
	
		
			
				|  |  |      backend_module_name, backend_cls_name = resolve_backend(backend)
 | 
	
		
			
				|  |  | -    __import__(backend_module_name)
 | 
	
		
			
				|  |  | -    backend_module = sys.modules[backend_module_name]
 | 
	
		
			
				|  |  | +    backend_module = importlib.import_module(backend_module_name)
 | 
	
		
			
				|  |  |      return getattr(backend_module, backend_cls_name)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  def get_backend_cls(backend):
 | 
	
		
			
				|  |  | -    """Get backend class by name.
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    If the name does not include "``.``" (is not fully qualified),
 | 
	
		
			
				|  |  | -    ``"celery.backends."`` will be prepended to the name. e.g.
 | 
	
		
			
				|  |  | -    ``"database"`` becomes ``"celery.backends.database"``.
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    """
 | 
	
		
			
				|  |  | +    """Get backend class by name/alias"""
 | 
	
		
			
				|  |  |      if backend not in _backend_cache:
 | 
	
		
			
				|  |  |          _backend_cache[backend] = _get_backend_cls(backend)
 | 
	
		
			
				|  |  |      return _backend_cache[backend]
 |