TTYUI: Fix python 2.6 compatibility
We were using super() on a class derived from logging.Formatter() which worked fine in python 2.7. Apparently python 2.6 uses old-style classes for this, so the TTYUI broke and crashed OfflineImap. This was introduced in OLI 6.5.0, I think. Fix it by calling logging.Formatter.... directly, rather than the elegant super() (which I happen to like a lot more than is appropriate in the python world). Reported by Nik Reiman as github issue 23, should fix that issue. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
This commit is contained in:
		| @@ -18,3 +18,5 @@ Changes | ||||
|  | ||||
| Bug Fixes | ||||
| --------- | ||||
|  | ||||
| * Fix python2.6 compatibility with the TTYUI backend (crash) | ||||
|   | ||||
| @@ -24,12 +24,14 @@ from offlineimap.ui.UIBase import UIBase | ||||
| class TTYFormatter(logging.Formatter): | ||||
|     """Specific Formatter that adds thread information to the log output""" | ||||
|     def __init__(self, *args, **kwargs): | ||||
|         super(TTYFormatter, self).__init__(*args, **kwargs) | ||||
|         #super() doesn't work in py2.6 as 'logging' uses old-style class | ||||
|         logging.Formatter.__init__(self, *args, **kwargs) | ||||
|         self._last_log_thread = None | ||||
|  | ||||
|     def format(self, record): | ||||
|         """Override format to add thread information""" | ||||
|         log_str = super(TTYFormatter, self).format(record) | ||||
|         #super() doesn't work in py2.6 as 'logging' uses old-style class | ||||
|         log_str = logging.Formatter.format(self, record) | ||||
|         # If msg comes from a different thread than our last, prepend | ||||
|         # thread info.  Most look like 'Account sync foo' or 'Folder | ||||
|         # sync foo'. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Sebastian Spaeth
					Sebastian Spaeth