comparison mercurial/mail.py @ 36158: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
36157:6ea7f1c10c81 36158: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):