Changeset 71 for branches/3.0/turbomail/control.py
- Timestamp:
- 11/09/07 04:38:51 (1 year ago)
- Files:
-
- 1 modified
-
branches/3.0/turbomail/control.py (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/3.0/turbomail/control.py
r68 r71 7 7 in your own applications:: 8 8 9 import turbomail 10 turbomail.interface.start() 9 from turbomail.message import Message 10 from turbomail.control import interface 11 interface.start() 11 12 12 message = turbomail.Message(...)13 turbomail.send(message)13 message = Message(...) 14 interface.send(message) 14 15 15 turbomail.interface.stop()16 interface.stop() 16 17 17 18 TurboMail will, by default, immediately delete any messages remaining in … … 25 26 log = logging.getLogger("turbomail.control") 26 27 27 import turbomail28 28 import pkg_resources 29 29 … … 40 40 self.running = False 41 41 self.extensions = dict() 42 self.config = dict() 43 self.manager = None 44 self.provider = None 42 45 43 try: 44 import turbogears 45 46 turbogears.config.update(turbomail.config) 47 turbomail.config = turbogears.config 48 self.start_extension = self.start 49 self.shutdown_extension = self.stop 50 51 except ImportError: 52 pass 53 54 except AttributeError: 55 pass 56 57 def load_single_entry(self, group, name): 46 def __load_single_entry(self, group, name): 58 47 for entrypoint in pkg_resources.iter_entry_points(group, name): 59 48 return entrypoint.load() … … 61 50 62 51 def start(self): 63 try: 64 import turbogears 65 except ImportError: 66 pass 67 else: 68 turbomail.config = turbogears.config 69 70 if not turbomail.config.get("mail.on", False): 52 if not self.config.get("mail.on", False): 71 53 return 72 54 … … 74 56 75 57 def load(t, default): 76 extension = turbomail.config.get("mail.%s" % t, default)77 controller = self. load_single_entry("turbomail.%ss" % t, extension)58 extension = self.config.get("mail.%s" % t, default) 59 controller = self.__load_single_entry("turbomail.%ss" % t, extension) 78 60 if not controller: 79 turbomail.config.update({"mail.on": False})61 self.config.update({"mail.on": False}) 80 62 log.error("Unable to locate %s %s, TurboMail disabled." % (extension, t)) 81 63 self.stop(force=True) 82 64 return 83 setattr( turbomail, t, controller.load())65 setattr(self, t, controller.load()) 84 66 controller.start() 85 67 … … 92 74 for entrypoint in extensions: 93 75 log.debug("Found extension '%s'." % entrypoint.name) 94 if turbomail.config.get("mail.%s.on" % entrypoint.name, False): 76 77 if self.config.get("mail.%s.on" % entrypoint.name, False): 95 78 log.info("Loading extension '%s'." % entrypoint.name) 79 96 80 self.extensions[entrypoint.name] = entrypoint.load() 97 81 98 if hasattr(self.extensions[entrypoint.name], 'load'): 82 if hasattr(self.extensions[entrypoint.name], 'interface'): 83 self.extensions[entrypoint.name] = self.extensions[entrypoint.name].interface 84 85 elif hasattr(self.extensions[entrypoint.name], 'load'): 99 86 self.extensions[entrypoint.name] = self.extensions[entrypoint.name].load() 100 87 … … 112 99 extensions = pkg_resources.iter_entry_points("turbomail.extensions") 113 100 for entrypoint in extensions: 114 if turbomail.config.get("mail." + entrypoint.name + ".on", False):101 if self.config.get("mail." + entrypoint.name + ".on", False): 115 102 ext = entrypoint.load() 116 103 if hasattr(ext, "stop"): ext.stop() 117 104 118 105 # Unload the provider and manager. 119 if turbomail.provider and hasattr(turbomail.provider, "stop"): turbomail.provider.stop()120 if turbomail.manager and hasattr(turbomail.manager, "stop"): turbomail.manager.stop()106 if self.provider and hasattr(self.provider, "stop"): self.provider.stop() 107 if self.manager and hasattr(self.manager, "stop"): self.manager.stop() 121 108 122 turbomail.provider = None123 turbomail.manager = None109 self.provider = None 110 self.manager = None 124 111 125 112 self.running = False 113 114 def send(self, message): 115 if not self.manager: 116 raise MailNotEnabledError 117 118 return self.manager.deliver(message) 119 126 120 127 121
