From 9b2e200186d21cbc308cfbecbda7e992b815a74e Mon Sep 17 00:00:00 2001 From: tobwen <1864057+tobwen@users.noreply.github.com> Date: Sun, 8 Feb 2026 18:38:27 +0100 Subject: [PATCH] Fix pybind11 type and signature handling issues These changes fix type mismatches and invalid identifier issues in the Python bindings that could cause import or runtime errors. - Convert PyLong_AsLongLong to PyLong_AsLong to match value_holder type - Replace invalid argument name with space (layer idx -> layer_idx) - Add missing pybind11/stl.h include for std::vector return types Changes: - src/mapnik_value_converter.hpp: Use correct integer conversion - src/mapnik_map.cpp: Fix py::arg identifier with invalid space character - src/mapnik_font_engine.cpp: Include STL bindings for vector types --- src/mapnik_font_engine.cpp | 1 + src/mapnik_map.cpp | 2 +- src/mapnik_value_converter.hpp | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/mapnik_font_engine.cpp b/src/mapnik_font_engine.cpp index a461241b1..5fdcfedd8 100644 --- a/src/mapnik_font_engine.cpp +++ b/src/mapnik_font_engine.cpp @@ -25,6 +25,7 @@ #include //pybind11 #include +#include namespace py = pybind11; diff --git a/src/mapnik_map.cpp b/src/mapnik_map.cpp index 895787dee..b2b164339 100644 --- a/src/mapnik_map.cpp +++ b/src/mapnik_map.cpp @@ -295,7 +295,7 @@ void export_map(py::module const& m) "\n" ">>> featureset.features\n" ">>> []\n", - py::arg("layer idx"), py::arg("x"), py::arg("y") + py::arg("layer_idx"), py::arg("x"), py::arg("y") ) .def("remove_all", &Map::remove_all, diff --git a/src/mapnik_value_converter.hpp b/src/mapnik_value_converter.hpp index 417958558..7de7e3fbb 100644 --- a/src/mapnik_value_converter.hpp +++ b/src/mapnik_value_converter.hpp @@ -180,7 +180,7 @@ struct type_caster { PyObject *tmp = PyNumber_Long(source); if (!tmp) return false; - value = PyLong_AsLongLong(tmp); + value = PyLong_AsLong(tmp); Py_DecRef(tmp); return !PyErr_Occurred(); }