[Python-checkins] CVS: python/dist/src/Lib netrc.py,1.10,1.11

Fred L. Drake fdrake@users.sourceforge.net
Mon, 05 Mar 2001 22:33:10 -0800


Update of /cvsroot/python/python/dist/src/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv14003/Lib

Modified Files:
	netrc.py 
Log Message:

Define & use NetrcParseError instead of improperly overloading SyntaxError.
Always has the lineno and filename of the source text.


Index: netrc.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/netrc.py,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -r1.10 -r1.11
*** netrc.py	2001/02/06 01:07:01	1.10
--- netrc.py	2001/03/06 06:33:08	1.11
***************
*** 5,10 ****
  import os, shlex
  
! __all__ = ["netrc"]
  
  class netrc:
      def __init__(self, file=None):
--- 5,23 ----
  import os, shlex
  
! __all__ = ["netrc", "NetrcParseError"]
  
+ 
+ class NetrcParseError(Exception):
+     """Exception raised on syntax errors in the .netrc file."""
+     def __init__(self, msg, filename=None, lineno=None):
+         self.filename = file
+         self.lineno = lineno
+         self.msg = msg
+         Exception.__init__(self, msg)
+ 
+     def __str__(self):
+         return "%s (%s, line %s)" % (self.msg, self.filename, self.lineno)
+ 
+ 
  class netrc:
      def __init__(self, file=None):
***************
*** 38,43 ****
                      self.macros[entryname].append(line)
              else:
!                 raise SyntaxError, "bad toplevel token %s, file %s, line %d" \
!                                         % (tt, file, lexer.lineno)
  
              # We're looking at start of an entry for a named machine or default.
--- 51,56 ----
                      self.macros[entryname].append(line)
              else:
!                 raise NetrcParseError(
!                     "bad toplevel token %r" % tt, file, lexer.lineno)
  
              # We're looking at start of an entry for a named machine or default.
***************
*** 55,59 ****
                          break
                      else:
!                         raise SyntaxError, "malformed %s entry %s terminated by %s" % (toplevel, entryname, repr(tt))
                  elif tt == 'login' or tt == 'user':
                      login = lexer.get_token()
--- 68,75 ----
                          break
                      else:
!                         raise NetrcParseError(
!                             "malformed %s entry %s terminated by %s"
!                             % (toplevel, entryname, repr(tt)),
!                             file, lexer.lineno)
                  elif tt == 'login' or tt == 'user':
                      login = lexer.get_token()
***************
*** 63,67 ****
                      password = lexer.get_token()
                  else:
!                     raise SyntaxError, "bad follower token %s, file %s, line %d"%(tt,file,lexer.lineno)
  
      def authenticators(self, host):
--- 79,84 ----
                      password = lexer.get_token()
                  else:
!                     raise NetrcParseError("bad follower token %r" % tt,
!                                           file, lexer.lineno)
  
      def authenticators(self, host):