jlec        14/04/28 16:39:07

  Added:                ccpn-2.4.0_p140425-lxml.patch
  Log:
  sci-chemistry/ccpn: Add patch to allow lxml as xml provider
  
  (Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key 
B9D4F231BD1558AB!)

Revision  Changes    Path
1.1                  sci-chemistry/ccpn/files/ccpn-2.4.0_p140425-lxml.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-chemistry/ccpn/files/ccpn-2.4.0_p140425-lxml.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sci-chemistry/ccpn/files/ccpn-2.4.0_p140425-lxml.patch?rev=1.1&content-type=text/plain

Index: ccpn-2.4.0_p140425-lxml.patch
===================================================================
 ccpnmr2.4/python/ccpnmr/format/general/Conversion.py |  2 +-
 ccpnmr2.4/python/memops/metamodel/XmlModelIo.py      |  3 +++
 ccpnmr2.4/python/memops/universal/ElementTree.py     | 16 +++++++++++-----
 ccpnmr2.4/python/pdbe/xml/Util.py                    |  5 +----
 4 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/ccpnmr2.4/python/ccpnmr/format/general/Conversion.py 
b/ccpnmr2.4/python/ccpnmr/format/general/Conversion.py
index 4e9a13c..66f72d3 100644
--- a/ccpnmr2.4/python/ccpnmr/format/general/Conversion.py
+++ b/ccpnmr2.4/python/ccpnmr/format/general/Conversion.py
@@ -1969,7 +1969,7 @@ class FormatConversion(object):
 
   def runFromXml(self,xmlFileName,allowedFormats=None):
   
-    import xml.etree.ElementTree as ET
+    from memops.universal.ElementTree import ElementTree as ET
    
     root = ET.ElementTree(file=xmlFileName)
     
diff --git a/ccpnmr2.4/python/memops/metamodel/XmlModelIo.py 
b/ccpnmr2.4/python/memops/metamodel/XmlModelIo.py
index e09a873..05a77a1 100644
--- a/ccpnmr2.4/python/memops/metamodel/XmlModelIo.py
+++ b/ccpnmr2.4/python/memops/metamodel/XmlModelIo.py
@@ -329,6 +329,9 @@ class XmlModelRead(TextWriter_py_2_1.TextWriter_py_2_1):
       # handle contained elements
       for elem in modelElem:
         tag = elem.tag
+        # lxml also provides comments in addition to normal content
+        if tag is ElementTree.Comment:
+          continue
         if classNameMapping.get(tag) is None:
           # Element content - handle directly
         
diff --git a/ccpnmr2.4/python/memops/universal/ElementTree.py 
b/ccpnmr2.4/python/memops/universal/ElementTree.py
index 2452217..c53afde 100644
--- a/ccpnmr2.4/python/memops/universal/ElementTree.py
+++ b/ccpnmr2.4/python/memops/universal/ElementTree.py
@@ -3,14 +3,20 @@ dependent on Python version
 """
 
 try:
-  import xml.etree.cElementTree as ElementTree # in python >=2.5
+  from lxml import etree as ElementTree
 except ImportError:
   try:
-    from  xml.etree import ElementTree # in python >=2.5
+    import xml.etree.cElementTree as ElementTree # in python >=2.5
   except ImportError:
-    from elementtree import ElementTree # effbot's pure Python module
+    try:
+      from  xml.etree import ElementTree # in python >=2.5
+    except ImportError:
+      from elementtree import ElementTree # effbot's pure Python module
 
 try:
-  from  xml.etree import ElementInclude # in python >=2.5
+  from lxml import ElementInclude
 except ImportError:
-  from elementtree import ElementInclude # effbot's pure Python module
+  try:
+    from  xml.etree import ElementInclude # in python >=2.5
+  except ImportError:
+    from elementtree import ElementInclude # effbot's pure Python module
diff --git a/ccpnmr2.4/python/pdbe/xml/Util.py 
b/ccpnmr2.4/python/pdbe/xml/Util.py
index eb36031..bc82b01 100644
--- a/ccpnmr2.4/python/pdbe/xml/Util.py
+++ b/ccpnmr2.4/python/pdbe/xml/Util.py
@@ -1,9 +1,6 @@
 import sys, codecs
 
-from xml.etree.ElementTree import ElementTree
-#from xml.etree import ElementTree # Use this on flynn
-#import xml.etree.ElementTree as ET
-#import elementtree.ElementTree as ET
+from memops.universal.ElementTree import ElementTree
 
 #
 # Generic class to loop through elements/values of an XML ElementTree




Reply via email to