// we don't actually wrap the existing init, but rather reimplement it // here using clear() and addPath(), so that we can support a mixture // of strings and InternedStringVectorData. static void initWrapper( PathMatcher &m, boost::python::object paths ) { m.clear(); for( size_t i = 0, e = len( paths ); i < e; ++i ) { object path = paths[i]; extract<const char *> stringExtractor( path ); if( stringExtractor.check() ) { m.addPath( stringExtractor() ); } else { IECore::ConstInternedStringVectorDataPtr d = extract<IECore::ConstInternedStringVectorDataPtr>( path ); m.addPath( d->readable() ); } } }