------------------------------------------------------------
revno: 6681
committer: Barry Warsaw <[email protected]>
branch nick: 3.0
timestamp: Sat 2009-02-07 23:14:26 -0500
message:
  Branch merge
renamed:
  src/mailman/Mailbox.py => src/mailman/attic/Mailbox.py
modified:
  src/mailman/Archiver/Archiver.py
  src/mailman/Archiver/HyperArch.py
  src/mailman/Archiver/pipermail.py
  src/mailman/archiving/pipermail.py
    ------------------------------------------------------------
    revno: 6678.1.1
    committer: Barry Warsaw <[email protected]>
    branch nick: mailbox-eradication
    timestamp: Sat 2009-02-07 23:10:55 -0500
    message:
      Remove the Mailman.Mailbox module; use the standard Python mailbox module.
    renamed:
      src/mailman/Mailbox.py => src/mailman/attic/Mailbox.py
    modified:
      src/mailman/Archiver/Archiver.py
      src/mailman/Archiver/HyperArch.py
      src/mailman/Archiver/pipermail.py
      src/mailman/archiving/pipermail.py
      src/mailman/queue/docs/incoming.txt

=== modified file 'src/mailman/Archiver/Archiver.py'
--- src/mailman/Archiver/Archiver.py    2009-01-05 00:41:05 +0000
+++ src/mailman/Archiver/Archiver.py    2009-02-08 04:10:55 +0000
@@ -26,11 +26,11 @@
 import os
 import errno
 import logging
+import mailbox
 
 from cStringIO import StringIO
 from string import Template
 
-from mailman import Mailbox
 from mailman import Utils
 from mailman.config import config
 
@@ -140,7 +140,7 @@
         """Open (creating, if necessary) the named archive file."""
         omask = os.umask(002)
         try:
-            return Mailbox.Mailbox(open(afn, 'a+'))
+            return mailbox.mbox(afn, 'a+')
         finally:
             os.umask(omask)
 
@@ -153,7 +153,7 @@
         try:
             afn = self.ArchiveFileName()
             mbox = self.__archive_file(afn)
-            mbox.AppendMessage(post)
+            mbox.add(post)
             mbox.fp.close()
         except IOError, msg:
             log.error('Archive file access failure:\n\t%s %s', afn, msg)

=== modified file 'src/mailman/Archiver/HyperArch.py'
--- src/mailman/Archiver/HyperArch.py   2009-01-07 00:55:59 +0000
+++ src/mailman/Archiver/HyperArch.py   2009-02-08 04:10:55 +0000
@@ -48,7 +48,6 @@
 from mailman import i18n
 from mailman.Archiver import HyperDatabase
 from mailman.Archiver import pipermail
-from mailman.Mailbox import ArchiverMailbox
 from mailman.config import config
 
 

=== modified file 'src/mailman/Archiver/pipermail.py'
--- src/mailman/Archiver/pipermail.py   2008-09-27 01:11:51 +0000
+++ src/mailman/Archiver/pipermail.py   2009-02-08 04:10:55 +0000
@@ -17,7 +17,6 @@
 VERSION = __version__
 CACHESIZE = 100    # Number of slots in the cache
 
-from mailman.Mailbox import ArchiverMailbox
 from mailman.core import errors
 from mailman.i18n import _
 
@@ -540,30 +539,29 @@
     def _makeArticle(self, msg, sequence):
         return Article(msg, sequence)
 
-    def processUnixMailbox(self, input, start=None, end=None):
-        mbox = ArchiverMailbox(input, self.maillist)
+    def processUnixMailbox(self, path, start=None, end=None):
+        mbox = iter(mailbox.mbox(path))
         if start is None:
             start = 0
         counter = 0
         while counter < start:
             try:
-                m = mbox.next()
+                m = next(mbox)
             except errors.DiscardMessage:
                 continue
             if m is None:
                 return
             counter += 1
-        while 1:
+        while True:
             try:
-                pos = input.tell()
-                m = mbox.next()
+                m = next(mbox)
+            except StopIteration:
+                break
             except errors.DiscardMessage:
                 continue
             except Exception:
-                log.error('uncaught archiver exception at filepos: %s', pos)
+                log.error('uncaught archiver exception')
                 raise
-            if m is None:
-                break
             if m == '':
                 # It was an unparseable message
                 continue

=== modified file 'src/mailman/archiving/pipermail.py'
--- src/mailman/archiving/pipermail.py  2009-01-21 01:54:22 +0000
+++ src/mailman/archiving/pipermail.py  2009-02-08 04:10:55 +0000
@@ -26,6 +26,8 @@
 
 
 import os
+import mailbox
+import tempfile
 
 from cStringIO import StringIO
 from zope.interface import implements
@@ -111,11 +113,18 @@
     @staticmethod
     def archive_message(mlist, message):
         """See `IArchiver`."""
-        text = str(message)
-        fileobj = StringIO(text)
+        fd, path = tempfile.mkstemp('.mbox')
+        os.close(fd)
+        try:
+            mbox = mailbox.mbox(path, create=True)
+            mbox.add(message)
+        finally:
+            mbox.close()
         h = HyperArchive(IPipermailMailingList(mlist))
-        h.processUnixMailbox(fileobj)
-        h.close()
-        fileobj.close()
+        try:
+            h.processUnixMailbox(path)
+        finally:
+            h.close()
+            os.remove(path)
         # There's no good way to know the url for the archived message.
         return None

=== renamed file 'src/mailman/Mailbox.py' => 'src/mailman/attic/Mailbox.py'


--
Primary development focus
https://code.launchpad.net/~mailman-coders/mailman/3.0

Your team Mailman Checkins is subscribed to branch lp:mailman.
To unsubscribe from this branch go to 
https://code.launchpad.net/~mailman-coders/mailman/3.0/+edit-subscription.
_______________________________________________
Mailman-checkins mailing list
[email protected]
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org

Reply via email to