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 }
extra_link_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.9.tar.gz (14.6 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.9-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for hatch_cython-0.1.9.tar.gz
Algorithm Hash digest
SHA256 1d6158fd4a2387dbe97a348e50765c25eb2f4ed2ca7b2f7a520f70a7f3b0c41e
MD5 e1a32103b6b35dca6015f301a990890c
BLAKE2b-256 f6298917a45e6e0ffbc168631582db132ab31119057f997cb063663bb62b1ade

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for hatch_cython-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 e138caba66fad53dde208235d3fd719b50ed557584abf839e5e847941eb54b53
MD5 806f968e13b1bcfd7b20cafbd088da90
BLAKE2b-256 cef6a5cca06a14a27f0295976f2e92237f8a4822a22bf383f5b1798ba89350c5

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