No project description provided
Project description
hatch-cython
Table of Contents
Usage
The build hook name is cython
.
- pyproject.toml
[tool.hatch.build.targets.wheel.hooks.cython]
dependencies = ["hatch-cython"]
[tool.hatch.build.targets.wheel.hooks.cython.options]
<!-- include .h or .cpp directories -->
includes = []
<!-- include numpy headers -->
include_numpy = false
include_pyarrow = false
include_somelib = {
pkg = "somelib",
<!-- somelib.gets_include() -> str -->
include = "gets_include",
<!-- somelib.gets_libraries() -> list[str] -->
libraries = "gets_libraries",
<!-- somelib.gets_library_dirs() -> list[str] -->
library_dirs = "gets_library_dirs",
<!-- somelib.some_setup_op() before build -->
required_call = "some_setup_op"
}
compile_args = [
<!-- single string -->
"-std=c++17",
<!-- list of platforms + arg -->
{ platforms = ["nt"], arg = "-std=c++17" },
<!-- single platform + arg -->
{ platforms = "posix", arg = "-I/abc/def" },
]
directives = { boundscheck = false, nonecheck = false, language_level = 3, binding = true }
compile_kwargs = { }
- hatch.toml
[build.targets.wheel.hooks.cython]
dependencies = ["hatch-cython"]
[build.targets.wheel.hooks.cython.options]
<!-- optional, defaults below -->
directives = { boundscheck = false, nonecheck = false, language_level = 3, binding = true }
compile_args = [
"-O3",
]
includes = []
include_numpy = false
<!-- equivalent to include_pyarrow = true -->
include_somelib = { pkg = "pyarrow", include="get_include", libraries="get_libraries", library_dirs="get_library_dirs", required_call="create_library_symlinks" }
Configuration Options
Field | Type |
---|---|
src | str | None directory within src dir or . which aliases the package being built. e.g. package_a -> src/package_a_lib src = "package_a" |
directives | directives to cython (see cython docs) |
compile_args | str or { platforms = ["*"] | "*", arg = str } |
extra_link_args | str or { platforms = ["*"] | "*", arg = str } |
env | { env = "VAR1", arg = "VALUE", platforms = ["*"], arch = ["*"] } if flag is one of: - ARFLAGS - LDSHARED - LDFLAGS - CPPFLAGS - CFLAGS - CCSHARED the current env vars will be merged with the value (provided platform & arch applies), separated by a space. This can be enabled by adding { env = "MYVAR" ... , merges = true } to the definition. |
includes | list str |
includes_{package} | { pkg = str, include = str, libraries = str| None, library_dirs = str | None , required_call = str | None } where all fields, but pkg , are attributes in the type of callable() -> list[str] | str | list[str] | str |
includes_numpy | includes_pyarrow | bool 3rd party named imports. must have the respective opt in dependencies |
retain_intermediate_artifacts | bool = False whether to keep .c | .cpp files |
parallel | bool = False if parallel, add openmp headers important: if using macos, you need the homebrew llvm vs apple's llvm in order to pass -fopenmp to clang compiler |
compiler | compiler used at build-time. if msvc (Microsoft Visual Studio), /openmp is used as argument to compile instead of -fopenmp when parallel = true |
** kwargs | keyword = value pair arguments to pass to the extension module when building |
License
hatch-cython
is distributed under the terms of the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
hatch_cython-0.2.2.tar.gz
(20.4 kB
view hashes)
Built Distribution
Close
Hashes for hatch_cython-0.2.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3136329fb7ace66f1d38fbbcf94f982f805934823b8d2584986092b2505d5e81 |
|
MD5 | 73e954c54fbc5f92860eac2d72283d0b |
|
BLAKE2b-256 | f354f0d884582dcfc8a52aeb170e06b7c16ae8febe33cefd449ef6ba1a110e90 |