diff --git a/Code/GraphMol/ChemReactions/Wrap/Enumerate.cpp b/Code/GraphMol/ChemReactions/Wrap/Enumerate.cpp index b56baf8ab..4cf9fcb31 100644 --- a/Code/GraphMol/ChemReactions/Wrap/Enumerate.cpp +++ b/Code/GraphMol/ChemReactions/Wrap/Enumerate.cpp @@ -142,8 +142,6 @@ struct enumeration_wrapper { static void wrap() { std::string docString; - RegisterVectorConverter>("VectorOfStringVectors"); - RegisterVectorConverter("VectSizeT"); RegisterVectorConverter("VectMolVect"); python::class_::second) .def("__getitem__", &GetMatchVectItem, python::args("self", "idx")); - RegisterVectorConverter>("MatchTypeVect"); - python::class_>( "FilterMatch", FilterMatchDoc, python::init, MatchVectType>( diff --git a/Code/GraphMol/TautomerQuery/Wrap/rdTautomerQuery.cpp b/Code/GraphMol/TautomerQuery/Wrap/rdTautomerQuery.cpp index a03354b5e..ba05fe4f7 100644 --- a/Code/GraphMol/TautomerQuery/Wrap/rdTautomerQuery.cpp +++ b/Code/GraphMol/TautomerQuery/Wrap/rdTautomerQuery.cpp @@ -169,8 +169,6 @@ python::object TQToBinary(const TautomerQuery &tq) { struct TautomerQuery_wrapper { static void wrap() { - RegisterVectorConverter("UnsignedLong_Vect"); - auto docString = "The Tautomer Query Class.\n\ Creates a query that enables structure search accounting for matching of\n\ diff --git a/Code/RDBoost/Wrap/RDBase.cpp b/Code/RDBoost/Wrap/RDBase.cpp index beda46d6e..d7ebcdc65 100644 --- a/Code/RDBoost/Wrap/RDBase.cpp +++ b/Code/RDBoost/Wrap/RDBase.cpp @@ -257,11 +257,20 @@ BOOST_PYTHON_MODULE(rdBase) { RDLog::InitLogs(); RegisterVectorConverter(); RegisterVectorConverter(); + RegisterVectorConverter("UnsignedLong_Vect"); + RegisterVectorConverter("VectSizeT"); + + RegisterVectorConverter(); RegisterVectorConverter(1); RegisterVectorConverter>(); RegisterVectorConverter>(); RegisterVectorConverter>(); + RegisterVectorConverter>("VectorOfStringVectors"); + + RegisterVectorConverter>("MatchTypeVect"); + + path_converter(); RegisterListConverter(); diff --git a/rdkit/Chem/FilterCatalog.py b/rdkit/Chem/FilterCatalog.py index 6c46ea98c..c0cd53607 100644 --- a/rdkit/Chem/FilterCatalog.py +++ b/rdkit/Chem/FilterCatalog.py @@ -8,9 +8,9 @@ # import sys -from rdkit import Chem +from rdkit import Chem, rdBase from rdkit.Chem.rdfiltercatalog import * - +MatchTypeVect = rdBase.MatchTypeVect class FilterMatcher(PythonFilterMatcher): """FilterMatcher - This class allows creation of Python based diff --git a/rdkit/__init__.py b/rdkit/__init__.py index 946a1c7fd..61827080b 100644 --- a/rdkit/__init__.py +++ b/rdkit/__init__.py @@ -59,8 +59,10 @@ class VectIter: def __vect__iter__(vect): return VectIter(vect) +VECT_WRAPS = {'MatchTypeVect', 'UnsignedLong_Vect', 'VectSizeT', 'VectorOfStringVectors'} + for name, object in vars(rdBase).items(): - if name.startswith("_list") or name.startswith("_vect"): + if name.startswith("_list") or name.startswith("_vect") or name in VECT_WRAPS: if hasattr(object, "__iter__"): object.__iter__ = __vect__iter__