Skip to content

Commit 1f5f51c

Browse files
committed
Switch pybind11 classes to smart holders
This is the recommended, but not-yet-default, holder for C++ classes.
1 parent 33bb8a2 commit 1f5f51c

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

src/_backend_agg_wrapper.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ PyRendererAgg_draw_gouraud_triangles(RendererAgg *self,
216216

217217
PYBIND11_MODULE(_backend_agg, m, py::mod_gil_not_used())
218218
{
219-
py::class_<RendererAgg>(m, "RendererAgg", py::buffer_protocol())
219+
py::classh<RendererAgg>(m, "RendererAgg", py::buffer_protocol())
220220
.def(py::init<unsigned int, unsigned int, double>(),
221221
"width"_a, "height"_a, "dpi"_a)
222222

@@ -266,7 +266,7 @@ PYBIND11_MODULE(_backend_agg, m, py::mod_gil_not_used())
266266
return py::buffer_info(renderer->pixBuffer, shape, strides);
267267
});
268268

269-
py::class_<BufferRegion>(m, "BufferRegion", py::buffer_protocol())
269+
py::classh<BufferRegion>(m, "BufferRegion", py::buffer_protocol())
270270
// BufferRegion is not constructible from Python, thus no py::init is added.
271271
.def("set_x", &PyBufferRegion_set_x)
272272
.def("set_y", &PyBufferRegion_set_y)

src/ft2font_wrapper.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1548,7 +1548,7 @@ PYBIND11_MODULE(ft2font, m, py::mod_gil_not_used())
15481548
.value("BOLD", StyleFlags::BOLD)
15491549
.finalize();
15501550

1551-
py::class_<FT2Image>(m, "FT2Image", py::is_final(), py::buffer_protocol(),
1551+
py::classh<FT2Image>(m, "FT2Image", py::is_final(), py::buffer_protocol(),
15521552
PyFT2Image__doc__)
15531553
.def(py::init(
15541554
[](double_or_<long> width, double_or_<long> height) {
@@ -1571,7 +1571,7 @@ PYBIND11_MODULE(ft2font, m, py::mod_gil_not_used())
15711571
return py::buffer_info(self.get_buffer(), shape, strides);
15721572
});
15731573

1574-
py::class_<PyGlyph>(m, "Glyph", py::is_final(), PyGlyph__doc__)
1574+
py::classh<PyGlyph>(m, "Glyph", py::is_final(), PyGlyph__doc__)
15751575
.def(py::init<>([]() -> PyGlyph {
15761576
// Glyph is not useful from Python, so mark it as not constructible.
15771577
throw std::runtime_error("Glyph is not constructible");
@@ -1595,7 +1595,7 @@ PYBIND11_MODULE(ft2font, m, py::mod_gil_not_used())
15951595
.def_property_readonly("bbox", &PyGlyph_get_bbox,
15961596
"The control box of the glyph.");
15971597

1598-
py::class_<PyFT2Font>(m, "FT2Font", py::is_final(), py::buffer_protocol(),
1598+
py::classh<PyFT2Font>(m, "FT2Font", py::is_final(), py::buffer_protocol(),
15991599
PyFT2Font__doc__)
16001600
.def(py::init(&PyFT2Font_init),
16011601
"filename"_a, "hinting_factor"_a=8, py::kw_only(),

src/tri/_tri_wrapper.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ using namespace pybind11::literals;
44

55
PYBIND11_MODULE(_tri, m, py::mod_gil_not_used())
66
{
7-
py::class_<Triangulation>(m, "Triangulation", py::is_final())
7+
py::classh<Triangulation>(m, "Triangulation", py::is_final())
88
.def(py::init<const Triangulation::CoordinateArray&,
99
const Triangulation::CoordinateArray&,
1010
const Triangulation::TriangleArray&,
@@ -31,7 +31,7 @@ PYBIND11_MODULE(_tri, m, py::mod_gil_not_used())
3131
.def("set_mask", &Triangulation::set_mask,
3232
"Set or clear the mask array.");
3333

34-
py::class_<TriContourGenerator>(m, "TriContourGenerator", py::is_final())
34+
py::classh<TriContourGenerator>(m, "TriContourGenerator", py::is_final())
3535
.def(py::init<Triangulation&,
3636
const TriContourGenerator::CoordinateArray&>(),
3737
"triangulation"_a,
@@ -44,7 +44,7 @@ PYBIND11_MODULE(_tri, m, py::mod_gil_not_used())
4444
.def("create_filled_contour", &TriContourGenerator::create_filled_contour,
4545
"Create and return a filled contour.");
4646

47-
py::class_<TrapezoidMapTriFinder>(m, "TrapezoidMapTriFinder", py::is_final())
47+
py::classh<TrapezoidMapTriFinder>(m, "TrapezoidMapTriFinder", py::is_final())
4848
.def(py::init<Triangulation&>(),
4949
"triangulation"_a,
5050
"Create a new C++ TrapezoidMapTriFinder object.\n"

0 commit comments

Comments
 (0)