I just found a possible bug in the identification of ester bonds.
Basically, the method OBBond.IsEster() returns true with
HOW TO REPRODUCE IT:
$ cat> testester.py << EOF import pybel ob = pybel.ob smi = [ 'OC(=O)', 'CC(O)=O', 'O=C(O)c1ccccc1'] for s in smi: mol = pybel.readstring('smi',s).OBMol for b in ob.OBMolBondIter(mol): if b.IsEster(): print "FOUND ESTER BOND" ^D $ python testester.py FOUND ESTER BOND
The test is positive with formic, acetic and benzoic acid, and it doesn't seem to be affected by the input format (I've tested Mol2).