SourceForge.net | 31 Jul 2012 07:08
Picon

[ docutils-Bugs-3552403 ] Docutils incompatible with PyXML

Bugs item #3552403, was opened at 2012-07-30 22:08
Message generated for change (Tracker Item Submitted) made by abadger1999
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=422030&aid=3552403&group_id=38414

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Toshio Kuratomi (abadger1999)
Assigned to: Nobody/Anonymous (nobody)
Summary: Docutils incompatible with PyXML

Initial Comment:
When PyXML is installed, docutils fails its test suite.  PyXML is likely at fault here as it is dead upstream
and likely contains bugs that have been fixed in the python stdlib.  Unfortunately, the python stdlib
replaces its own xml module with the PyXML module if that module is installed.  I'll attach a patch that
causes python to prefer the stdlib python xml code over the PyXML code.  Traceback follows (note: I've seen
this traceback on the mailing list before... we just didn't have a reproducer at that time):

======================================================================
ERROR: test_invalid_raw_xml (test_writers.test_docutils_xml.DocutilsXMLTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/srv/git/python-docutils/docutils-0.10/test/test_writers/test_docutils_xml.py", line
181, in test_invalid_raw_xml
    result = publish_xml(settings, invalid_raw_xml_source)
  File "/srv/git/python-docutils/docutils-0.10/test/test_writers/test_docutils_xml.py", line
127, in publish_xml
    settings_overrides=settings)
  File "/srv/git/python-docutils/docutils-0.10/docutils/core.py", line 414, in publish_string
    enable_exit_status=enable_exit_status)
  File "/srv/git/python-docutils/docutils-0.10/docutils/core.py", line 662, in publish_programmatically
    output = pub.publish(enable_exit_status=enable_exit_status)
  File "/srv/git/python-docutils/docutils-0.10/docutils/core.py", line 219, in publish
    output = self.writer.write(self.document, self.destination)
  File "/srv/git/python-docutils/docutils-0.10/docutils/writers/__init__.py", line 80, in write
    self.translate()
  File "/srv/git/python-docutils/docutils-0.10/docutils/writers/docutils_xml.py", line 61, in translate
    self.document.walkabout(visitor)
  File "/srv/git/python-docutils/docutils-0.10/docutils/nodes.py", line 173, in walkabout
    if child.walkabout(visitor):
  File "/srv/git/python-docutils/docutils-0.10/docutils/nodes.py", line 165, in walkabout
    visitor.dispatch_visit(self)
  File "/srv/git/python-docutils/docutils-0.10/docutils/nodes.py", line 1611, in dispatch_visit
    return method(node)
  File "/srv/git/python-docutils/docutils-0.10/docutils/writers/docutils_xml.py", line 171, in visit_raw
    col_num, line_num, node.astext())
TypeError: %d format: a number is required, not NoneType

======================================================================
ERROR: test_publish (test_writers.test_docutils_xml.DocutilsXMLTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/srv/git/python-docutils/docutils-0.10/test/test_writers/test_docutils_xml.py", line
155, in test_publish
    result = publish_xml(settings, source)
  File "/srv/git/python-docutils/docutils-0.10/test/test_writers/test_docutils_xml.py", line
127, in publish_xml
    settings_overrides=settings)
  File "/srv/git/python-docutils/docutils-0.10/docutils/core.py", line 414, in publish_string
    enable_exit_status=enable_exit_status)
  File "/srv/git/python-docutils/docutils-0.10/docutils/core.py", line 662, in publish_programmatically
    output = pub.publish(enable_exit_status=enable_exit_status)
  File "/srv/git/python-docutils/docutils-0.10/docutils/core.py", line 219, in publish
    output = self.writer.write(self.document, self.destination)
  File "/srv/git/python-docutils/docutils-0.10/docutils/writers/__init__.py", line 80, in write
    self.translate()
  File "/srv/git/python-docutils/docutils-0.10/docutils/writers/docutils_xml.py", line 60, in translate
    self.visitor = visitor = self.translator_class(self.document)
  File "/srv/git/python-docutils/docutils-0.10/docutils/writers/docutils_xml.py", line 110, in __init__
    self.xmlparser.setContentHandler(self.the_handle)
  File "/usr/lib64/python2.7/site-packages/_xmlplus/sax/expatreader.py", line 128, in setContentHandler
    self._reset_cont_handler()
  File "/usr/lib64/python2.7/site-packages/_xmlplus/sax/expatreader.py", line 234, in _reset_cont_handler
    self._cont_handler.processingInstruction
AttributeError: 'NoneType' object has no attribute 'ProcessingInstructionHandler'

