<commit_before>#include "OpenMesh.hh"
#include <OpenMesh/src/Python/Bindings.cc>

//fix for msvc 2015 update 3, delete in future
namespace boost
{
    template <>
    OpenMesh::TriMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> const volatile * get_pointer<OpenMesh::TriMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> const volatile >(
        OpenMesh::TriMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> const volatile *c)
    {
        return c;
    }

}

#if (PY_MAJOR_VERSION == 2)
    PyObject* (*openmesh_pyinit_function)(void) = &OpenMesh::Python::initopenmesh;//untested
#elif (PY_MAJOR_VERSION == 3)
    PyObject* (*openmesh_pyinit_function)(void) = &OpenMesh::Python::PyInit_openmesh;
#endif<commit_msg>vs14 Update 3 compiler workaround for decimater<commit_after>#include "OpenMesh.hh"
#include <OpenMesh/src/Python/Bindings.cc>

#if (_MSC_VER == 1900 && !defined(DECL_BOOST_MISSING_GET_POINTER))
//workaround for msvc 2015 update 3
#define DECL_BOOST_MISSING_GET_POINTER(X)\
namespace boost\
{\
    template <>\
    X const volatile * get_pointer<X const volatile>(X const volatile *c)\
    {\
        return c;\
    }\
}

DECL_BOOST_MISSING_GET_POINTER(OpenMesh::TriMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits>)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::PolyConnectivity)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModAspectRatioT<OpenMesh::PolyMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModRoundnessT<class OpenMesh::TriMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModQuadricT<class OpenMesh::TriMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModProgMeshT<class OpenMesh::TriMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModNormalFlippingT<class OpenMesh::TriMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModNormalDeviationT<class OpenMesh::TriMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModIndependentSetsT<class OpenMesh::TriMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModHausdorffT<class OpenMesh::TriMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModEdgeLengthT<class OpenMesh::TriMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModAspectRatioT<class OpenMesh::TriMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModRoundnessT<class OpenMesh::PolyMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModQuadricT<class OpenMesh::PolyMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModProgMeshT<class OpenMesh::PolyMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModNormalFlippingT<class OpenMesh::PolyMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModNormalDeviationT<class OpenMesh::PolyMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModIndependentSetsT<class OpenMesh::PolyMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModHausdorffT<class OpenMesh::PolyMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
DECL_BOOST_MISSING_GET_POINTER(OpenMesh::Decimater::ModEdgeLengthT<class OpenMesh::PolyMesh_ArrayKernelT<struct OpenMesh::Python::MeshTraits> >)
#endif

#if (PY_MAJOR_VERSION == 2)
    PyObject* (*openmesh_pyinit_function)(void) = &OpenMesh::Python::initopenmesh;//untested
#elif (PY_MAJOR_VERSION == 3)
    PyObject* (*openmesh_pyinit_function)(void) = &OpenMesh::Python::PyInit_openmesh;
#endif
{'fraction_non_alphanumeric': 0.11611204213550395, 'fraction_numerical': 0.005027531721331099, 'mean_word_length': 13.210884353741497, 'pattern_counts': {'":': 0, '<': 49, '<?xml version=': 0, '>': 49, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3266750', 'n_tokens_mistral': 1506, 'n_tokens_neox': 1408, 'n_words': 149}