homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: mailbox.Maildir.get_message() may fail when Maildir dirname is a unicode string
Type: behavior Stage: resolved
Components: email Versions: Python 2.7
process
Status: closed Resolution: rejected
Dependencies: Superseder:
Assigned To: Nosy List: barry, petri.lehtinen, poliveira, r.david.murray
Priority: normal Keywords: easy

Created on 2012年05月25日 22:55 by poliveira, last changed 2022年04月11日 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
reproduce.py poliveira, 2012年05月25日 22:55
Messages (2)
msg161629 - (view) Author: Pablo Oliveira (poliveira) Date: 2012年05月25日 22:55
I'm using Python 2.7.3rc2 from debian sid packages.
If a mailbox.Maildir object is created with a unicode dirname,
retrieving a message tagged with maildir flags with get() or get_message() fails with the following exception:
Traceback (most recent call last):
 File "reproduce.py", line 21, in <module>
 mb.get_message(key)
 File "/usr/lib/python2.7/mailbox.py", line 343, in get_message
 msg.set_info(name.split(self.colon)[-1])
 File "/usr/lib/python2.7/mailbox.py", line 1480, in set_info
 raise TypeError('info must be a string: %s' % type(info))
TypeError: info must be a string: <type 'unicode'>
Since python os.path module seems to cope with unicode paths http://docs.python.org/howto/unicode.html, it would be nice to fix this issue.
Attached is a simple script reproducing the bug.
The following patch seems to solve the issue for me:
--- /usr/lib/python2.7/mailbox.py	2012年04月23日 01:25:48.000000000 +0200
+++ mailbox.py	2012年05月26日 00:34:03.585347627 +0200
@@ -1474,7 +1474,7 @@
 
 def set_info(self, info):
 """Set the message's "info" string."""
- if isinstance(info, str):
+ if isinstance(info, basestring):
 self._info = info
 else:
 raise TypeError('info must be a string: %s' % type(info))
Regards,
Pablo Oliveira.
msg169792 - (view) Author: Petri Lehtinen (petri.lehtinen) * (Python committer) Date: 2012年09月03日 18:19
This would be considered a new feature, and is thus out of scope for 2.7. An easy workaround is to encode the unicode path to str using the file system encoding first (sys.getfilesystemencoding()).
History
Date User Action Args
2022年04月11日 14:57:30adminsetgithub: 59127
2012年09月03日 18:19:54petri.lehtinensetstatus: open -> closed
resolution: rejected
messages: + msg169792

stage: needs patch -> resolved
2012年09月02日 10:43:34petri.lehtinensetkeywords: + easy
nosy: + petri.lehtinen

stage: needs patch
2012年05月29日 21:16:45r.david.murraysetnosy: + barry, r.david.murray
components: + email, - Library (Lib)
2012年05月25日 22:55:21poliveiracreate

AltStyle によって変換されたページ (->オリジナル) /