aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/libpyside/pyside_numpy.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-05-04 14:44:40 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2023-05-05 12:37:04 +0200
commit499832abfdf13eac5aa35f84a62166fb5aa2e034 (patch)
tree973b0d9fa43255f4534cc5831e7df0e494276ba9 /sources/pyside6/libpyside/pyside_numpy.cpp
parent7ed292b19ee6a4cd59b8c8f644abba56a8f13f39 (diff)
Numpy support: Handle short/long/long long integer types
The default type of numpy is int64 on Linux and long in Windows these days. As numpy is still based on the old long/long long scheme for the types, add some mapping. [ChangeLog][shiboken6] numpy support has been extended to handle short/long long integer types. Fixes: PYSIDE-2313 Pick-to: 6.5 Change-Id: I75d9277ae0867401c2c188efb3a50f4c53c4fc24 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'sources/pyside6/libpyside/pyside_numpy.cpp')
-rw-r--r--sources/pyside6/libpyside/pyside_numpy.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/sources/pyside6/libpyside/pyside_numpy.cpp b/sources/pyside6/libpyside/pyside_numpy.cpp
index a6634fc56..5f43cc5ce 100644
--- a/sources/pyside6/libpyside/pyside_numpy.cpp
+++ b/sources/pyside6/libpyside/pyside_numpy.cpp
@@ -45,10 +45,18 @@ QList<QPointF> xyDataToQPointFList(PyObject *pyXIn, PyObject *pyYIn)
if (size == 0)
return {};
switch (xv.type) {
+ case Shiboken::Numpy::View::Int16:
+ return xyDataToQPointHelper<int16_t, QPointF>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Unsigned16:
+ return xyDataToQPointHelper<uint16_t, QPointF>(xv.data, yv.data, size);
case Shiboken::Numpy::View::Int:
return xyDataToQPointHelper<int, QPointF>(xv.data, yv.data, size);
case Shiboken::Numpy::View::Unsigned:
return xyDataToQPointHelper<unsigned, QPointF>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Int64:
+ return xyDataToQPointHelper<int64_t, QPointF>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Unsigned64:
+ return xyDataToQPointHelper<uint64_t, QPointF>(xv.data, yv.data, size);
case Shiboken::Numpy::View::Float:
return xyDataToQPointHelper<float, QPointF>(xv.data, yv.data, size);
case Shiboken::Numpy::View::Double:
@@ -67,10 +75,18 @@ QList<QPoint> xyDataToQPointList(PyObject *pyXIn, PyObject *pyYIn)
if (size == 0)
return {};
switch (xv.type) {
+ case Shiboken::Numpy::View::Int16:
+ return xyDataToQPointHelper<int16_t, QPoint>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Unsigned16:
+ return xyDataToQPointHelper<uint16_t, QPoint>(xv.data, yv.data, size);
case Shiboken::Numpy::View::Int:
return xyDataToQPointHelper<int, QPoint>(xv.data, yv.data, size);
case Shiboken::Numpy::View::Unsigned:
return xyDataToQPointHelper<unsigned, QPoint>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Int64:
+ return xyDataToQPointHelper<int64_t, QPoint>(xv.data, yv.data, size);
+ case Shiboken::Numpy::View::Unsigned64:
+ return xyDataToQPointHelper<uint64_t, QPoint>(xv.data, yv.data, size);
case Shiboken::Numpy::View::Float:
return xyFloatDataToQPointHelper<float>(xv.data, yv.data, size);
case Shiboken::Numpy::View::Double: