Changeset 71

Show
Ignore:
Timestamp:
11/09/07 04:38:51 (1 year ago)
Author:
amcgregor
Message:

More large-scale updates to the 3.0 branch.

Location:
branches/3.0
Files:
1 removed
7 modified

Legend:

Unmodified
Added
Removed
  • branches/3.0/setup.py

    r70 r71  
    44__version__ = "$Revision$" 
    55 
     6import os 
    67import sys 
     8from fnmatch import fnmatchcase 
     9from distutils.util import convert_path 
    710from setuptools import setup, find_packages 
    811 
     
    1013    raise SystemExit("Python 2.3 or later is required") 
    1114 
    12 import os 
    1315execfile(os.path.join("turbomail", "release.py")) 
    1416 
     
    7476                        "uuid >= 1.30" 
    7577                ], 
     78                 
    7679                extras_require = { 
    77                         'turbogears': ["TurboGears>=1.0"], 
    78                         'smime': ["M2Crypto>=0.18"] 
     80                        'turbogears': ["TurboGears >= 1.0"], 
     81                        'smime': ["TurboMail-SMIME >= 0.1"] 
    7982                }, 
     83                 
    8084                zip_safe=True, 
    8185                packages=find_packages(), 
    8286                package_data = find_package_data(where='turbomail', package='turbomail'), 
    83                 keywords = ["turbogears.extension"], 
     87                namespace_packages = [ 
     88                                'turbomail', 
     89                                'turbomail.extensions', 
     90                                'turbomail.managers', 
     91                                'turbomail.providers' 
     92                        ] 
    8493                classifiers = [ 
    8594                        'Development Status :: 5 - Production/Stable', 
     
    94103                test_suite = 'nose.collector', 
    95104                entry_points = { 
    96                         'turbogears.extensions': [ 
    97                                 "turbomail = turbomail.control:interface" 
    98                         ], 
    99105                        'turbomail.managers': [ 
    100106                                "demand = turbomail.managers.demand", 
  • branches/3.0/turbomail/__init__.py

    r63 r71  
    1 # encoding: utf-8 
    2  
    3 """TurboMail is a generic multi-threaded mail delivery subsystem. 
    4 TurboMail uses built-in Python modules for SMTP communication and 
    5 MIME e-mail creation, but greatly simplifies these tasks by 
    6 performing the grunt-work for you. 
    7          
    8 TurboMail is heavily inspired by PHPMailer, a very, very handy class 
    9 for PHP 4 & 5 by Brent R. Matzelle.""" 
    10  
    11 from turbomail.release import \ 
    12                 version as __version__, \ 
    13                 author as __author__, \ 
    14                 email as __email__, \ 
    15                 license as __license__, \ 
    16                 copyright as __copyright__ 
    17  
    18 from turbomail.message import Message 
    19 from turbomail.control import interface 
    20 from turbomail.util import Address, AddressList, send 
    21  
    22 __all__ = [ 
    23                 'Address', 
    24                 'AddressList', 
    25                 'interface', 
    26                 'Message', 
    27                 'send', 
    28                  
    29                 'api', 
    30                 'exceptions', 
    31                 'extensions', 
    32                 'managers', 
    33                 'providers', 
    34                 'release', 
    35                 'smime', 
    36                  
    37                 'config', 
    38                 'manager', 
    39                 'provider', 
    40         ] 
    41  
    42 manager = None 
    43 provider = None 
    44 config = {} 
    45  
     1__import__('pkg_resources').declare_namespace(__name__) 
  • branches/3.0/turbomail/api.py

    r66 r71  
    44 
    55__version__ = "$Revision$" 
     6 
     7from exceptions import * 
     8 
    69__all__ = ['Extension', 'ProviderFactory', 'Provider', 'Manager'] 
    710 
  • branches/3.0/turbomail/control.py

    r68 r71  
    77in your own applications:: 
    88 
    9   import turbomail 
    10   turbomail.interface.start() 
     9  from turbomail.message import Message 
     10  from turbomail.control import interface 
     11  interface.start() 
    1112   
    12   message = turbomail.Message(...) 
    13   turbomail.send(message) 
     13  message = Message(...) 
     14  interface.send(message) 
    1415   
    15   turbomail.interface.stop() 
     16  interface.stop() 
    1617 
    1718TurboMail will, by default, immediately delete any messages remaining in 
     
    2526log = logging.getLogger("turbomail.control") 
    2627 
    27 import turbomail 
    2828import pkg_resources 
    2929 
     
    4040                self.running = False 
    4141                self.extensions = dict() 
     42                self.config = dict() 
     43                self.manager = None 
     44                self.provider = None 
    4245                 
    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): 
    5847                for entrypoint in pkg_resources.iter_entry_points(group, name): 
    5948                        return entrypoint.load() 
     
    6150         
    6251        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): 
    7153                        return 
    7254                 
     
    7456                 
    7557                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) 
    7860                        if not controller: 
    79                                 turbomail.config.update({"mail.on": False}) 
     61                                self.config.update({"mail.on": False}) 
    8062                                log.error("Unable to locate %s %s, TurboMail disabled." % (extension, t)) 
    8163                                self.stop(force=True) 
    8264                                return 
    83                         setattr(turbomail, t, controller.load()) 
     65                        setattr(self, t, controller.load()) 
    8466                        controller.start() 
    8567                 
     
    9274                for entrypoint in extensions: 
    9375                        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): 
    9578                                log.info("Loading extension '%s'." % entrypoint.name) 
     79                                 
    9680                                self.extensions[entrypoint.name] = entrypoint.load() 
    9781                                 
    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'): 
    9986                                        self.extensions[entrypoint.name] = self.extensions[entrypoint.name].load() 
    10087                                 
     
    11299                extensions = pkg_resources.iter_entry_points("turbomail.extensions") 
    113100                for entrypoint in extensions: 
    114                         if turbomail.config.get("mail." + entrypoint.name + ".on", False): 
     101                        if self.config.get("mail." + entrypoint.name + ".on", False): 
    115102                                ext = entrypoint.load() 
    116103                                if hasattr(ext, "stop"): ext.stop() 
    117104                 
    118105                # 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() 
    121108                 
    122                 turbomail.provider = None 
    123                 turbomail.manager = None 
     109                self.provider = None 
     110                self.manager = None 
    124111                 
    125112                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                 
    126120 
    127121 
  • branches/3.0/turbomail/extensions/notification.py

    r68 r71  
    3030 
    3131 
    32 def load(): 
    33         return NotificationManager() 
     32interface = NotificationManager() 
  • branches/3.0/turbomail/extensions/utf8qp.py

    r68 r71  
    66 
    77import logging 
    8 log = logging.getLogger("turbomail.utf8qp") 
     8log = logging.getLogger("turbomail.extension.utf8qp") 
    99 
    1010import turbomail 
     
    3535 
    3636 
    37 def load(): 
    38         return UTF8QuotedPrintable() 
    39  
    40  
     37interface = UTF8QuotedPrintable() 
  • branches/3.0/turbomail/util.py

    r66 r71  
    1111from email.utils import parseaddr, formataddr 
    1212 
    13 __all__ = ['Address', 'AddressList', 'send'] 
     13__all__ = ['Address', 'AddressList'] 
    1414 
    1515 
     
    108108         
    109109        protected = classmethod(protected) 
    110  
    111  
    112 def send(message): 
    113         if not turbomail.manager: 
    114                 raise MailNotEnabledError 
    115          
    116         return turbomail.manager.deliver(message)