#include "v2.h" namespace NPyBind { namespace Detail { TVector GetParentTypes(const TVector& parentsData) { TVector res; Transform( parentsData.begin(), parentsData.end(), back_inserter(res), [](const TParentData& el) { return el.ParentType; } ); return res; } TString DefaultParentResolver(const TString&, const THashSet& parentModules) { return *parentModules.begin(); } template void UpdateClassNamesInModule(TPyModuleDefinition& M, const TString& name, PyTypeObject* pythonType) { if (!InitEnabled) { return; } M.ClassName2Type[name] = pythonType; } template void UpdateGetContextInModule(TPyModuleDefinition& M, const TString& name, IGetContextBase* base) { if (!InitEnabled) { return; } M.Class2ContextGetter[name] = base; } TPyModuleRegistry::TPyModuleRegistry() { #if PY_MAJOR_VERSION >= 3 NPrivate::AddFinalizationCallBack([this]() { if (UnnamedModule) { UnnamedModule.Clear(); } Name2Def.clear(); }); #endif } template void UpdateClassNamesInModule(TPyModuleDefinition& M, const TString& name, PyTypeObject* pythonType); template void UpdateClassNamesInModule(TPyModuleDefinition& M, const TString& name, PyTypeObject* pythonType); template void UpdateGetContextInModule(TPyModuleDefinition& M, const TString& name, IGetContextBase* pythonType); template void UpdateGetContextInModule(TPyModuleDefinition& M, const TString& name, IGetContextBase* pythonType); }//Detail }//NPyBind