[neon/forks/pyqt6-sip/Neon/release] /: New upstream version 13.10.3
Dmitry Shachnev
null at kde.org
Mon Jul 27 14:41:23 BST 2026
Git commit 4861976176ad52e670d45b38bb0b5b86dd3722f3 by Dmitry Shachnev.
Committed on 21/12/2025 at 09:07.
Pushed by carlosdem into branch 'Neon/release'.
New upstream version 13.10.3
M +2 -2 PKG-INFO
M +2 -2 PyQt6_sip.egg-info/PKG-INFO
M +2 -2 setup.py
M +8 -5 sip.h
M +32 -24 sip_core.c
M +10 -0 sip_descriptors.c
https://invent.kde.org/neon/forks/pyqt6-sip/-/commit/4861976176ad52e670d45b38bb0b5b86dd3722f3
diff --git a/PKG-INFO b/PKG-INFO
index d79c074..a52de6d 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: PyQt6_sip
-Version: 13.10.2
+Version: 13.10.3
Summary: The sip module support for PyQt6
Home-page: https://github.com/Python-SIP/sip
Author: Phil Thompson
@@ -9,7 +9,7 @@ License: BSD-2-Clause
Platform: X11
Platform: macOS
Platform: Windows
-Requires-Python: >=3.9
+Requires-Python: >=3.10
License-File: LICENSE
Dynamic: license
Dynamic: license-file
diff --git a/PyQt6_sip.egg-info/PKG-INFO b/PyQt6_sip.egg-info/PKG-INFO
index d79c074..a52de6d 100644
--- a/PyQt6_sip.egg-info/PKG-INFO
+++ b/PyQt6_sip.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: PyQt6_sip
-Version: 13.10.2
+Version: 13.10.3
Summary: The sip module support for PyQt6
Home-page: https://github.com/Python-SIP/sip
Author: Phil Thompson
@@ -9,7 +9,7 @@ License: BSD-2-Clause
Platform: X11
Platform: macOS
Platform: Windows
-Requires-Python: >=3.9
+Requires-Python: >=3.10
License-File: LICENSE
Dynamic: license
Dynamic: license-file
diff --git a/setup.py b/setup.py
index 167ccba..08304b1 100644
--- a/setup.py
+++ b/setup.py
@@ -16,8 +16,8 @@ module = Extension('PyQt6.sip', module_src)
# Do the setup.
setup(
name='PyQt6_sip',
- version='13.10.2',
+ version='13.10.3',
license='BSD-2-Clause',
- python_requires='>=3.9',
+ python_requires='>=3.10',
ext_modules=[module]
)
diff --git a/sip.h b/sip.h
index a42b622..830525c 100644
--- a/sip.h
+++ b/sip.h
@@ -14,11 +14,14 @@
#include <Python.h>
/* Sanity check on the Python version. */
-#if PY_VERSION_HEX < 0x03090000
-#error "This version of PyQt6.sip requires Python v3.9 or later"
+#if PY_VERSION_HEX < 0x030a0000
+#error "This version of PyQt6.sip requires Python v3.10 or later"
#endif
+#include <stdbool.h>
+
+
#ifdef __cplusplus
#include <exception>
@@ -36,7 +39,7 @@ extern "C" {
/* The version of the ABI. */
#define SIP_ABI_MAJOR_VERSION 13
#define SIP_ABI_MINOR_VERSION 10
-#define SIP_MODULE_PATCH_VERSION 2
+#define SIP_MODULE_PATCH_VERSION 3
/*
@@ -85,8 +88,8 @@ extern "C" {
/* The version of the code generator. */
-#define SIP_VERSION 0x60b01
-#define SIP_VERSION_STR "6.11.1"
+#define SIP_VERSION 0x60f00
+#define SIP_VERSION_STR "6.15.0"
/* These are all dependent on the user-specified name of the sip module. */
#define _SIP_MODULE_FQ_NAME "PyQt6.sip"
diff --git a/sip_core.c b/sip_core.c
index a3ce01e..5604799 100644
--- a/sip_core.c
+++ b/sip_core.c
@@ -7079,43 +7079,51 @@ static int addStringInstances(PyObject *dict, sipStringInstanceDef *si)
{
PyObject *w;
- switch (si->si_encoding)
+ if (si->si_val == NULL)
{
- case 'A':
- w = PyUnicode_DecodeASCII(si->si_val, strlen(si->si_val), NULL);
- break;
+ w = Py_None;
+ Py_INCREF(w);
+ }
+ else
+ {
+ switch (si->si_encoding)
+ {
+ case 'A':
+ w = PyUnicode_DecodeASCII(si->si_val, strlen(si->si_val), NULL);
+ break;
- case 'L':
- w = PyUnicode_DecodeLatin1(si->si_val, strlen(si->si_val), NULL);
- break;
+ case 'L':
+ w = PyUnicode_DecodeLatin1(si->si_val, strlen(si->si_val), NULL);
+ break;
- case '8':
- w = PyUnicode_FromString(si->si_val);
- break;
+ case '8':
+ w = PyUnicode_FromString(si->si_val);
+ break;
- case 'w':
- /* The hack for wchar_t. */
+ case 'w':
+ /* The hack for wchar_t. */
#if defined(HAVE_WCHAR_H)
- w = PyUnicode_FromWideChar((const wchar_t *)si->si_val, 1);
- break;
+ w = PyUnicode_FromWideChar((const wchar_t *)si->si_val, 1);
+ break;
#else
- raiseNoWChar();
- return -1;
+ raiseNoWChar();
+ return -1;
#endif
case 'W':
- /* The hack for wchar_t*. */
+ /* The hack for wchar_t*. */
#if defined(HAVE_WCHAR_H)
- w = PyUnicode_FromWideChar((const wchar_t *)si->si_val,
- wcslen((const wchar_t *)si->si_val));
- break;
+ w = PyUnicode_FromWideChar((const wchar_t *)si->si_val,
+ wcslen((const wchar_t *)si->si_val));
+ break;
#else
- raiseNoWChar();
- return -1;
+ raiseNoWChar();
+ return -1;
#endif
- default:
- w = PyBytes_FromString(si->si_val);
+ default:
+ w = PyBytes_FromString(si->si_val);
+ }
}
if (sip_dict_set_and_discard(dict, si->si_name, w) < 0)
diff --git a/sip_descriptors.c b/sip_descriptors.c
index a0d839a..7f302be 100644
--- a/sip_descriptors.c
+++ b/sip_descriptors.c
@@ -388,6 +388,16 @@ static int sipVariableDescr_descr_set(PyObject *self, PyObject *obj,
sipVariableDescr *vd = (sipVariableDescr *)self;
void *addr;
+ /* Check that the value isn't being deleted. */
+ if (value == NULL)
+ {
+ PyErr_Format(PyExc_AttributeError,
+ "'%s' object attribute '%s' cannot be deleted",
+ sipPyNameOfContainer(vd->cod, vd->td), vd->vd->vd_name);
+
+ return -1;
+ }
+
/* Check that the value isn't const. */
if (vd->vd->vd_setter == NULL)
{
More information about the Neon-commits
mailing list