From ec627084848d9c5f117e5afd6404c24ba6c977de Mon Sep 17 00:00:00 2001 From: Greg Landrum Date: Tue, 20 Oct 2015 06:40:45 -0400 Subject: [PATCH] fix NodeLib --- Data/RDTests.sqlt | Bin 45056 -> 45056 bytes rdkit/VLib/NodeLib/SDSupply.py | 6 +++++- rdkit/VLib/NodeLib/SmartsMolFilter.py | 5 ++++- rdkit/VLib/NodeLib/SmartsRemover.py | 7 ++++++- rdkit/VLib/NodeLib/SmilesDupeFilter.py | 3 +++ rdkit/VLib/NodeLib/SmilesOutput.py | 14 +++++++++----- rdkit/VLib/NodeLib/SmilesSupply.py | 6 +++++- rdkit/VLib/NodeLib/test_list.py | 6 ++++++ 8 files changed, 38 insertions(+), 9 deletions(-) diff --git a/Data/RDTests.sqlt b/Data/RDTests.sqlt index 4aad6545bd974b40820578ea706dc81d0a64edc4..b2fb98490dd2ea46fd8385cb10dcacfd5bfddca5 100755 GIT binary patch delta 35 kcmZp8z|`=7X@az1BLf424iqy2>70o=#*B>{6Beuo0GNyjnE(I) delta 35 kcmZp8z|`=7X@az1H3I{K4iqy2>5Pdw#*Eb)6Beuo0GFx=i2wiq diff --git a/rdkit/VLib/NodeLib/SDSupply.py b/rdkit/VLib/NodeLib/SDSupply.py index 41afa724c..181baf146 100755 --- a/rdkit/VLib/NodeLib/SDSupply.py +++ b/rdkit/VLib/NodeLib/SDSupply.py @@ -4,6 +4,7 @@ # All Rights Reserved # import sys,os.path +from rdkit import six from rdkit import RDConfig from rdkit.VLib.Supply import SupplyNode from rdkit import Chem @@ -42,7 +43,10 @@ class SDSupplyNode(SupplyNode): """ """ - return self._supplier.next() + return next(self._supplier) + +if six.PY3: + SDSupplyNode.__next__ = SDSupplyNode.next #------------------------------------ diff --git a/rdkit/VLib/NodeLib/SmartsMolFilter.py b/rdkit/VLib/NodeLib/SmartsMolFilter.py index fe4f4223c..c69f98d48 100755 --- a/rdkit/VLib/NodeLib/SmartsMolFilter.py +++ b/rdkit/VLib/NodeLib/SmartsMolFilter.py @@ -4,6 +4,7 @@ # All Rights Reserved # from rdkit import RDConfig +from rdkit import six import sys,os,types from rdkit import Chem from rdkit.VLib.Filter import FilterNode @@ -69,7 +70,7 @@ class SmartsFilter(FilterNode): for i in range(nPatts): p = patterns[i] c = counts[i] - if type(p) in types.StringTypes: + if type(p) in (str,bytes): m = Chem.MolFromSmarts(p) if not m: raise ValueError('bad smarts: %s'%(p)) @@ -89,6 +90,8 @@ class SmartsFilter(FilterNode): res = 1 break return res +if six.PY3: + SmartsFilter.__next__ = SmartsFilter.next #------------------------------------ # diff --git a/rdkit/VLib/NodeLib/SmartsRemover.py b/rdkit/VLib/NodeLib/SmartsRemover.py index 335fc50bd..e90393fd5 100755 --- a/rdkit/VLib/NodeLib/SmartsRemover.py +++ b/rdkit/VLib/NodeLib/SmartsRemover.py @@ -4,6 +4,7 @@ # All Rights Reserved # from rdkit import RDConfig +from rdkit import six import sys,os,types from rdkit import Chem from rdkit.VLib.Transform import TransformNode @@ -84,7 +85,7 @@ class SmartsRemover(TransformNode): targets = [None]*nPatts for i in range(nPatts): p = patterns[i] - if type(p) in types.StringTypes: + if type(p) in (str,bytes): m = Chem.MolFromSmarts(p) if not m: raise ValueError('bad smarts: %s'%(p)) @@ -99,6 +100,10 @@ class SmartsRemover(TransformNode): #sys.stderr.write('\t\tAfter %s: %s\n'%(Chem.MolToSmiles(patt),Chem.MolToSmiles(cmpd))) return cmpd + +if six.PY3: + SmartsRemover.__next__ = SmartsRemover.next + biggerTest=""" >>> smis = ['CCOC','CCO.Cl','CC(=O)[O-].[Na+]','OCC','C[N+](C)(C)C.[Cl-]'] diff --git a/rdkit/VLib/NodeLib/SmilesDupeFilter.py b/rdkit/VLib/NodeLib/SmilesDupeFilter.py index b979960df..36e1c7e0c 100755 --- a/rdkit/VLib/NodeLib/SmilesDupeFilter.py +++ b/rdkit/VLib/NodeLib/SmilesDupeFilter.py @@ -4,6 +4,7 @@ # All Rights Reserved # from rdkit import RDConfig +from rdkit import six import sys,os from rdkit import Chem from rdkit.VLib.Filter import FilterNode @@ -52,6 +53,8 @@ class DupeFilter(FilterNode): else: return 0 +if six.PY3: + DupeFilter.__next__ = DupeFilter.next #------------------------------------ # # doctest boilerplate diff --git a/rdkit/VLib/NodeLib/SmilesOutput.py b/rdkit/VLib/NodeLib/SmilesOutput.py index 8337a20dc..3661f95c3 100755 --- a/rdkit/VLib/NodeLib/SmilesOutput.py +++ b/rdkit/VLib/NodeLib/SmilesOutput.py @@ -5,6 +5,8 @@ # import sys,types from rdkit import Chem +from rdkit import six + from rdkit.VLib.Output import OutputNode as BaseOutputNode @@ -23,14 +25,14 @@ class OutputNode(BaseOutputNode): >>> mols = [Chem.MolFromSmiles(x) for x in smis] >>> from rdkit.VLib.Supply import SupplyNode >>> suppl = SupplyNode(contents=mols) - >>> import StringIO - >>> io = StringIO.StringIO() - >>> node = OutputNode(dest=io,delim=', ') + >>> from io import StringIO + >>> sio = StringIO() + >>> node = OutputNode(dest=sio,delim=', ') >>> node.AddParent(suppl) >>> ms = [x for x in node] >>> len(ms) 4 - >>> txt = io.getvalue() + >>> txt = sio.getvalue() >>> repr(txt) "'1, C1CCC1\\\\n2, C1CC1\\\\n3, C=O\\\\n4, CCN\\\\n'" @@ -48,7 +50,7 @@ class OutputNode(BaseOutputNode): def smilesOut(self,mol): self._nDumped += 1 - if type(mol) in [types.TupleType,types.ListType]: + if type(mol) in (tuple,list): args = mol mol = args[0] if len(args)>1: @@ -66,6 +68,8 @@ class OutputNode(BaseOutputNode): outp = [label,smi]+args return '%s\n'%(self._delim.join(outp)) +if six.PY3: + OutputNode.__next__ = OutputNode.next #------------------------------------ # diff --git a/rdkit/VLib/NodeLib/SmilesSupply.py b/rdkit/VLib/NodeLib/SmilesSupply.py index ab0874345..1263fb6dd 100755 --- a/rdkit/VLib/NodeLib/SmilesSupply.py +++ b/rdkit/VLib/NodeLib/SmilesSupply.py @@ -7,6 +7,8 @@ import sys,os.path from rdkit import RDConfig from rdkit.VLib.Supply import SupplyNode from rdkit import Chem +from rdkit import six + class SmilesSupplyNode(SupplyNode): """ Smiles supplier @@ -52,9 +54,11 @@ class SmilesSupplyNode(SupplyNode): """ r = None while not r: - r = self._supplier.next() + r = next(self._supplier) return r +if six.PY3: + SmilesSupplyNode.__next__ = SmilesSupplyNode.next #------------------------------------ # diff --git a/rdkit/VLib/NodeLib/test_list.py b/rdkit/VLib/NodeLib/test_list.py index f529e83b6..47c67c2a8 100755 --- a/rdkit/VLib/NodeLib/test_list.py +++ b/rdkit/VLib/NodeLib/test_list.py @@ -13,3 +13,9 @@ tests=[ longTests=[ ] + +if __name__=='__main__': + import sys + from rdkit import TestRunner + failed,tests = TestRunner.RunScript('test_list.py',0,1) + sys.exit(len(failed))