offlineimap rev 546
"Automatic Subversion Change Mailer" <[email protected]> Tue, 29 Jul 2003 10:39:50 -0500 (CDT)
| Newsgroups | gmane.mail.imap.offlineimap.subversion |
|---|---|
| Message-ID | <[email protected]> |
You are receiving this message because
all commits get sent to this address.
Author: jgoerzen
Date: 2003-07-29 10:39:31 -0500 (Tue, 29 Jul 2003)
New Revision: 546
Modified:
offlineimap/branches/twisted/TODO
offlineimap/branches/twisted/offlineimap/folder/Base.py
offlineimap/branches/twisted/offlineimap/imapserver.py
offlineimap/branches/twisted/offlineimap/imaputil.py
Log:
OK, finally managed to fix the weird calling arguments problem.
Diff:
Modified: offlineimap/branches/twisted/TODO
==============================================================================
--- offlineimap/branches/twisted/TODO 2003-07-29 03:00:54 UTC (rev 545)
+++ offlineimap/branches/twisted/TODO 2003-07-29 15:39:31 UTC (rev 546)
@@ -1 +1,4 @@
Test with multiple folders
+
+
+folder/Base should not use deferreds for saveuidvalidity()
Modified: offlineimap/branches/twisted/offlineimap/folder/Base.py
==============================================================================
--- offlineimap/branches/twisted/offlineimap/folder/Base.py 2003-07-29 03:00:54 UTC (rev 545)
+++ offlineimap/branches/twisted/offlineimap/folder/Base.py 2003-07-29 15:39:31 UTC (rev 546)
@@ -81,14 +81,18 @@
def isuidvalidityok(self):
if self.getsaveduidvalidity() != None:
- retval = self.getsaveduidvalidity() == self.getuidvalidity()
- return rd(retval)
+ d = self.getuidvalidity()
+ d.addCallback(self.isuidvalidityok_worker)
+ return d
else:
d = self.saveuidvalidity()
# This has the effect of returning '1' to the caller.
d.addCallback(lambda x: 1)
return d
+ def isuidvalidityok_worker(self, uidvalidity):
+ return self.getsaveduidvalidity() == uidvalidity
+
def _getuidfilename(self):
return os.path.join(self.repository.getuiddir(),
self.getfolderbasename())
Modified: offlineimap/branches/twisted/offlineimap/imapserver.py
==============================================================================
--- offlineimap/branches/twisted/offlineimap/imapserver.py 2003-07-29 03:00:54 UTC (rev 545)
+++ offlineimap/branches/twisted/offlineimap/imapserver.py 2003-07-29 15:39:31 UTC (rev 546)
@@ -212,6 +212,7 @@
return connection
def _printconnectionstate(self):
+ return
print "PRINTCONNECTIONSTATE"
#import traceback
#traceback.print_stack()
@@ -227,6 +228,9 @@
self.assignedconnections.remove(connection)
# And hand it off to the next consumer or queue
self._handleAvailableConnection(connection)
+ # It's important to return stuff, because this is also an errBack.
+ # If stuff is not returned, the Failure object, and thus the error,
+ # would be lost.
return stuff
def _handleAvailableConnection(self, connection):
Modified: offlineimap/branches/twisted/offlineimap/imaputil.py
==============================================================================
--- offlineimap/branches/twisted/offlineimap/imaputil.py 2003-07-29 03:00:54 UTC (rev 545)
+++ offlineimap/branches/twisted/offlineimap/imaputil.py 2003-07-29 15:39:31 UTC (rev 546)
@@ -16,6 +16,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+from __future__ import nested_scopes
+
import re, string, types
from offlineimap.ui import UIBase
from twisted.internet import defer
@@ -195,14 +197,6 @@
return ",".join(retval)
-def helper(self, destfunc, args, kwargs):
- print "Helper called. self=", self, "destfunc=", destfunc, "args=", args, "kwargs=", kwargs
- d = defer.Deferred()
- d.addCallback(destfunc, *args, **kwargs)
-
- self.imapserver.acquireconnection(d)
- return d
-
class AcquireMixin:
def _initAcquires(self):
acquirelist = []
@@ -211,7 +205,28 @@
if match:
acquirelist.append(match.group(1))
for name in acquirelist:
- newname = '_' + name + '_acquired'
- func = lambda self, *args, **kwargs: \
- helper(self, getattr(self, newname), args, kwargs)
- setattr(self.__class__, name, func)
+ self._setupAcquire(name)
+
+ def _setupAcquire(self, name):
+ # This did not work at part of the above function.
+ # FIXME: this can probably be returned to the lambda form
+ # and stuff can be removed below.
+ newname = '_' + name + '_acquired'
+ destfunc = getattr(self, newname)
+
+ def func(*args, **kwargs):
+ return self._acquireHelper(destfunc, args, kwargs)
+
+ #func = lambda *args, **kwargs: \
+ # self._acquireHelper(destfunc, args, kwargs)
+ setattr(self, name, func)
+
+ def _acquireHelper(self, destfunc, args, kwargs):
+ #import traceback
+ #traceback.print_stack()
+ d = defer.Deferred()
+ d.addCallback(destfunc, *args, **kwargs)
+
+ self.imapserver.acquireconnection(d)
+ return d
+