Noel O'Boyle wrote:
Hi Chris,

I've just been following up a test failure (testsym.py) on Linux
related to CML roundtripping, presumably due to r3708.

It seems that a CML file with multiple molecules, when passed through
babel -icml myfile.cml -osmi, produces multiple SMIs on Windows or
Linux. However, if piped through babel it only works on Windows. In
other words...

(1) Windows: "type noel.txt | babel -icml -ocan" is fine
but
(2) Linux: "cat noel.txt | ../bin/babel -icml - -ocan" gives

***************************************************
:1: parser error : Extra content at the end of the document
a4" order="1"/>   <bond atomRefs2="a2 a5" order="1"/>  </bondArray> </molecule>
                                                                               ^
==============================
*** Open Babel Error  in XML Parser
  Extra content at the end of the document

C[C@@](F)(Cl)Br 
1 molecule converted
1 errors 1 info messages 42 audit log messages
***************************************************

Note that the error is actually at the end of </molecule>. noel.txt is attached.

Could this be another problem with line endings? The file noel.txt has 0D 0D 0A at the end of every line. Attached is a version with just 0A instead. Maybe that behaves differently? Otherwise, I don't know and with only Windows would find it difficult to debug Linux piping.

The change in r3708 was to do with multiple files and I would not expect it to be exercised with a single file. But libxml2 is a bit opaque to me, so it may be.

Chris



<?xml version="1.0"?>
<cml xmlns="http://www.xml-cml.org/schema";>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="C"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a4 a5">1</atomParity>
   </atom>
   <atom id="a3" elementType="Cl"/>
   <atom id="a4" elementType="Br"/>
   <atom id="a5" elementType="F"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="C"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a5 a4">1</atomParity>
   </atom>
   <atom id="a3" elementType="Cl"/>
   <atom id="a4" elementType="F"/>
   <atom id="a5" elementType="Br"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="C"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a5 a4">1</atomParity>
   </atom>
   <atom id="a3" elementType="Br"/>
   <atom id="a4" elementType="Cl"/>
   <atom id="a5" elementType="F"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="C"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a4 a5">1</atomParity>
   </atom>
   <atom id="a3" elementType="Br"/>
   <atom id="a4" elementType="F"/>
   <atom id="a5" elementType="Cl"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="C"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a4 a5">1</atomParity>
   </atom>
   <atom id="a3" elementType="F"/>
   <atom id="a4" elementType="Cl"/>
   <atom id="a5" elementType="Br"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="C"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a5 a4">1</atomParity>
   </atom>
   <atom id="a3" elementType="F"/>
   <atom id="a4" elementType="Br"/>
   <atom id="a5" elementType="Cl"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="Cl"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a5 a4">1</atomParity>
   </atom>
   <atom id="a3" elementType="C"/>
   <atom id="a4" elementType="Br"/>
   <atom id="a5" elementType="F"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="Cl"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a4 a5">1</atomParity>
   </atom>
   <atom id="a3" elementType="C"/>
   <atom id="a4" elementType="F"/>
   <atom id="a5" elementType="Br"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="Cl"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a4 a5">1</atomParity>
   </atom>
   <atom id="a3" elementType="Br"/>
   <atom id="a4" elementType="C"/>
   <atom id="a5" elementType="F"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="Cl"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a5 a4">1</atomParity>
   </atom>
   <atom id="a3" elementType="Br"/>
   <atom id="a4" elementType="F"/>
   <atom id="a5" elementType="C"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="Cl"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a5 a4">1</atomParity>
   </atom>
   <atom id="a3" elementType="F"/>
   <atom id="a4" elementType="C"/>
   <atom id="a5" elementType="Br"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="Cl"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a4 a5">1</atomParity>
   </atom>
   <atom id="a3" elementType="F"/>
   <atom id="a4" elementType="Br"/>
   <atom id="a5" elementType="C"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="Br"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a4 a5">1</atomParity>
   </atom>
   <atom id="a3" elementType="C"/>
   <atom id="a4" elementType="Cl"/>
   <atom id="a5" elementType="F"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="Br"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a5 a4">1</atomParity>
   </atom>
   <atom id="a3" elementType="C"/>
   <atom id="a4" elementType="F"/>
   <atom id="a5" elementType="Cl"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="Br"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a5 a4">1</atomParity>
   </atom>
   <atom id="a3" elementType="Cl"/>
   <atom id="a4" elementType="C"/>
   <atom id="a5" elementType="F"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="Br"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a4 a5">1</atomParity>
   </atom>
   <atom id="a3" elementType="Cl"/>
   <atom id="a4" elementType="F"/>
   <atom id="a5" elementType="C"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="Br"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a4 a5">1</atomParity>
   </atom>
   <atom id="a3" elementType="F"/>
   <atom id="a4" elementType="C"/>
   <atom id="a5" elementType="Cl"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="Br"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a5 a4">1</atomParity>
   </atom>
   <atom id="a3" elementType="F"/>
   <atom id="a4" elementType="Cl"/>
   <atom id="a5" elementType="C"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="F"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a5 a4">1</atomParity>
   </atom>
   <atom id="a3" elementType="C"/>
   <atom id="a4" elementType="Cl"/>
   <atom id="a5" elementType="Br"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="F"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a4 a5">1</atomParity>
   </atom>
   <atom id="a3" elementType="C"/>
   <atom id="a4" elementType="Br"/>
   <atom id="a5" elementType="Cl"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="F"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a4 a5">1</atomParity>
   </atom>
   <atom id="a3" elementType="Cl"/>
   <atom id="a4" elementType="C"/>
   <atom id="a5" elementType="Br"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="F"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a5 a4">1</atomParity>
   </atom>
   <atom id="a3" elementType="Cl"/>
   <atom id="a4" elementType="Br"/>
   <atom id="a5" elementType="C"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="F"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a5 a4">1</atomParity>
   </atom>
   <atom id="a3" elementType="Br"/>
   <atom id="a4" elementType="C"/>
   <atom id="a5" elementType="Cl"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
 <molecule>
  <atomArray>
   <atom id="a1" elementType="F"/>
   <atom id="a2" elementType="C">
    <atomParity atomRefs4="a1 a3 a4 a5">1</atomParity>
   </atom>
   <atom id="a3" elementType="Br"/>
   <atom id="a4" elementType="Cl"/>
   <atom id="a5" elementType="C"/>
  </atomArray>
  <bondArray>
   <bond atomRefs2="a1 a2" order="1"/>
   <bond atomRefs2="a2 a3" order="1"/>
   <bond atomRefs2="a2 a4" order="1"/>
   <bond atomRefs2="a2 a5" order="1"/>
  </bondArray>
 </molecule>
</cml>

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

_______________________________________________
OpenBabel-Devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbabel-devel

Reply via email to