======================================================================
ERROR: test_publish_indents (test_writers.test_docutils_xml.DocutilsXMLTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/srv/git/python-docutils/docutils-0.10/test/test_writers/test_docutils_xml.py", line
161, in test_publish_indents
    result = publish_xml(settings, source)
  File "/srv/git/python-docutils/docutils-0.10/test/test_writers/test_docutils_xml.py", line
127, in publish_xml
    settings_overrides=settings)
  File "/srv/git/python-docutils/docutils-0.10/docutils/core.py", line 414, in publish_string
    enable_exit_status=enable_exit_status)
  File "/srv/git/python-docutils/docutils-0.10/docutils/core.py", line 662, in publish_programmatically
    output = pub.publish(enable_exit_status=enable_exit_status)
  File "/srv/git/python-docutils/docutils-0.10/docutils/core.py", line 219, in publish
    output = self.writer.write(self.document, self.destination)
  File "/srv/git/python-docutils/docutils-0.10/docutils/writers/__init__.py", line 80, in write
    self.translate()
  File "/srv/git/python-docutils/docutils-0.10/docutils/writers/docutils_xml.py", line 60, in translate
    self.visitor = visitor = self.translator_class(self.document)
  File "/srv/git/python-docutils/docutils-0.10/docutils/writers/docutils_xml.py", line 110, in __init__
    self.xmlparser.setContentHandler(self.the_handle)
  File "/usr/lib64/python2.7/site-packages/_xmlplus/sax/expatreader.py", line 128, in setContentHandler
    self._reset_cont_handler()
  File "/usr/lib64/python2.7/site-packages/_xmlplus/sax/expatreader.py", line 234, in _reset_cont_handler
    self._cont_handler.processingInstruction
AttributeError: 'NoneType' object has no attribute 'ProcessingInstructionHandler'

======================================================================
ERROR: test_publish_newlines (test_writers.test_docutils_xml.DocutilsXMLTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/srv/git/python-docutils/docutils-0.10/test/test_writers/test_docutils_xml.py", line
167, in test_publish_newlines
    result = publish_xml(settings, source)
  File "/srv/git/python-docutils/docutils-0.10/test/test_writers/test_docutils_xml.py", line
127, in publish_xml
    settings_overrides=settings)
  File "/srv/git/python-docutils/docutils-0.10/docutils/core.py", line 414, in publish_string
    enable_exit_status=enable_exit_status)
  File "/srv/git/python-docutils/docutils-0.10/docutils/core.py", line 662, in publish_programmatically
    output = pub.publish(enable_exit_status=enable_exit_status)
  File "/srv/git/python-docutils/docutils-0.10/docutils/core.py", line 219, in publish
    output = self.writer.write(self.document, self.destination)
  File "/srv/git/python-docutils/docutils-0.10/docutils/writers/__init__.py", line 80, in write
    self.translate()
  File "/srv/git/python-docutils/docutils-0.10/docutils/writers/docutils_xml.py", line 60, in translate
    self.visitor = visitor = self.translator_class(self.document)
  File "/srv/git/python-docutils/docutils-0.10/docutils/writers/docutils_xml.py", line 110, in __init__
    self.xmlparser.setContentHandler(self.the_handle)
  File "/usr/lib64/python2.7/site-packages/_xmlplus/sax/expatreader.py", line 128, in setContentHandler
    self._reset_cont_handler()
  File "/usr/lib64/python2.7/site-packages/_xmlplus/sax/expatreader.py", line 234, in _reset_cont_handler
    self._cont_handler.processingInstruction
AttributeError: 'NoneType' object has no attribute 'ProcessingInstructionHandler'

======================================================================
ERROR: test_raw_xml (test_writers.test_docutils_xml.DocutilsXMLTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/srv/git/python-docutils/docutils-0.10/test/test_writers/test_docutils_xml.py", line
172, in test_raw_xml
    result = publish_xml(self.settings, raw_xml_source)
  File "/srv/git/python-docutils/docutils-0.10/test/test_writers/test_docutils_xml.py", line
127, in publish_xml
    settings_overrides=settings)
  File "/srv/git/python-docutils/docutils-0.10/docutils/core.py", line 414, in publish_string
    enable_exit_status=enable_exit_status)
  File "/srv/git/python-docutils/docutils-0.10/docutils/core.py", line 662, in publish_programmatically
    output = pub.publish(enable_exit_status=enable_exit_status)
  File "/srv/git/python-docutils/docutils-0.10/docutils/core.py", line 219, in publish
    output = self.writer.write(self.document, self.destination)
  File "/srv/git/python-docutils/docutils-0.10/docutils/writers/__init__.py", line 80, in write
    self.translate()
  File "/srv/git/python-docutils/docutils-0.10/docutils/writers/docutils_xml.py", line 60, in translate
    self.visitor = visitor = self.translator_class(self.document)
  File "/srv/git/python-docutils/docutils-0.10/docutils/writers/docutils_xml.py", line 110, in __init__
    self.xmlparser.setContentHandler(self.the_handle)
  File "/usr/lib64/python2.7/site-packages/_xmlplus/sax/expatreader.py", line 128, in setContentHandler
    self._reset_cont_handler()
  File "/usr/lib64/python2.7/site-packages/_xmlplus/sax/expatreader.py", line 234, in _reset_cont_handler
    self._cont_handler.processingInstruction
AttributeError: 'NoneType' object has no attribute 'ProcessingInstructionHandler'

----------------------------------------------------------------------

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=422030&aid=3552403&group_id=38414

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/

Gmane