[Python-checkins] python/dist/src/Lib/email _parseaddr.py,1.2,1.3
bwarsaw@users.sourceforge.net
bwarsaw@users.sourceforge.net
Mon, 30 Dec 2002 08:43:46 -0800
Update of /cvsroot/python/python/dist/src/Lib/email
In directory sc8-pr-cvs1:/tmp/cvs-serv27804
Modified Files:
_parseaddr.py
Log Message:
A code cleansing pass
Index: _parseaddr.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/email/_parseaddr.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** _parseaddr.py 30 Dec 2002 16:21:07 -0000 1.2
--- _parseaddr.py 30 Dec 2002 16:43:42 -0000 1.3
***************
*** 7,10 ****
--- 7,21 ----
import time
+ from types import TupleType
+
+ try:
+ True, False
+ except NameError:
+ True = 1
+ False = 0
+
+ SPACE = ' '
+ EMPTYSTRING = ''
+ COMMASPACE = ', '
# Parse a date field
***************
*** 56,65 ****
[dd, mm, yy, tm, tz] = data
mm = mm.lower()
! if not mm in _monthnames:
dd, mm = mm, dd.lower()
! if not mm in _monthnames:
return None
! mm = _monthnames.index(mm)+1
! if mm > 12: mm = mm - 12
if dd[-1] == ',':
dd = dd[:-1]
--- 67,77 ----
[dd, mm, yy, tm, tz] = data
mm = mm.lower()
! if mm not in _monthnames:
dd, mm = mm, dd.lower()
! if mm not in _monthnames:
return None
! mm = _monthnames.index(mm) + 1
! if mm > 12:
! mm -= 12
if dd[-1] == ',':
dd = dd[:-1]
***************
*** 113,119 ****
"""Convert a time string to a time tuple."""
t = parsedate_tz(data)
! if type(t) == type( () ):
return t[:9]
! else: return t
--- 125,132 ----
"""Convert a time string to a time tuple."""
t = parsedate_tz(data)
! if isinstance(t, TupleType):
return t[:9]
! else:
! return t
***************
*** 165,172 ****
while self.pos < len(self.field):
if self.field[self.pos] in self.LWS + '\n\r':
! self.pos = self.pos + 1
elif self.field[self.pos] == '(':
self.commentlist.append(self.getcomment())
! else: break
def getaddrlist(self):
--- 178,186 ----
while self.pos < len(self.field):
if self.field[self.pos] in self.LWS + '\n\r':
! self.pos += 1
elif self.field[self.pos] == '(':
self.commentlist.append(self.getcomment())
! else:
! break
def getaddrlist(self):
***************
*** 176,180 ****
"""
result = []
! while 1:
ad = self.getaddress()
if ad:
--- 190,194 ----
"""
result = []
! while True:
ad = self.getaddress()
if ad:
***************
*** 199,203 ****
# Bad email address technically, no domain.
if plist:
! returnlist = [(' '.join(self.commentlist), plist[0])]
elif self.field[self.pos] in '.@':
--- 213,217 ----
# Bad email address technically, no domain.
if plist:
! returnlist = [(SPACE.join(self.commentlist), plist[0])]
elif self.field[self.pos] in '.@':
***************
*** 207,211 ****
self.commentlist = oldcl
addrspec = self.getaddrspec()
! returnlist = [(' '.join(self.commentlist), addrspec)]
elif self.field[self.pos] == ':':
--- 221,225 ----
self.commentlist = oldcl
addrspec = self.getaddrspec()
! returnlist = [(SPACE.join(self.commentlist), addrspec)]
elif self.field[self.pos] == ':':
***************
*** 214,222 ****
fieldlen = len(self.field)
! self.pos = self.pos + 1
while self.pos < len(self.field):
self.gotonext()
if self.pos < fieldlen and self.field[self.pos] == ';':
! self.pos = self.pos + 1
break
returnlist = returnlist + self.getaddress()
--- 228,236 ----
fieldlen = len(self.field)
! self.pos += 1
while self.pos < len(self.field):
self.gotonext()
if self.pos < fieldlen and self.field[self.pos] == ';':
! self.pos += 1
break
returnlist = returnlist + self.getaddress()
***************
*** 227,243 ****
if self.commentlist:
! returnlist = [(' '.join(plist) + ' (' + \
! ' '.join(self.commentlist) + ')', routeaddr)]
! else: returnlist = [(' '.join(plist), routeaddr)]
else:
if plist:
! returnlist = [(' '.join(self.commentlist), plist[0])]
elif self.field[self.pos] in self.specials:
! self.pos = self.pos + 1
self.gotonext()
if self.pos < len(self.field) and self.field[self.pos] == ',':
! self.pos = self.pos + 1
return returnlist
--- 241,258 ----
if self.commentlist:
! returnlist = [(SPACE.join(plist) + ' (' +
! ' '.join(self.commentlist) + ')', routeaddr)]
! else:
! returnlist = [(SPACE.join(plist), routeaddr)]
else:
if plist:
! returnlist = [(SPACE.join(self.commentlist), plist[0])]
elif self.field[self.pos] in self.specials:
! self.pos += 1
self.gotonext()
if self.pos < len(self.field) and self.field[self.pos] == ',':
! self.pos += 1
return returnlist
***************
*** 250,272 ****
return
! expectroute = 0
! self.pos = self.pos + 1
self.gotonext()
! adlist = ""
while self.pos < len(self.field):
if expectroute:
self.getdomain()
! expectroute = 0
elif self.field[self.pos] == '>':
! self.pos = self.pos + 1
break
elif self.field[self.pos] == '@':
! self.pos = self.pos + 1
! expectroute = 1
elif self.field[self.pos] == ':':
! self.pos = self.pos + 1
else:
adlist = self.getaddrspec()
! self.pos = self.pos + 1
break
self.gotonext()
--- 265,287 ----
return
! expectroute = False
! self.pos += 1
self.gotonext()
! adlist = ''
while self.pos < len(self.field):
if expectroute:
self.getdomain()
! expectroute = False
elif self.field[self.pos] == '>':
! self.pos += 1
break
elif self.field[self.pos] == '@':
! self.pos += 1
! expectroute = True
elif self.field[self.pos] == ':':
! self.pos += 1
else:
adlist = self.getaddrspec()
! self.pos += 1
break
self.gotonext()
***************
*** 282,300 ****
if self.field[self.pos] == '.':
aslist.append('.')
! self.pos = self.pos + 1
elif self.field[self.pos] == '"':
aslist.append('"%s"' % self.getquote())
elif self.field[self.pos] in self.atomends:
break
! else: aslist.append(self.getatom())
self.gotonext()
if self.pos >= len(self.field) or self.field[self.pos] != '@':
! return ''.join(aslist)
aslist.append('@')
! self.pos = self.pos + 1
self.gotonext()
! return ''.join(aslist) + self.getdomain()
def getdomain(self):
--- 297,316 ----
if self.field[self.pos] == '.':
aslist.append('.')
! self.pos += 1
elif self.field[self.pos] == '"':
aslist.append('"%s"' % self.getquote())
elif self.field[self.pos] in self.atomends:
break
! else:
! aslist.append(self.getatom())
self.gotonext()
if self.pos >= len(self.field) or self.field[self.pos] != '@':
! return EMPTYSTRING.join(aslist)
aslist.append('@')
! self.pos += 1
self.gotonext()
! return EMPTYSTRING.join(aslist) + self.getdomain()
def getdomain(self):
***************
*** 303,307 ****
while self.pos < len(self.field):
if self.field[self.pos] in self.LWS:
! self.pos = self.pos + 1
elif self.field[self.pos] == '(':
self.commentlist.append(self.getcomment())
--- 319,323 ----
while self.pos < len(self.field):
if self.field[self.pos] in self.LWS:
! self.pos += 1
elif self.field[self.pos] == '(':
self.commentlist.append(self.getcomment())
***************
*** 309,320 ****
sdlist.append(self.getdomainliteral())
elif self.field[self.pos] == '.':
! self.pos = self.pos + 1
sdlist.append('.')
elif self.field[self.pos] in self.atomends:
break
! else: sdlist.append(self.getatom())
! return ''.join(sdlist)
! def getdelimited(self, beginchar, endchars, allowcomments = 1):
"""Parse a header fragment delimited by special characters.
--- 325,337 ----
sdlist.append(self.getdomainliteral())
elif self.field[self.pos] == '.':
! self.pos += 1
sdlist.append('.')
elif self.field[self.pos] in self.atomends:
break
! else:
! sdlist.append(self.getatom())
! return EMPTYSTRING.join(sdlist)
! def getdelimited(self, beginchar, endchars, allowcomments=True):
"""Parse a header fragment delimited by special characters.
***************
*** 333,366 ****
slist = ['']
! quote = 0
! self.pos = self.pos + 1
while self.pos < len(self.field):
! if quote == 1:
slist.append(self.field[self.pos])
! quote = 0
elif self.field[self.pos] in endchars:
! self.pos = self.pos + 1
break
elif allowcomments and self.field[self.pos] == '(':
slist.append(self.getcomment())
elif self.field[self.pos] == '\\':
! quote = 1
else:
slist.append(self.field[self.pos])
! self.pos = self.pos + 1
! return ''.join(slist)
def getquote(self):
"""Get a quote-delimited fragment from self's field."""
! return self.getdelimited('"', '"\r', 0)
def getcomment(self):
"""Get a parenthesis-delimited fragment from self's field."""
! return self.getdelimited('(', ')\r', 1)
def getdomainliteral(self):
"""Parse an RFC 2822 domain-literal."""
! return '[%s]' % self.getdelimited('[', ']\r', 0)
def getatom(self, atomends=None):
--- 350,383 ----
slist = ['']
! quote = False
! self.pos += 1
while self.pos < len(self.field):
! if quote:
slist.append(self.field[self.pos])
! quote = False
elif self.field[self.pos] in endchars:
! self.pos += 1
break
elif allowcomments and self.field[self.pos] == '(':
slist.append(self.getcomment())
elif self.field[self.pos] == '\\':
! quote = True
else:
slist.append(self.field[self.pos])
! self.pos += 1
! return EMPTYSTRING.join(slist)
def getquote(self):
"""Get a quote-delimited fragment from self's field."""
! return self.getdelimited('"', '"\r', False)
def getcomment(self):
"""Get a parenthesis-delimited fragment from self's field."""
! return self.getdelimited('(', ')\r', True)
def getdomainliteral(self):
"""Parse an RFC 2822 domain-literal."""
! return '[%s]' % self.getdelimited('[', ']\r', False)
def getatom(self, atomends=None):
***************
*** 378,385 ****
if self.field[self.pos] in atomends:
break
! else: atomlist.append(self.field[self.pos])
! self.pos = self.pos + 1
! return ''.join(atomlist)
def getphraselist(self):
--- 395,403 ----
if self.field[self.pos] in atomends:
break
! else:
! atomlist.append(self.field[self.pos])
! self.pos += 1
! return EMPTYSTRING.join(atomlist)
def getphraselist(self):
***************
*** 394,398 ****
while self.pos < len(self.field):
if self.field[self.pos] in self.LWS:
! self.pos = self.pos + 1
elif self.field[self.pos] == '"':
plist.append(self.getquote())
--- 412,416 ----
while self.pos < len(self.field):
if self.field[self.pos] in self.LWS:
! self.pos += 1
elif self.field[self.pos] == '"':
plist.append(self.getquote())
***************
*** 401,405 ****
elif self.field[self.pos] in self.phraseends:
break
! else: plist.append(self.getatom(self.phraseends))
return plist
--- 419,424 ----
elif self.field[self.pos] in self.phraseends:
break
! else:
! plist.append(self.getatom(self.phraseends))
return plist
***************
*** 418,422 ****
def __str__(self):
! return ", ".join(map(dump_address_pair, self.addresslist))
def __add__(self, other):
--- 437,441 ----
def __str__(self):
! return COMMASPACE.join(map(dump_address_pair, self.addresslist))
def __add__(self, other):