diff --git a/pyproject.toml b/pyproject.toml index e537af831..ba40f3b61 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ build-backend = "scikit_build_core.build" requires = [ "scikit-build-core >=0.9.3", - "nanobind >=1.9.2", + "nanobind >=3.0", # https://numpy.org/doc/stable/dev/depending_on_numpy.html#build-time-dependency # Just depending on numpy will automatically expose the oldest supported ABI. # - Retrieved 2024-06-24, AK @@ -11,7 +11,7 @@ requires = [ [project] name = "pyopencl" -version = "2026.1.2" +version = "2026.1.3" description = "Python wrapper for OpenCL" readme = "README.rst" license = "MIT" diff --git a/src/wrap_cl_part_1.cpp b/src/wrap_cl_part_1.cpp index 3f25eaca1..5b4afc4db 100644 --- a/src/wrap_cl_part_1.cpp +++ b/src/wrap_cl_part_1.cpp @@ -99,9 +99,9 @@ void pyopencl_expose_part_1(py::module_ &m) py_dev_type); ) }, - py::arg("devices").none(true)=py::none(), - py::arg("properties").none(true)=py::none(), - py::arg("dev_type").none(true)=py::none() + py::arg("devices").none()=py::none(), + py::arg("properties").none()=py::none(), + py::arg("dev_type").none()=py::none() ) .DEF_SIMPLE_METHOD(get_info) PYOPENCL_EXPOSE_EQUALITY_TESTS @@ -126,7 +126,7 @@ void pyopencl_expose_part_1(py::module_ &m) .def( py::init(), py::arg("context"), - py::arg("device").none(true)=py::none(), + py::arg("device").none()=py::none(), py::arg("properties")=py::cast(0)) .def("_finalize", &cls::finalize) .DEF_SIMPLE_METHOD(get_info) @@ -173,18 +173,18 @@ void pyopencl_expose_part_1(py::module_ &m) #if PYOPENCL_CL_VERSION >= 0x1020 m.def("_enqueue_marker_with_wait_list", enqueue_marker_with_wait_list, - py::arg("queue"), py::arg("wait_for").none(true)=py::none() + py::arg("queue"), py::arg("wait_for").none()=py::none() ); #endif m.def("_enqueue_marker", enqueue_marker, py::arg("queue") ); m.def("_enqueue_wait_for_events", enqueue_wait_for_events, - py::arg("queue"), py::arg("wait_for").none(true)=py::none()); + py::arg("queue"), py::arg("wait_for").none()=py::none()); #if PYOPENCL_CL_VERSION >= 0x1020 m.def("_enqueue_barrier_with_wait_list", enqueue_barrier_with_wait_list, - py::arg("queue"), py::arg("wait_for").none(true)=py::none() + py::arg("queue"), py::arg("wait_for").none()=py::none() ); #endif m.def("_enqueue_barrier", enqueue_barrier, py::arg("queue")); @@ -253,7 +253,7 @@ void pyopencl_expose_part_1(py::module_ &m) py::arg("queue"), py::arg("mem_objects"), py::arg("flags")=0, - py::arg("wait_for").none(true)=py::none() + py::arg("wait_for").none()=py::none() ); #endif @@ -270,7 +270,7 @@ void pyopencl_expose_part_1(py::module_ &m) py::arg("context"), py::arg("flags"), py::arg("size")=0, - py::arg("hostbuf").none(true)=py::none() + py::arg("hostbuf").none()=py::none() ) #if PYOPENCL_CL_VERSION >= 0x1010 .def("get_sub_region", &cls::get_sub_region, @@ -294,7 +294,7 @@ void pyopencl_expose_part_1(py::module_ &m) py::arg("mem"), py::arg("hostbuf"), py::arg("src_offset")=0, - py::arg("wait_for").none(true)=py::none(), + py::arg("wait_for").none()=py::none(), py::arg("is_blocking")=true ); m.def("_enqueue_write_buffer", enqueue_write_buffer, @@ -302,7 +302,7 @@ void pyopencl_expose_part_1(py::module_ &m) py::arg("mem"), py::arg("hostbuf"), py::arg("dst_offset")=0, - py::arg("wait_for").none(true)=py::none(), + py::arg("wait_for").none()=py::none(), py::arg("is_blocking")=true ); m.def("_enqueue_copy_buffer", enqueue_copy_buffer, @@ -312,7 +312,7 @@ void pyopencl_expose_part_1(py::module_ &m) py::arg("byte_count")=-1, py::arg("src_offset")=0, py::arg("dst_offset")=0, - py::arg("wait_for").none(true)=py::none() + py::arg("wait_for").none()=py::none() ); #ifdef CL_DEVICE_P2P_DEVICES_AMD @@ -321,8 +321,8 @@ void pyopencl_expose_part_1(py::module_ &m) py::arg("queue"), py::arg("src"), py::arg("dst"), - py::arg("byte_count").none(true)=py::none(), - py::arg("wait_for").none(true)=py::none() + py::arg("byte_count").none()=py::none(), + py::arg("wait_for").none()=py::none() ); #endif @@ -338,9 +338,9 @@ void pyopencl_expose_part_1(py::module_ &m) py::arg("buffer_origin"), py::arg("host_origin"), py::arg("region"), - py::arg("buffer_pitches").none(true)=py::none(), - py::arg("host_pitches").none(true)=py::none(), - py::arg("wait_for").none(true)=py::none(), + py::arg("buffer_pitches").none()=py::none(), + py::arg("host_pitches").none()=py::none(), + py::arg("wait_for").none()=py::none(), py::arg("is_blocking")=true ); m.def("_enqueue_write_buffer_rect", enqueue_write_buffer_rect, @@ -350,9 +350,9 @@ void pyopencl_expose_part_1(py::module_ &m) py::arg("buffer_origin"), py::arg("host_origin"), py::arg("region"), - py::arg("buffer_pitches").none(true)=py::none(), - py::arg("host_pitches").none(true)=py::none(), - py::arg("wait_for").none(true)=py::none(), + py::arg("buffer_pitches").none()=py::none(), + py::arg("host_pitches").none()=py::none(), + py::arg("wait_for").none()=py::none(), py::arg("is_blocking")=true ); m.def("_enqueue_copy_buffer_rect", enqueue_copy_buffer_rect, @@ -362,9 +362,9 @@ void pyopencl_expose_part_1(py::module_ &m) py::arg("src_origin"), py::arg("dst_origin"), py::arg("region"), - py::arg("src_pitches").none(true)=py::none(), - py::arg("dst_pitches").none(true)=py::none(), - py::arg("wait_for").none(true)=py::none() + py::arg("src_pitches").none()=py::none(), + py::arg("dst_pitches").none()=py::none(), + py::arg("wait_for").none()=py::none() ); #endif @@ -376,7 +376,7 @@ void pyopencl_expose_part_1(py::module_ &m) m.def("_enqueue_fill_buffer", enqueue_fill_buffer, py::arg("queue"), py::arg("mem"), py::arg("pattern"), py::arg("offset"), py::arg("size"), - py::arg("wait_for").none(true)=py::none()); + py::arg("wait_for").none()=py::none()); #endif } diff --git a/src/wrap_cl_part_2.cpp b/src/wrap_cl_part_2.cpp index e87c672d2..3d5253269 100644 --- a/src/wrap_cl_part_2.cpp +++ b/src/wrap_cl_part_2.cpp @@ -135,9 +135,9 @@ void pyopencl_expose_part_2(py::module_ &m) py::arg("context"), py::arg("flags"), py::arg("format"), - py::arg("shape").none(true)=py::none(), - py::arg("pitches").none(true)=py::none(), - py::arg("hostbuf").none(true)=py::none() + py::arg("shape").none()=py::none(), + py::arg("pitches").none()=py::none(), + py::arg("hostbuf").none()=py::none() ) #if PYOPENCL_CL_VERSION >= 0x1020 .def_static( @@ -161,7 +161,7 @@ void pyopencl_expose_part_2(py::module_ &m) py::arg("flags"), py::arg("format"), py::arg("desc"), - py::arg("hostbuf").none(true)=py::none() + py::arg("hostbuf").none()=py::none() ) #endif .DEF_SIMPLE_METHOD(get_image_info) @@ -287,8 +287,8 @@ void pyopencl_expose_part_2(py::module_ &m) typedef memory_map cls; py::class_(m, "MemoryMap", py::dynamic_attr()) .def("release", &cls::release, - py::arg("queue").none(true)=nullptr, - py::arg("wait_for").none(true)=py::none() + py::arg("queue").none()=nullptr, + py::arg("wait_for").none()=py::none() ) ; } @@ -303,8 +303,8 @@ void pyopencl_expose_part_2(py::module_ &m) py::arg("shape"), py::arg("dtype"), py::arg("order")="C", - py::arg("strides").none(true)=py::none(), - py::arg("wait_for").none(true)=py::none(), + py::arg("strides").none()=py::none(), + py::arg("wait_for").none()=py::none(), py::arg("is_blocking")=true); m.def("enqueue_map_image", enqueue_map_image, py::arg("queue"), @@ -315,8 +315,8 @@ void pyopencl_expose_part_2(py::module_ &m) py::arg("shape"), py::arg("dtype"), py::arg("order")="C", - py::arg("strides").none(true)=py::none(), - py::arg("wait_for").none(true)=py::none(), + py::arg("strides").none()=py::none(), + py::arg("wait_for").none()=py::none(), py::arg("is_blocking")=true); #endif @@ -389,14 +389,14 @@ void pyopencl_expose_part_2(py::module_ &m) py::arg("size"), py::arg("alignment"), py::arg("flags"), - py::arg("queue").none(true)=py::none() + py::arg("queue").none()=py::none() ) .DEF_SIMPLE_METHOD(release) .def("enqueue_release", &cls::enqueue_release, ":returns: a :class:`pyopencl.Event`\n\n" "|std-enqueue-blurb|", - py::arg("queue").none(true)=py::none(), - py::arg("wait_for").none(true)=py::none() + py::arg("queue").none()=py::none(), + py::arg("wait_for").none()=py::none() ) PYOPENCL_EXPOSE_EQUALITY_TESTS .def("__hash__", [](cls &self) { return (intptr_t) self.svm_ptr(); }) @@ -426,16 +426,16 @@ void pyopencl_expose_part_2(py::module_ &m) py::arg("is_blocking"), py::arg("dst"), py::arg("src"), - py::arg("wait_for").none(true)=py::none(), - py::arg("byte_count").none(true)=py::none() + py::arg("wait_for").none()=py::none(), + py::arg("byte_count").none()=py::none() ); m.def("_enqueue_svm_memfill", enqueue_svm_memfill, py::arg("queue"), py::arg("dst"), py::arg("pattern"), - py::arg("byte_count").none(true)=py::none(), - py::arg("wait_for").none(true)=py::none() + py::arg("byte_count").none()=py::none(), + py::arg("wait_for").none()=py::none() ); m.def("_enqueue_svm_map", enqueue_svm_map, @@ -443,14 +443,14 @@ void pyopencl_expose_part_2(py::module_ &m) py::arg("is_blocking"), py::arg("flags"), py::arg("svm"), - py::arg("wait_for").none(true)=py::none(), - py::arg("size").none(true)=py::none() + py::arg("wait_for").none()=py::none(), + py::arg("size").none()=py::none() ); m.def("_enqueue_svm_unmap", enqueue_svm_unmap, py::arg("queue"), py::arg("svm"), - py::arg("wait_for").none(true)=py::none() + py::arg("wait_for").none()=py::none() ); #endif @@ -458,8 +458,8 @@ void pyopencl_expose_part_2(py::module_ &m) m.def("_enqueue_svm_migrate_mem", enqueue_svm_migratemem, py::arg("queue"), py::arg("svms"), - py::arg("flags").none(true)=py::none(), - py::arg("wait_for").none(true)=py::none() + py::arg("flags").none()=py::none(), + py::arg("wait_for").none()=py::none() ); #endif @@ -531,17 +531,17 @@ void pyopencl_expose_part_2(py::module_ &m) .DEF_SIMPLE_METHOD(get_build_info) .def("_build", &cls::build, py::arg("options")="", - py::arg("devices").none(true)=py::none()) + py::arg("devices").none()=py::none()) #if PYOPENCL_CL_VERSION >= 0x1020 .def("compile", &cls::compile, py::arg("options")="", - py::arg("devices").none(true)=py::none(), + py::arg("devices").none()=py::none(), py::arg("headers")=py::list()) .def_static("link", &link_program, py::arg("context"), py::arg("programs"), py::arg("options")="", - py::arg("devices").none(true)=py::none() + py::arg("devices").none()=py::none() ) #endif #if PYOPENCL_CL_VERSION >= 0x2020 @@ -607,7 +607,7 @@ void pyopencl_expose_part_2(py::module_ &m) }) .def("set_arg", &cls::set_arg, py::arg("arg_index"), - py::arg("arg").none(true) + py::arg("arg").none() ) #if PYOPENCL_CL_VERSION >= 0x1020 .DEF_SIMPLE_METHOD(get_arg_info) @@ -619,7 +619,7 @@ void pyopencl_expose_part_2(py::module_ &m) .def("get_sub_group_info", &cls::get_sub_group_info, py::arg("device"), py::arg("param"), - py::arg("input_value").none(true)=py::none() + py::arg("input_value").none()=py::none() ) #endif .def("__call__", &cls::enqueue) @@ -642,9 +642,9 @@ void pyopencl_expose_part_2(py::module_ &m) py::arg("queue"), py::arg("kernel"), py::arg("global_work_size"), - py::arg("local_work_size").none(true), - py::arg("global_work_offset").none(true)=py::none(), - py::arg("wait_for").none(true)=py::none(), + py::arg("local_work_size").none(), + py::arg("global_work_offset").none()=py::none(), + py::arg("wait_for").none()=py::none(), py::arg("g_times_l")=false, py::arg("allow_empty_ndrange")=false ); @@ -717,19 +717,19 @@ void pyopencl_expose_part_2(py::module_ &m) m.def("enqueue_acquire_gl_objects", enqueue_acquire_gl_objects, py::arg("queue"), py::arg("mem_objects"), - py::arg("wait_for").none(true)=py::none() + py::arg("wait_for").none()=py::none() ); m.def("enqueue_release_gl_objects", enqueue_release_gl_objects, py::arg("queue"), py::arg("mem_objects"), - py::arg("wait_for").none(true)=py::none() + py::arg("wait_for").none()=py::none() ); #if defined(cl_khr_gl_sharing) && (cl_khr_gl_sharing >= 1) m.def("get_gl_context_info_khr", get_gl_context_info_khr, py::arg("properties"), py::arg("param_name"), - py::arg("platform").none(true)=py::none() + py::arg("platform").none()=py::none() ); #endif diff --git a/src/wrap_mempool.cpp b/src/wrap_mempool.cpp index d04aa5dad..34240fdb5 100644 --- a/src/wrap_mempool.cpp +++ b/src/wrap_mempool.cpp @@ -702,7 +702,7 @@ void pyopencl_expose_mempool(py::module_ &m) /* py::kw_only(), */ py::arg("alignment")=0, py::arg("flags")=CL_MEM_READ_WRITE, - py::arg("queue").none(true)=nullptr + py::arg("queue").none()=nullptr ) .def("__call__", pyopencl::svm_allocator_call, py::arg("size")) ;