def cythonize(source, includes=(), output_h=os.curdir): name, ext = os.path.splitext(source) output_c = name + '.c' # from Cython.Compiler.Main import \ CompilationOptions, default_options, \ compile, \ PyrexError # options = CompilationOptions(default_options) options.output_file = output_c options.include_path = includes # from Cython.Compiler import Options Options.generate_cleanup_code = 3 # any_failures = 0 try: result = compile(source, options) if result.num_errors > 0: any_failures = 1 except (EnvironmentError, PyrexError), e: sys.stderr.write(str(e) + '\n') any_failures = 1
def cythonize(source, includes=(), destdir_c=None, destdir_h=None, wdir=None): from Cython.Compiler.Main import \ CompilationOptions, default_options, \ compile, \ PyrexError from Cython.Compiler import Options cwd = os.getcwd() try: name, ext = os.path.splitext(source) outputs_c = [name+'.c'] outputs_h = [name+'.h', name+'_api.h'] # change working directory if wdir: os.chdir(wdir) # run Cython on source options = CompilationOptions(default_options) options.output_file = outputs_c[0] options.include_path = list(includes) Options.generate_cleanup_code = 3 any_failures = 0 try: result = compile(source, options) if result.num_errors > 0: any_failures = 1 except (EnvironmentError, PyrexError): e = sys.exc_info()[1] sys.stderr.write(str(e) + '\n') any_failures = 1 if any_failures: for output in outputs_c + outputs_h: try: os.remove(output) except OSError: pass return 1 # move ouputs for destdir, outputs in ( (destdir_c, outputs_c), (destdir_h, outputs_h)): if destdir is None: continue for output in outputs: dest = os.path.join( destdir, os.path.basename(output)) try: os.remove(dest) except OSError: pass os.rename(output, dest) # return 0 # finally: os.chdir(cwd)
def cythonize(source, includes=(), destdir_c=None, destdir_h=None, wdir=None): from Cython.Compiler.Main import \ CompilationOptions, default_options, \ compile, \ PyrexError from Cython.Compiler import Options cwd = os.getcwd() try: name, ext = os.path.splitext(source) outputs_c = [name+'.c'] outputs_h = [name+'.h', name+'_api.h'] # change working directory if wdir: os.chdir(wdir) # run Cython on source options = CompilationOptions(default_options) options.output_file = outputs_c[0] options.include_path = list(includes) Options.generate_cleanup_code = 3 any_failures = 0 try: result = compile(source, options) if result.num_errors > 0: any_failures = 1 except (EnvironmentError, PyrexError): e = sys.exc_info()[1] sys.stderr.write(str(e) + '\n') any_failures = 1 if any_failures: for output in outputs_c + outputs_h: try: os.remove(output) except OSError: pass return 1 # move ouputs for destdir, outputs in ( (destdir_c, outputs_c), (destdir_h, outputs_h)): if destdir is None: continue for output in outputs: dest = os.path.join( destdir, os.path.basename(output)) try: os.remove(dest) except OSError: pass os.rename(output, dest) # return 0 # finally: os.chdir(cwd)
def cythonize(source, output=None, includes=(), workdir=None): import cyautodoc from Cython.Compiler import Options from Cython.Compiler.Main import ( CompilationOptions, default_options, compile, PyrexError, ) cwd = os.getcwd() try: # compute output filenames if output is None: name, _ = os.path.splitext(source) output = name + '.c' else: name, _ = os.path.splitext(output) outputs_c = [output] outputs_h = [name + '.h', name + '_api.h'] # run Cython on source options = CompilationOptions(default_options) lang_level = Options.directive_types.get('language_level', int) options.language_level = lang_level(3) options.output_file = output options.include_path = list(includes) options.working_path = workdir or "" Options.generate_cleanup_code = 3 any_failures = 0 try: if options.working_path: os.chdir(options.working_path) result = compile(source, options) if result.num_errors > 0: any_failures = 1 except (EnvironmentError, PyrexError) as e: sys.stderr.write(str(e) + '\n') any_failures = 1 if any_failures: for out in outputs_c + outputs_h: try: os.remove(out) except OSError: pass return 1 return 0 # finally: os.chdir(cwd)
def cythonize(): try: from Cython.Compiler.Main import CompilationOptions, default_options, \ compile, PyrexError from Cython.Compiler import Options import subprocess for code in cythoncodes: source = code[0] + '.pyx' options = CompilationOptions(default_options) options.output_file = code[0] + '.c' options.include_path = code[1] Options.generate_cleanup_code = 3 any_failures = False try: result = compile(source, options) if result.num_errors > 0: any_failures = True if not any_failures: callist = [ cythcompiler, '-shared', '-fwrapv', '-Wall', '-fno-strict-aliasing' ] for x in CFLAGS: callist.append(x) for x in code[1]: callist.append('-L' + x) callist.append('-o') callist.append('_' + code[0] + '.so') callist.append(code[0] + '.c') subprocess.call(callist) except (EnvironmentError, PyrexError): e = sys.exc_info()[1] sys.stderr.write(str(e) + '\n') any_failures = True if any_failures: try: os.remove(code[0] + '.c') except OSError: pass except: raise ValueError
def cythonize(): try: from Cython.Compiler.Main import CompilationOptions, default_options, \ compile, PyrexError from Cython.Compiler import Options import subprocess for code in cythoncodes: source = code[0] + '.pyx' options = CompilationOptions(default_options) options.output_file = code[0] + '.c' options.include_path = code[1] Options.generate_cleanup_code = 3 any_failures = False try: result = compile(source, options) if result.num_errors > 0: any_failures = True if not any_failures: callist = [cythcompiler,'-shared','-fwrapv','-Wall','-fno-strict-aliasing'] for x in CFLAGS: callist.append(x) for x in code[1]: callist.append('-L' + x) callist.append('-o') callist.append('_' + code[0] + '.so') callist.append(code[0] + '.c') subprocess.call(callist) except (EnvironmentError, PyrexError): e = sys.exc_info()[1] sys.stderr.write(str(e) + '\n') any_failures = True if any_failures: try: os.remove(code[0] + '.c') except OSError: pass except: raise ValueError
def cythonize(source, includes=(), output_h=os.curdir): name, ext = os.path.splitext(source) output_c = name + '.c' # from Cython.Compiler.Main import \ CompilationOptions, default_options, \ compile, \ PyrexError # options = CompilationOptions(default_options) options.output_file = output_c options.include_path = includes # from Cython.Compiler import Options Options.generate_cleanup_code = 3 # any_failures = 0 try: result = compile(source, options) if result.num_errors > 0: any_failures = 1 except (EnvironmentError, PyrexError), e: sys.stderr.write(str(e) + '\n') any_failures = 1