| 
					
				 | 
			
			
				@@ -1,40 +1,27 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import imp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from django.conf import settings 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from django.core import exceptions 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-__all__ = ["autodiscover", "tasks_for_app", "find_related_module"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+__all__ = ["autodiscover", "find_related_module"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def autodiscover(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Include tasks for all applications in settings.INSTALLED_APPS.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return filter(None, [tasks_for_app(app) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return filter(None, [find_related_module(app, "tasks") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             for app in settings.INSTALLED_APPS]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-def tasks_for_app(app): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    """Given an application name, imports any tasks.py file for that app.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    def found_tasks_module_handler(app_path, app_basename): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return __import__("%s.tasks" % app) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return find_related_module(app, "tasks", found_tasks_module_handler) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-def find_related_module(app, related_name, handler): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+def find_related_module(app, related_name): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """Given an application name and a module name, tries to find that 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     module in the application, and running handler' if it finds it. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # See django.contrib.admin.autodiscover for an explanation of this code. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        app_basename = app.split('.')[-1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        app_path = __import__(app, {}, {}, app_basename).__path__ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    except AttributeError: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        module = __import__(app, {}, {}, [related_name]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    except ImportError: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        imp.find_module(related_name, app_path) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    except ImportError: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        related_module = getattr(module, related_name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    except AttributeError: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return handler(app_path, app_basename) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return related_module 
			 |