From ee8e7117c79f6820cb228e0f0da522ce7d3c1dce Mon Sep 17 00:00:00 2001 From: Boxiang Sun Date: Sun, 20 May 2018 11:04:45 +0800 Subject: Improve the QByteArray implementation The available constructors for QByteArray are now: bytes, bytearray, and QByteArray, unicode is not accepted anymore. Also the concatenation is now possible between QByteArrays. Even though is not possible to initialize a QByteArray with an unicode, we include the possibility to compare it with one (Compatibility with PyQt). The __repr__ and __str__ are now properly working. There seemed to be a confusion regarding data types between Shiboken, Python2 and Python3 related to bytes, so now the structure is based on the flag SBK_BYTES_NAME, which is define as "bytes" for Python3 and "str" for Python2. Many tests were modified to properly handle string, using the `py3kcompat` module. Task-number: PYSIDE-232 Change-Id: I8b671f367c60a0870c72dcbe5662106b3225037d Reviewed-by: Alexandru Croitor --- sources/shiboken2/libshiboken/sbkpython.h | 1 - sources/shiboken2/libshiboken/sbkstring.h | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'sources/shiboken2/libshiboken') diff --git a/sources/shiboken2/libshiboken/sbkpython.h b/sources/shiboken2/libshiboken/sbkpython.h index 5fe364a29..a26c318d1 100644 --- a/sources/shiboken2/libshiboken/sbkpython.h +++ b/sources/shiboken2/libshiboken/sbkpython.h @@ -76,7 +76,6 @@ #define SbkNumber_Check(X) \ (PyNumber_Check(X) && (!PyInstance_Check(X) || PyObject_HasAttrString(X, "__trunc__"))) #define SBK_NB_BOOL(x) (x).nb_nonzero - #define SBK_STR_NAME "str" #define SBK_PyMethod_New(X, Y) PyMethod_New(X, Y, reinterpret_cast(Py_TYPE(Y))) #define Py_hash_t long diff --git a/sources/shiboken2/libshiboken/sbkstring.h b/sources/shiboken2/libshiboken/sbkstring.h index d437f1c77..a6b5fbeed 100644 --- a/sources/shiboken2/libshiboken/sbkstring.h +++ b/sources/shiboken2/libshiboken/sbkstring.h @@ -44,9 +44,9 @@ #include "shibokenmacros.h" #if PY_MAJOR_VERSION >= 3 - #define SBK_STR_NAME "unicode" + #define SBK_BYTES_NAME "bytes" #else - #define SBK_STR_NAME "str" + #define SBK_BYTES_NAME "str" #endif namespace Shiboken -- cgit v1.2.3