Python setuptools.extension.Extension() Examples
The following are 22
code examples of setuptools.extension.Extension().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
setuptools.extension
, or try the search function
.
Example #1
Source File: setup.py From python-gssapi with ISC License | 6 votes |
def make_extension(name_fmt, module, **kwargs): """Helper method to remove the repetition in extension declarations.""" source = name_fmt.replace('.', '/') % module + '.' + SOURCE_EXT if not os.path.exists(source): raise OSError(source) return Extension( name_fmt % module, extra_link_args=link_args, extra_compile_args=compile_args, library_dirs=library_dirs, libraries=libraries, sources=[source], **kwargs ) # detect support
Example #2
Source File: setup.py From pairtools with MIT License | 6 votes |
def get_ext_modules(): ext = '.pyx' if HAVE_CYTHON else '.c' src_files = glob.glob(os.path.join( os.path.dirname(__file__), "pairtools", "*" + ext)) ext_modules = [] for src_file in src_files: name = "pairtools." + os.path.splitext(os.path.basename(src_file))[0] ext_modules.append(Extension(name, [src_file])) if HAVE_CYTHON: # .pyx to .c ext_modules = cythonize(ext_modules) #, annotate=True return ext_modules
Example #3
Source File: test_build_ext.py From setuptools with MIT License | 6 votes |
def test_abi3_filename(self): """ Filename needs to be loadable by several versions of Python 3 if 'is_abi3' is truthy on Extension() """ print(get_abi3_suffix()) extension = Extension('spam.eggs', ['eggs.c'], py_limited_api=True) dist = Distribution(dict(ext_modules=[extension])) cmd = build_ext(dist) cmd.finalize_options() assert 'spam.eggs' in cmd.ext_map res = cmd.get_ext_filename('spam.eggs') if six.PY2 or not get_abi3_suffix(): assert res.endswith(get_config_var('EXT_SUFFIX')) elif sys.platform == 'win32': assert res.endswith('eggs.pyd') else: assert 'abi3' in res
Example #4
Source File: setup.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 5 votes |
def config_cython(): """Try to configure cython and return cython configuration""" if not with_cython: return [] # pylint: disable=unreachable if os.name == 'nt': print("WARNING: Cython is not supported on Windows, will compile without cython module") return [] try: from Cython.Build import cythonize # from setuptools.extension import Extension if sys.version_info >= (3, 0): subdir = "_cy3" else: subdir = "_cy2" ret = [] path = "mxnet/cython" if os.name == 'nt': library_dirs = ['mxnet', '../build/Release', '../build'] libraries = ['libmxnet'] else: library_dirs = None libraries = None for fn in os.listdir(path): if not fn.endswith(".pyx"): continue ret.append(Extension( "mxnet/%s/.%s" % (subdir, fn[:-4]), ["mxnet/cython/%s" % fn], include_dirs=["../include/", "../3rdparty/tvm/nnvm/include"], library_dirs=library_dirs, libraries=libraries, language="c++")) return cythonize(ret) except ImportError: print("WARNING: Cython is not installed, will compile without cython module") return []
Example #5
Source File: setup.py From SNIPER-mxnet with Apache License 2.0 | 5 votes |
def config_cython(): """Try to configure cython and return cython configuration""" if not with_cython: return [] # pylint: disable=unreachable if os.name == 'nt': print("WARNING: Cython is not supported on Windows, will compile without cython module") return [] try: from Cython.Build import cythonize # from setuptools.extension import Extension if sys.version_info >= (3, 0): subdir = "_cy3" else: subdir = "_cy2" ret = [] path = "mxnet/cython" if os.name == 'nt': library_dirs = ['mxnet', '../build/Release', '../build'] libraries = ['libmxnet'] else: library_dirs = None libraries = None for fn in os.listdir(path): if not fn.endswith(".pyx"): continue ret.append(Extension( "mxnet/%s/.%s" % (subdir, fn[:-4]), ["mxnet/cython/%s" % fn], include_dirs=["../include/", "../3rdparty/nnvm/include"], library_dirs=library_dirs, libraries=libraries, language="c++")) return cythonize(ret) except ImportError: print("WARNING: Cython is not installed, will compile without cython module") return []
Example #6
Source File: setup.py From polemarch with GNU Affero General Public License v3.0 | 5 votes |
def make_setup(**opts): if 'packages' not in opts: opts['packages'] = find_packages() ext_modules_list = opts.pop('ext_modules_list', list()) ext_mod, ext_mod_dict = make_extensions(ext_modules_list, opts['packages']) opts['ext_modules'] = opts.get('ext_modules', list()) + ext_mod cmdclass = opts.get('cmdclass', dict()) static_exclude = opts.pop('static_exclude_min', list()) if 'compile' not in cmdclass: compile_class = get_compile_command(ext_mod_dict) compile_class.static_exclude = static_exclude cmdclass.update({"compile": get_compile_command(ext_mod_dict)}) if has_cython: build_py.exclude = ext_modules_list install_lib.static_exclude = static_exclude install_lib.compile_exclude = opts.pop('compile_modules_exclude', list()) cmdclass.update({ 'build_ext': _build_ext, 'build_py': build_py, 'install_lib': install_lib }) if has_sphinx and 'build_sphinx' not in cmdclass: cmdclass['build_sphinx'] = BuildDoc cmdclass['githubrelease'] = GithubRelease opts['cmdclass'] = cmdclass webpack_path = os.path.join(os.getcwd(), 'webpack.config.js') if os.path.exists(webpack_path) and is_build and os.environ.get('DONT_YARN', "") != 'true': yarn_build_command = 'devBuild' if is_develop else 'build' try: os.system('yarn install --pure-lockfile') os.system('yarn ' + yarn_build_command) except Extension as err: print(err) setup(**opts) ######################################################################################## # end block
Example #7
Source File: setup.py From nagisa with MIT License | 5 votes |
def extensions(): from Cython.Build import cythonize import numpy extensions = [Extension('utils', ['nagisa/utils.pyx'], include_dirs = [numpy.get_include()])] return cythonize(extensions)
Example #8
Source File: setup.py From tesserocr with MIT License | 5 votes |
def make_extension(): global _CYTHON_COMPILE_TIME_ENV build_args = get_build_args() _CYTHON_COMPILE_TIME_ENV = build_args.pop('cython_compile_time_env') return Extension("tesserocr", sources=["tesserocr.pyx"], language="c++", **build_args)
Example #9
Source File: setup.py From polemarch with GNU Affero General Public License v3.0 | 5 votes |
def make_extention(module_name, files, extra_compile_args, main_include_dir=os.path.join(os.getcwd(), 'include')): include_dirs = list(filter( lambda f: bool(f) and os.path.exists(f) and os.path.isdir(f), [os.path.join(module_name.split('.')[0], 'include'), main_include_dir] )) return Extension( module_name, files, extra_compile_args=extra_compile_args, include_dirs=include_dirs )
Example #10
Source File: builder.py From poet with MIT License | 5 votes |
def _ext_modules(self, poet): """ Builds the extension modules. Transforms the extensions section: [extensions] "my.module" = "my/module.c" to a proper extension: Extension('my.module', 'my/module.c') :param poet: The Poet instance for which to build. :type poet: poet.poet.Poet :rtype: dict """ extensions = [] for module, source in poet.extensions.items(): if not isinstance(source, list): source = [source] extensions.append(Extension(module, source)) return { 'ext_modules': extensions }
Example #11
Source File: setup.py From pyoptools with GNU General Public License v3.0 | 5 votes |
def findpackages(dir_, files=[]): for file in os.listdir(dir_): if file != "build": path = os.path.join(dir_, file) if os.path.isdir(path): # and path.endswith(".py"): for file1 in os.listdir(path): if file1 == "__init__.py": files.append(path.replace(os.path.sep, ".")[2:]) findpackages(path, files) return files # generate an Extension object from its dotted name
Example #12
Source File: setup.py From pyoptools with GNU General Public License v3.0 | 5 votes |
def makeExtension(extName): extPath = extName.replace(".", os.path.sep)+".pyx" return Extension( extName, [extPath], # adding the '.' to include_dirs is CRUCIAL!! include_dirs=[".", include_numpy_array], extra_compile_args=["-O3", "-Wall"], # extra_link_args = ['-g'], # libraries = ["dv",], ) # Check the availability of arrayobject.h
Example #13
Source File: setup.py From spatial_access with GNU General Public License v3.0 | 5 votes |
def build_extension(extension_name, sources): full_path_sources = [SRC_PATH + src for src in sources] return Extension(name=extension_name, language='c++', sources=full_path_sources, extra_compile_args=['--std=c++11', '-Ofast', '-fomit-frame-pointer', "-g0"] + ouff_mac, undef_macros=["NDEBUG"], extra_link_args=ouff_mac)
Example #14
Source File: util.py From keras-lambda with MIT License | 4 votes |
def get_extension_modules(config): """Handle extension modules""" EXTENSION_FIELDS = ("sources", "include_dirs", "define_macros", "undef_macros", "library_dirs", "libraries", "runtime_library_dirs", "extra_objects", "extra_compile_args", "extra_link_args", "export_symbols", "swig_opts", "depends") ext_modules = [] for section in config: if ':' in section: labels = section.split(':', 1) else: # Backwards compatibility for old syntax; don't use this though labels = section.split('=', 1) labels = [l.strip() for l in labels] if (len(labels) == 2) and (labels[0] == 'extension'): ext_args = {} for field in EXTENSION_FIELDS: value = has_get_option(config, section, field) # All extension module options besides name can have multiple # values if not value: continue value = split_multiline(value) if field == 'define_macros': macros = [] for macro in value: macro = macro.split('=', 1) if len(macro) == 1: macro = (macro[0].strip(), None) else: macro = (macro[0].strip(), macro[1].strip()) macros.append(macro) value = macros ext_args[field] = value if ext_args: if 'name' not in ext_args: ext_args['name'] = labels[1] ext_modules.append(Extension(ext_args.pop('name'), **ext_args)) return ext_modules
Example #15
Source File: setup.py From incubator-tvm with Apache License 2.0 | 4 votes |
def config_cython(): """Try to configure cython and return cython configuration""" if os.name == 'nt': print("WARNING: Cython is not supported on Windows, will compile without cython module") return [] sys_cflags = sysconfig.get_config_var("CFLAGS") if "i386" in sys_cflags and "x86_64" in sys_cflags: print("WARNING: Cython library may not be compiled correctly with both i386 and x64") return [] try: from Cython.Build import cythonize # from setuptools.extension import Extension if sys.version_info >= (3, 0): subdir = "_cy3" else: subdir = "_cy2" ret = [] path = "tvm/_ffi/_cython" if os.name == 'nt': library_dirs = ['tvm', '../build/Release', '../build'] libraries = ['libtvm'] else: library_dirs = None libraries = None for fn in os.listdir(path): if not fn.endswith(".pyx"): continue ret.append(Extension( "tvm._ffi.%s.%s" % (subdir, fn[:-4]), ["tvm/_ffi/_cython/%s" % fn], include_dirs=["../include/", "../3rdparty/dmlc-core/include", "../3rdparty/dlpack/include", ], extra_compile_args=["-std=c++14"], library_dirs=library_dirs, libraries=libraries, language="c++")) return cythonize(ret, compiler_directives={"language_level": 3}) except ImportError: print("WARNING: Cython is not installed, will compile without cython module") return []
Example #16
Source File: setup.py From polemarch with GNU Affero General Public License v3.0 | 4 votes |
def make_extensions(extensions_list, packages): if not isinstance(extensions_list, list): raise Exception("Extension list should be `list`.") if not is_help: clear_old_extentions(extensions_list, packages) extensions_dict = {} for ext in extensions_list: files = [] module_name = ext if isinstance(ext, (list, tuple)): module_name = ext[0] for file_module in ext[1]: file_name = get_file_ext(file_module) files += [file_name] if file_name else [] else: file_name = get_file_ext(ext) files += [file_name] if file_name else [] if files: extensions_dict[module_name] = files extra_compile_args = [ '-g0', '-ggdb1', "-fno-strict-aliasing", "-fno-var-tracking-assignments", "-pipe", "-std=c99", '-Werror=sign-compare' ] ext_modules = list( make_extention(m, f, extra_compile_args) for m, f in extensions_dict.items() ) ext_count = len(ext_modules) nthreads = ext_count if ext_count < 10 else 10 language_level = 3 if is_help: pass elif has_cython and ('compile' in sys.argv or 'bdist_wheel' in sys.argv): cy_kwargs = dict( nthreads=nthreads, force=True, language_level=language_level ) return cythonize(ext_modules, **cy_kwargs), extensions_dict return ext_modules, extensions_dict
Example #17
Source File: setup.py From aredis with MIT License | 4 votes |
def run(self): try: build_ext.run(self) except Exception: e = sys.exc_info()[1] sys.stdout.write('%s\n' % str(e)) warnings.warn(self.warning_message % ("Extension modules", "There was an issue with " "your platform configuration" " - see above."))
Example #18
Source File: setup.py From training_results_v0.6 with Apache License 2.0 | 4 votes |
def config_cython(): """Try to configure cython and return cython configuration""" if os.name == 'nt': print("WARNING: Cython is not supported on Windows, will compile without cython module") return [] sys_cflags = sysconfig.get_config_var("CFLAGS") if "i386" in sys_cflags and "x86_64" in sys_cflags: print("WARNING: Cython library may not be compiled correctly with both i386 and x64") return [] try: from Cython.Build import cythonize # from setuptools.extension import Extension if sys.version_info >= (3, 0): subdir = "_cy3" else: subdir = "_cy2" ret = [] path = "tvm/_ffi/_cython" if os.name == 'nt': library_dirs = ['tvm', '../build/Release', '../build'] libraries = ['libtvm'] else: library_dirs = None libraries = None for fn in os.listdir(path): if not fn.endswith(".pyx"): continue ret.append(Extension( "tvm._ffi.%s.%s" % (subdir, fn[:-4]), ["tvm/_ffi/_cython/%s" % fn], include_dirs=["../include/", "../3rdparty/dmlc-core/include", "../3rdparty/dlpack/include", ], library_dirs=library_dirs, libraries=libraries, language="c++")) return cythonize(ret) except ImportError: print("WARNING: Cython is not installed, will compile without cython module") return []
Example #19
Source File: util.py From auto-alt-text-lambda-api with MIT License | 4 votes |
def get_extension_modules(config): """Handle extension modules""" EXTENSION_FIELDS = ("sources", "include_dirs", "define_macros", "undef_macros", "library_dirs", "libraries", "runtime_library_dirs", "extra_objects", "extra_compile_args", "extra_link_args", "export_symbols", "swig_opts", "depends") ext_modules = [] for section in config: if ':' in section: labels = section.split(':', 1) else: # Backwards compatibility for old syntax; don't use this though labels = section.split('=', 1) labels = [l.strip() for l in labels] if (len(labels) == 2) and (labels[0] == 'extension'): ext_args = {} for field in EXTENSION_FIELDS: value = has_get_option(config, section, field) # All extension module options besides name can have multiple # values if not value: continue value = split_multiline(value) if field == 'define_macros': macros = [] for macro in value: macro = macro.split('=', 1) if len(macro) == 1: macro = (macro[0].strip(), None) else: macro = (macro[0].strip(), macro[1].strip()) macros.append(macro) value = macros ext_args[field] = value if ext_args: if 'name' not in ext_args: ext_args['name'] = labels[1] ext_modules.append(Extension(ext_args.pop('name'), **ext_args)) return ext_modules
Example #20
Source File: setup.py From dgl with Apache License 2.0 | 4 votes |
def config_cython(): """Try to configure cython and return cython configuration""" if os.name == 'nt': print("WARNING: Cython is not supported on Windows, will compile without cython module") return [] sys_cflags = sysconfig.get_config_var("CFLAGS") if "i386" in sys_cflags and "x86_64" in sys_cflags: print("WARNING: Cython library may not be compiled correctly with both i386 and x64") return [] try: from Cython.Build import cythonize # from setuptools.extension import Extension if sys.version_info >= (3, 0): subdir = "_cy3" else: subdir = "_cy2" ret = [] path = "dgl/_ffi/_cython" if os.name == 'nt': library_dirs = ['dgl', '../build/Release', '../build'] libraries = ['libtvm'] else: library_dirs = None libraries = None for fn in os.listdir(path): if not fn.endswith(".pyx"): continue ret.append(Extension( "dgl._ffi.%s.%s" % (subdir, fn[:-4]), ["dgl/_ffi/_cython/%s" % fn], include_dirs=["../include/", "../third_party/dmlc-core/include", "../third_party/dlpack/include", ], library_dirs=library_dirs, libraries=libraries, language="c++")) return cythonize(ret) except ImportError: print("WARNING: Cython is not installed, will compile without cython module") return []
Example #21
Source File: setup.py From setup-template-cython with The Unlicense | 4 votes |
def declare_cython_extension(extName, use_math=False, use_openmp=False, include_dirs=None): """Declare a Cython extension module for setuptools. Parameters: extName : str Absolute module name, e.g. use `mylibrary.mypackage.mymodule` for the Cython source file `mylibrary/mypackage/mymodule.pyx`. use_math : bool If True, set math flags and link with ``libm``. use_openmp : bool If True, compile and link with OpenMP. Return value: Extension object that can be passed to ``setuptools.setup``. """ extPath = extName.replace(".", os.path.sep)+".pyx" if use_math: compile_args = list(my_extra_compile_args_math) # copy link_args = list(my_extra_link_args_math) libraries = ["m"] # link libm; this is a list of library names without the "lib" prefix else: compile_args = list(my_extra_compile_args_nonmath) link_args = list(my_extra_link_args_nonmath) libraries = None # value if no libraries, see setuptools.extension._Extension # OpenMP if use_openmp: compile_args.insert( 0, openmp_compile_args ) link_args.insert( 0, openmp_link_args ) # See # http://docs.cython.org/src/tutorial/external.html # # on linking libraries to your Cython extensions. # return Extension( extName, [extPath], extra_compile_args=compile_args, extra_link_args=link_args, include_dirs=include_dirs, libraries=libraries ) # Gather user-defined data files # # http://stackoverflow.com/questions/13628979/setuptools-how-to-make-package-contain-extra-data-folder-and-all-folders-inside #
Example #22
Source File: setup.py From setup-template-cython with The Unlicense | 4 votes |
def declare_cython_extension(extName, use_math=False, use_openmp=False): """Declare a Cython extension module for setuptools. Parameters: extName : str Absolute module name, e.g. use `mylibrary.mypackage.subpackage` for the Cython source file `mylibrary/mypackage/subpackage.pyx`. use_math : bool If True, set math flags and link with ``libm``. use_openmp : bool If True, compile and link with OpenMP. Return value: Extension object that can be passed to ``setuptools.setup``. """ extPath = extName.replace(".", os.path.sep)+".pyx" if use_math: compile_args = list(my_extra_compile_args_math) # copy link_args = list(my_extra_link_args_math) libraries = ["m"] # link libm; this is a list of library names without the "lib" prefix else: compile_args = list(my_extra_compile_args_nonmath) link_args = list(my_extra_link_args_nonmath) libraries = None # value if no libraries, see setuptools.extension._Extension # OpenMP if use_openmp: compile_args.insert( 0, openmp_compile_args ) link_args.insert( 0, openmp_link_args ) # See # http://docs.cython.org/src/tutorial/external.html # # on linking libraries to your Cython extensions. # return Extension( extName, [extPath], extra_compile_args=compile_args, extra_link_args=link_args, libraries=libraries ) ######################################################### # Set up modules ######################################################### # declare Cython extension modules here #