[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):