[Python-checkins] CVS: python/dist/src/Lib/xml/sax _exceptions.py,1.7,1.8 expatreader.py,1.20,1.21 xmlreader.py,1.12,1.13

Martin v. Löwis loewis@users.sourceforge.net
Sat, 27 Jan 2001 00:56:26 -0800


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

Modified Files:
	_exceptions.py expatreader.py xmlreader.py 
Log Message:
Synchronize with PyXML 1.5.


Index: _exceptions.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/xml/sax/_exceptions.py,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** _exceptions.py	2000/10/23 18:09:50	1.7
--- _exceptions.py	2001/01/27 08:56:24	1.8
***************
*** 22,25 ****
--- 22,26 ----
          self._msg = msg
          self._exception = exception
+         Exception.__init__(self, msg)
  
      def getMessage(self):

Index: expatreader.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/xml/sax/expatreader.py,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -r1.20 -r1.21
*** expatreader.py	2000/10/23 18:09:50	1.20
--- expatreader.py	2001/01/27 08:56:24	1.21
***************
*** 28,31 ****
--- 28,32 ----
          self._parser = None
          self._namespaces = namespaceHandling
+         self._lex_handler_prop = None
          self._parsing = 0
          self._entity_stack = []
***************
*** 61,68 ****
  
      def getProperty(self, name):
          raise SAXNotRecognizedException("Property '%s' not recognized" % name)
  
      def setProperty(self, name, value):
!         raise SAXNotRecognizedException("Property '%s' not recognized" % name)
  
      # IncrementalParser methods
--- 62,74 ----
  
      def getProperty(self, name):
+         if name == handler.property_lexical_handler:
+             return self._lex_handler_prop
          raise SAXNotRecognizedException("Property '%s' not recognized" % name)
  
      def setProperty(self, name, value):
!         if name == handler.property_lexical_handler:
!             self._lex_handler_prop = value
!         else:
!             raise SAXNotRecognizedException("Property '%s' not recognized" % name)
  
      # IncrementalParser methods
***************
*** 83,86 ****
--- 89,93 ----
              error_code = self._parser.ErrorCode
              exc = SAXParseException(expat.ErrorString(error_code), None, self)
+             # FIXME: when to invoke error()?
              self._err_handler.fatalError(exc)
  
***************
*** 92,95 ****
--- 99,104 ----
          self._cont_handler.endDocument()
          self._parsing = 0
+         # break cycle created by expat handlers pointing to our methods
+         self._parser = None
  
      def reset(self):
***************
*** 110,119 ****
          self._parser.StartNamespaceDeclHandler = self.start_namespace_decl
          self._parser.EndNamespaceDeclHandler = self.end_namespace_decl
! #         self._parser.CommentHandler =
! #         self._parser.StartCdataSectionHandler =
! #         self._parser.EndCdataSectionHandler =
! #         self._parser.DefaultHandler =
! #         self._parser.DefaultHandlerExpand =
! #         self._parser.NotStandaloneHandler =
          self._parser.ExternalEntityRefHandler = self.external_entity_ref
  
--- 119,131 ----
          self._parser.StartNamespaceDeclHandler = self.start_namespace_decl
          self._parser.EndNamespaceDeclHandler = self.end_namespace_decl
!         
!         self._decl_handler_prop = None
!         if self._lex_handler_prop:
!             self._parser.CommentHandler = self._lex_handler_prop.comment
!             self._parser.StartCdataSectionHandler = self._lex_handler_prop.startCDATA
!             self._parser.EndCdataSectionHandler = self._lex_handler_prop.endCDATA
! #         self._parser.DefaultHandler = 
! #         self._parser.DefaultHandlerExpand = 
! #         self._parser.NotStandaloneHandler = 
          self._parser.ExternalEntityRefHandler = self.external_entity_ref
  
***************
*** 124,130 ****
--- 136,146 ----
  
      def getColumnNumber(self):
+         if self._parser is None:
+             return None
          return self._parser.ErrorColumnNumber
  
      def getLineNumber(self):
+         if self._parser is None:
+             return 1
          return self._parser.ErrorLineNumber
  
***************
*** 166,169 ****
--- 182,187 ----
          if len(pair) == 1:
              pair = (None, name)
+         else:
+             pair = tuple(pair)
  
          self._cont_handler.endElementNS(pair, None)

Index: xmlreader.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/xml/sax/xmlreader.py,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -r1.12 -r1.13
*** xmlreader.py	2000/12/13 20:48:29	1.12
--- xmlreader.py	2001/01/27 08:56:24	1.13
***************
*** 257,261 ****
      def setCharacterStream(self, charfile):
          """Set the character stream for this input source. (The stream
!         must be a Python 1.6 Unicode-wrapped file-like that performs
          conversion to Unicode strings.)
  
--- 257,261 ----
      def setCharacterStream(self, charfile):
          """Set the character stream for this input source. (The stream
!         must be a Python 2.0 Unicode-wrapped file-like that performs
          conversion to Unicode strings.)