Changeset 40 for branches/3.0/turbomail/control.py
- Timestamp:
- 10/18/07 01:15:41 (1 year ago)
- Files:
-
- 1 modified
-
branches/3.0/turbomail/control.py (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/3.0/turbomail/control.py
r37 r40 24 24 25 25 import turbomail 26 import pkg_resources 26 27 27 28 __all__ = ['extension'] … … 46 47 self.shutdown_extension = self.stop 47 48 48 def load_single_entry(group, name): 49 for entrypoint in pkg_resources.iter_entry_points("turbogears.command"): 50 if entrypoint.name == name: 51 return entrypoint.load() 49 def load_single_entry(self, group, name): 50 for entrypoint in pkg_resources.iter_entry_points(group, name): 51 return entrypoint.load() 52 52 return None 53 53 54 54 def start(self): 55 """TurboGears extension startup. 56 57 Exits immediately if TurboMail is not enabled and creates a MailPool 58 instance if all is well. 59 """ 55 try: 56 import turbogears 57 except ImportError: 58 pass 59 else: 60 turbomail.config = turbogears.config 60 61 61 62 if not turbomail.config.get("mail.on", False): … … 65 66 66 67 # Load the requested pool manager. 67 manager = turbomail.config.get("mail.manager", " demand")68 turbomail.manager = self.load_single_entry("turbomail.managers", manager) 68 manager = turbomail.config.get("mail.manager", "immediate") 69 turbomail.manager = self.load_single_entry("turbomail.managers", manager).load() 69 70 if not turbomail.manager: 70 71 turbomail.config.set("mail.on", False) … … 74 75 75 76 # Load the requested mail provider. 76 provider = turbomail.config.get("mail.provider", " smtp")77 turbomail.provider = self.load_single_entry("turbomail.providers", provider) 77 provider = turbomail.config.get("mail.provider", "debug") 78 turbomail.provider = self.load_single_entry("turbomail.providers", provider).load() 78 79 if not turbomail.provider: 79 80 turbomail.config.set("mail.on", False) … … 82 83 turbomail.provider.start() 83 84 84 # Override the UTF-8 character set to use the quoted printable encoding.85 if turbomail.config.get("mail.default.encoding", "us-ascii") == "utf-8-qp":86 Charset.add_charset('utf-8', Charset.SHORTEST, Charset.QP, 'utf-8')87 turbomail.config.update({"mail.default.encoding": "utf-8"})88 89 85 # Load and initalize the various extensions. 90 86 extensions = pkg_resources.iter_entry_points("turbomail.extensions") 91 87 for entrypoint in extensions: 92 ext = entrypoint.load() 93 if hasattr(ext, "start"): 94 ext.start() 88 log.debug("Found extension '%s'." % entrypoint.name) 89 if turbomail.config.get("mail." + entrypoint.name + ".on", False): 90 log.debug("Loading extension '%s'." % entrypoint.name) 91 ext = entrypoint.load() 92 if hasattr(ext, "start"): ext.start() 95 93 96 94 self.running = True 97 95 98 96 def stop(self): 99 """TurboGears extension shutdown.100 101 Exits immediately if TurboMail is not enabled and shuts down the102 MailPool object safely.103 """104 105 97 if not self.running: return 106 98 … … 110 102 extensions = pkg_resources.iter_entry_points("turbomail.extensions") 111 103 for entrypoint in extensions: 112 ext = entrypoint.load()113 if hasattr(ext, "unload"):114 ext.unload()104 if turbomail.config.get("mail." + entrypoint.name + ".on", False): 105 ext = entrypoint.load() 106 if hasattr(ext, "unload"): ext.unload() 115 107 116 108 # Unload the provider and manager.
