Mercurial > public > mercurial-scm > hg
comparison mercurial/mail.py @ 36120:54dfb65e2f82
mail: import email.utils not email.Utils
email.Utils was renamed to email.utils in Python 2.5. But it appears
at some point before Python 2.7 (possibly 2.5) email.Utils was aliased
to the new home. So email.utils should be safe for all versions of
Python we support.
Differential Revision: https://phab.mercurial-scm.org/D2168
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sun, 11 Feb 2018 18:58:45 -0800 |
parents | 6ea7f1c10c81 |
children | f0b6fbea00cf |
comparison
equal
deleted
inserted
replaced
36119:6ea7f1c10c81 | 36120:54dfb65e2f82 |
---|---|
286 try: | 286 try: |
287 # too strict? | 287 # too strict? |
288 addr = addr.encode('ascii') | 288 addr = addr.encode('ascii') |
289 except UnicodeDecodeError: | 289 except UnicodeDecodeError: |
290 raise error.Abort(_('invalid local address: %s') % addr) | 290 raise error.Abort(_('invalid local address: %s') % addr) |
291 return email.Utils.formataddr((name, addr)) | 291 return email.utils.formataddr((name, addr)) |
292 | 292 |
293 def addressencode(ui, address, charsets=None, display=False): | 293 def addressencode(ui, address, charsets=None, display=False): |
294 '''Turns address into RFC-2047 compliant header.''' | 294 '''Turns address into RFC-2047 compliant header.''' |
295 if display or not address: | 295 if display or not address: |
296 return address or '' | 296 return address or '' |
297 name, addr = email.Utils.parseaddr(address) | 297 name, addr = email.utils.parseaddr(address) |
298 return _addressencode(ui, name, addr, charsets) | 298 return _addressencode(ui, name, addr, charsets) |
299 | 299 |
300 def addrlistencode(ui, addrs, charsets=None, display=False): | 300 def addrlistencode(ui, addrs, charsets=None, display=False): |
301 '''Turns a list of addresses into a list of RFC-2047 compliant headers. | 301 '''Turns a list of addresses into a list of RFC-2047 compliant headers. |
302 A single element of input list may contain multiple addresses, but output | 302 A single element of input list may contain multiple addresses, but output |
303 always has one address per item''' | 303 always has one address per item''' |
304 if display: | 304 if display: |
305 return [a.strip() for a in addrs if a.strip()] | 305 return [a.strip() for a in addrs if a.strip()] |
306 | 306 |
307 result = [] | 307 result = [] |
308 for name, addr in email.Utils.getaddresses(addrs): | 308 for name, addr in email.utils.getaddresses(addrs): |
309 if name or addr: | 309 if name or addr: |
310 result.append(_addressencode(ui, name, addr, charsets)) | 310 result.append(_addressencode(ui, name, addr, charsets)) |
311 return result | 311 return result |
312 | 312 |
313 def mimeencode(ui, s, charsets=None, display=False): | 313 def mimeencode(ui, s, charsets=None, display=False): |