Skip to main content

hatch-cython

PyPI - Version PyPI - Python Version PyPI - Downloads


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 }
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.1.8.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hatch_cython-0.1.8-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file hatch_cython-0.1.8.tar.gz.

File metadata

  • Download URL: hatch_cython-0.1.8.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for hatch_cython-0.1.8.tar.gz
Algorithm Hash digest
SHA256 14cb1fe65c20292b62226377b5cefcf8ed7f5edd690535a030a4d857d6a5b6c6
MD5 4cb209e0a8e884af36783620227358b8
BLAKE2b-256 5acadc97951b0324cb04b1ab8d4e9cefa60b174b9a2028e30ee9262a5efece38

See more details on using hashes here.

File details

Details for the file hatch_cython-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: hatch_cython-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for hatch_cython-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 8f6c8dd344f5077f7e97e430ad5495661271d32cab471567551a9507c49904be
MD5 2a3314e599f373cd4b7a3e9148275188
BLAKE2b-256 c93369c361f25361b10eaba0d6a80c7e9d3d3edbfa9b761b302b615ebc42fb31

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page