From cc1bcec5091e73f5813cf4d80b4f66c7bfae2070 Mon Sep 17 00:00:00 2001 From: Andreas Savvides Date: Sat, 27 Jul 2013 12:22:49 +0100 Subject: [PATCH] Improving parser code readability - Avoid single character variable names - Use more descriptive variable names (`address` to `address_email`) - Use `default_charset` parameter instead of hard coding `'us-ascii'` --- mailbox/parser.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/mailbox/parser.py b/mailbox/parser.py index be7d00f..2c331dc 100644 --- a/mailbox/parser.py +++ b/mailbox/parser.py @@ -7,27 +7,26 @@ def decode_mail_header(value, default_charset='us-ascii'): try: headers=email.header.decode_header(value) except email.errors.HeaderParseError: - return value.encode('us-ascii', 'replace').decode('us-ascii') + return value.encode(default_charset, 'replace').decode(default_charset) else: - for i, (text, charset) in enumerate(headers): + for index, (text, charset) in enumerate(headers): try: - headers[i]=text.decode(charset or 'us-ascii', 'replace') + headers[index]=text.decode(charset or default_charset, 'replace') except LookupError: # if the charset is unknown, force default - headers[i]=text.decode(default_charset, 'replace') + headers[index]=text.decode(default_charset, 'replace') return u"".join(headers) def get_mail_addresses(message, header_name): """ - retrieve all email addresses from one message header - + Retrieve all email addresses from one message header. """ - addresses = email.utils.getaddresses(h for h in message.get_all(header_name, [])) + addresses = email.utils.getaddresses(header for header in message.get_all(header_name, [])) - for i, (address_name, address) in enumerate(addresses): - addresses[i]={'name': decode_mail_header(address_name), 'email': address} + for index, (address_name, address_email) in enumerate(addresses): + addresses[index]={'name': decode_mail_header(address_name), 'email': address_email} return addresses \ No newline at end of file