[libcamera-devel] [PATCH 1/5] py: Fix CameraManager.version property
Tomi Valkeinen
tomi.valkeinen at ideasonboard.com
Tue May 30 11:20:12 CEST 2023
The current CameraManager.version doesn't work at all (raises a
TypeError), as that's not how you use expose C++ static methods as
Python class methods.
Fix it.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
src/py/libcamera/py_main.cpp | 2 +-
test/py/unittests.py | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/py/libcamera/py_main.cpp b/src/py/libcamera/py_main.cpp
index d14e18e2..c55495cc 100644
--- a/src/py/libcamera/py_main.cpp
+++ b/src/py/libcamera/py_main.cpp
@@ -105,7 +105,7 @@ PYBIND11_MODULE(_libcamera, m)
return cm;
})
- .def_property_readonly("version", &PyCameraManager::version)
+ .def_property_readonly_static("version", [](py::object /* self */) { return PyCameraManager::version(); })
.def("get", &PyCameraManager::get, py::keep_alive<0, 1>())
.def_property_readonly("cameras", &PyCameraManager::cameras)
diff --git a/test/py/unittests.py b/test/py/unittests.py
index 6dea80fc..90b04330 100755
--- a/test/py/unittests.py
+++ b/test/py/unittests.py
@@ -68,6 +68,10 @@ class SimpleTestMethods(BaseTestCase):
# I expected EBUSY, but looks like double release works fine
self.assertZero(ret)
+ def test_version(self):
+ cm = libcam.CameraManager.singleton()
+ self.assertIsInstance(cm.version, str)
+
class CameraTesterBase(BaseTestCase):
cm: typing.Any
--
2.34.1
More information about the libcamera-devel
mailing list