import os
import numpy
import sysconfig
from Cython . Build import cythonize
from Cython . Distutils import build_ext
from distutils . core import Extension , setup # pylint: disable=import-error,no-name-in-module
def get_ext_filename_without_platform_suffix ( filename ) :
name , ext = os . path . splitext ( filename )
ext_suffix = sysconfig . get_config_var ( ' EXT_SUFFIX ' )
if ext_suffix == ext :
return filename
ext_suffix = ext_suffix . replace ( ext , ' ' )
idx = name . find ( ext_suffix )
if idx == - 1 :
return filename
else :
return name [ : idx ] + ext
class BuildExtWithoutPlatformSuffix ( build_ext ) :
def get_ext_filename ( self , ext_name ) :
filename = super ( ) . get_ext_filename ( ext_name )
return get_ext_filename_without_platform_suffix ( filename )
setup (
name = ' Cython transformations wrapper ' ,
cmdclass = { ' build_ext ' : BuildExtWithoutPlatformSuffix } ,
ext_modules = cythonize (
Extension (
" transformations " ,
sources = [ " transformations.pyx " ] ,
language = " c++ " ,
extra_compile_args = [ " -std=c++14 " , " -Wno-nullability-completeness " ] ,
include_dirs = [ numpy . get_include ( ) ] ,
)
) )