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.
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.1.tar.gz
(19.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hatch_cython-0.2.1.tar.gz.
File metadata
- Download URL: hatch_cython-0.2.1.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/4.0.2 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be2ed3cc1dbf5c998ee83193473e1c94bd3fcea38c690330ea55314081e17c20
|
|
| MD5 |
ac65ed5ec511d4cbeca30f4e8a42b891
|
|
| BLAKE2b-256 |
1c849b856a1cf846dd21a23cba6088ab999d313986e184bb7671e58559347ad9
|
File details
Details for the file hatch_cython-0.2.1-py3-none-any.whl.
File metadata
- Download URL: hatch_cython-0.2.1-py3-none-any.whl
- Upload date:
- Size: 12.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/4.0.2 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d114133bfdddbd125f25f986d0602a98c19c991ae3de2666ef9392982e4076d
|
|
| MD5 |
f0c763c6b2d5220539f2227e662b4c70
|
|
| BLAKE2b-256 |
ca66ef7b2b6cb8c069cbdbbccd6eee1fd1f819bf744b550cc081c77f2b75aae6
|