| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503 |
- // qbytearray.sip generated by MetaSIP
- //
- // This file is part of the QtCore Python extension module.
- //
- // Copyright (c) 2026 Riverbank Computing Limited <info@riverbankcomputing.com>
- //
- // This file is part of PyQt6.
- //
- // This file may be used under the terms of the GNU General Public License
- // version 3.0 as published by the Free Software Foundation and appearing in
- // the file LICENSE included in the packaging of this file. Please review the
- // following information to ensure the GNU General Public License version 3.0
- // requirements will be met: http://www.gnu.org/copyleft/gpl.html.
- //
- // If you do not wish to use this file under the terms of the GPL version 3.0
- // then you may purchase a commercial license. For more information contact
- // info@riverbankcomputing.com.
- //
- // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
- // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- %ModuleCode
- #include <qbytearray.h>
- %End
- class QByteArray /TypeHintIn="Union[QByteArray, bytes, bytearray, memoryview]"/
- {
- %TypeHeaderCode
- #include <qbytearray.h>
- %End
- %TypeCode
- // This is needed by __hash__().
- #include <qhash.h>
- // Convenience function for converting a QByteArray to a Python str object.
- static PyObject *QByteArrayToPyStr(QByteArray *ba)
- {
- char *data = ba->data();
- if (data)
- // QByteArrays may have embedded '\0's so set the size explicitly.
- return PyBytes_FromStringAndSize(data, ba->size());
- return PyBytes_FromString("");
- }
- %End
- %ConvertToTypeCode
- // Accept anything that implements the buffer protocol (including QByteArray
- // itself).
- if (sipIsErr == NULL)
- return sipGetBufferInfo(sipPy, NULL);
- // If it is already a QByteArray then use it rather than make an unnecessary
- // copy of the data.
- if (sipCanConvertToType(sipPy, sipType_QByteArray, SIP_NO_CONVERTORS))
- {
- *sipCppPtr = reinterpret_cast<QByteArray *>(
- sipConvertToType(sipPy, sipType_QByteArray, sipTransferObj,
- SIP_NO_CONVERTORS, 0, sipIsErr));
- return 0;
- }
- // Create a QByteArray from the data.
- sipBufferInfoDef buffer_info;
- if (sipGetBufferInfo(sipPy, &buffer_info) > 0)
- {
- // Check that the buffer is compatible with one defined by
- // PyBuffer_FillInfo() as used by QByteArray and the standard Python byte
- // objects.
- if (buffer_info.bi_format == NULL || buffer_info.bi_format[0] == 'B')
- {
- *sipCppPtr = new QByteArray(
- reinterpret_cast<const char *>(buffer_info.bi_buf),
- (qsizetype)buffer_info.bi_len);
- sipReleaseBufferInfo(&buffer_info);
- // We don't support transfer of ownership.
- return SIP_TEMPORARY;
- }
- PyErr_Format(PyExc_TypeError, "unsupported buffer format '%s'",
- buffer_info.bi_format);
- sipReleaseBufferInfo(&buffer_info);
- }
- *sipIsErr = 1;
- return 0;
- %End
- %BIGetBufferCode
- // We may be building against a debug Python build.
-
- #if defined(Py_LIMITED_API)
- Q_UNUSED(sipSelf);
-
- sipBuffer->bd_buffer = sipCpp->data();
- sipBuffer->bd_length = sipCpp->size();
- sipBuffer->bd_readonly = 0;
-
- sipRes = 0;
- #else
- sipRes = PyBuffer_FillInfo(sipBuffer, sipSelf, sipCpp->data(),
- sipCpp->size(), 0, sipFlags);
- #endif
- %End
- %PickleCode
- sipRes = Py_BuildValue("(y#)", sipCpp->data(), static_cast<Py_ssize_t>(sipCpp->size()));
- %End
- public:
- QByteArray();
- QByteArray(qsizetype size, char c /Encoding="None"/);
- QByteArray(const QByteArray &a);
- ~QByteArray();
- void resize(qsizetype size);
- %If (Qt_6_4_0 -)
- void resize(qsizetype size, char c);
- %End
- QByteArray &fill(char c /Encoding="None"/, qsizetype size = -1);
- void clear();
- qsizetype indexOf(QByteArrayView bv, qsizetype from = 0) const;
- // In Qt v6.2 this was replaced by two separate overloads. However we need to keep the optional keyword argument.
- qsizetype lastIndexOf(QByteArrayView bv, qsizetype from = -1) const;
- qsizetype count(QByteArrayView bv) const;
- QByteArray left(qsizetype len) const;
- QByteArray right(qsizetype len) const;
- QByteArray mid(qsizetype index, qsizetype length = -1) const;
- QByteArray first(qsizetype n) const;
- QByteArray last(qsizetype n) const;
- bool startsWith(QByteArrayView bv) const;
- bool endsWith(QByteArrayView bv) const;
- void truncate(qsizetype pos);
- void chop(qsizetype n);
- QByteArray toLower() const;
- QByteArray toUpper() const;
- QByteArray trimmed() const;
- QByteArray simplified() const;
- QByteArray leftJustified(qsizetype width, char fill /Encoding="None"/ = ' ', bool truncate = false) const;
- QByteArray rightJustified(qsizetype width, char fill /Encoding="None"/ = ' ', bool truncate = false) const;
- QByteArray &prepend(QByteArrayView a);
- QByteArray &prepend(qsizetype count, char c /Encoding="None"/);
- QByteArray &append(QByteArrayView a);
- QByteArray &append(qsizetype count, char c /Encoding="None"/);
- QByteArray &insert(qsizetype i, QByteArrayView data);
- QByteArray &insert(qsizetype i, qsizetype count, char c /Encoding="None"/);
- QByteArray &remove(qsizetype index, qsizetype len);
- QByteArray &replace(QByteArrayView before, QByteArrayView after);
- QByteArray &replace(qsizetype index, qsizetype len, QByteArrayView s);
- QList<QByteArray> split(char sep /Encoding="None"/) const;
- QByteArray &operator+=(QByteArrayView a);
- bool operator==(const QString &s2) const;
- %MethodCode
- // Needed for Qt v6.8 and later.
- sipRes = (*sipCpp == *a0);
- %End
- bool operator!=(const QString &s2) const;
- %MethodCode
- // Needed for Qt v6.8 and later.
- sipRes = (*sipCpp != *a0);
- %End
- bool operator<(const QString &s2) const;
- %MethodCode
- // Needed for Qt v6.8 and later.
- sipRes = (*sipCpp < *a0);
- %End
- bool operator>(const QString &s2) const;
- %MethodCode
- // Needed for Qt v6.8 and later.
- sipRes = (*sipCpp > *a0);
- %End
- bool operator<=(const QString &s2) const;
- %MethodCode
- // Needed for Qt v6.8 and later.
- sipRes = (*sipCpp <= *a0);
- %End
- bool operator>=(const QString &s2) const;
- %MethodCode
- // Needed for Qt v6.8 and later.
- sipRes = (*sipCpp >= *a0);
- %End
- short toShort(bool *ok = 0, int base = 10) const;
- ushort toUShort(bool *ok = 0, int base = 10) const;
- int toInt(bool *ok = 0, int base = 10) const;
- uint toUInt(bool *ok = 0, int base = 10) const;
- long toLong(bool *ok = 0, int base = 10) const;
- ulong toULong(bool *ok = 0, int base = 10) const;
- qlonglong toLongLong(bool *ok = 0, int base = 10) const;
- qulonglong toULongLong(bool *ok = 0, int base = 10) const;
- float toFloat(bool *ok = 0) const;
- double toDouble(bool *ok = 0) const;
- QByteArray toBase64(QByteArray::Base64Options options = QByteArray::Base64Encoding) const;
- QByteArray &setNum(double n /Constrained/, char format = 'g', int precision = 6);
- QByteArray &setNum(SIP_PYOBJECT n /TypeHint="int"/, int base = 10);
- %MethodCode
- qlonglong val = sipLong_AsLongLong(a0);
-
- if (!PyErr_Occurred())
- {
- sipRes = &sipCpp->setNum(val, a1);
- }
- else
- {
- // If it is positive then it might fit an unsigned long long.
-
- qulonglong uval = sipLong_AsUnsignedLongLong(a0);
-
- if (!PyErr_Occurred())
- {
- sipRes = &sipCpp->setNum(uval, a1);
- }
- else
- {
- sipError = (PyErr_ExceptionMatches(PyExc_OverflowError)
- ? sipErrorFail : sipErrorContinue);
- }
- }
- %End
- static QByteArray number(double n /Constrained/, char format = 'g', int precision = 6);
- static QByteArray number(SIP_PYOBJECT n /TypeHint="int"/, int base = 10);
- %MethodCode
- qlonglong val = sipLong_AsLongLong(a0);
-
- if (!PyErr_Occurred())
- {
- sipRes = new QByteArray(QByteArray::number(val, a1));
- }
- else
- {
- // If it is positive then it might fit an unsigned long long.
-
- qulonglong uval = sipLong_AsUnsignedLongLong(a0);
-
- if (!PyErr_Occurred())
- {
- sipRes = new QByteArray(QByteArray::number(uval, a1));
- }
- else
- {
- sipError = (PyErr_ExceptionMatches(PyExc_OverflowError)
- ? sipErrorFail : sipErrorContinue);
- }
- }
- %End
- static QByteArray fromBase64(const QByteArray &base64, QByteArray::Base64Options options = QByteArray::Base64Encoding);
- static QByteArray fromHex(const QByteArray &hexEncoded);
- qsizetype count() const;
- qsizetype length() const;
- bool isNull() const;
- qsizetype size() const /__len__/;
- char at(qsizetype i) const /Encoding="None"/;
- char operator[](qsizetype i) const /Encoding="None"/;
- %MethodCode
- Py_ssize_t idx = sipConvertFromSequenceIndex(a0, sipCpp->size());
-
- if (idx < 0)
- sipIsErr = 1;
- else
- sipRes = sipCpp->operator[]((qsizetype)idx);
- %End
- QByteArray operator[](SIP_PYSLICE slice) const;
- %MethodCode
- Py_ssize_t start, stop, step, slicelength;
-
- if (sipConvertFromSliceObject(a0, sipCpp->size(), &start, &stop, &step, &slicelength) < 0)
- {
- sipIsErr = 1;
- }
- else
- {
- sipRes = new QByteArray();
-
- for (Py_ssize_t i = 0; i < slicelength; ++i)
- {
- sipRes->append(sipCpp->at((qsizetype)start));
- start += step;
- }
- }
- %End
- int __contains__(const QByteArrayView bv) const;
- %MethodCode
- sipRes = sipCpp->contains(*a0);
- %End
- Py_hash_t __hash__() const;
- %MethodCode
- sipRes = qHash(*sipCpp);
- %End
- SIP_PYOBJECT __str__() const /TypeHint="str"/;
- %MethodCode
- sipRes = QByteArrayToPyStr(sipCpp);
-
- PyObject *repr = PyObject_Repr(sipRes);
-
- if (repr)
- {
- Py_DECREF(sipRes);
- sipRes = repr;
- }
- %End
- SIP_PYOBJECT __repr__() const /TypeHint="str"/;
- %MethodCode
- if (sipCpp->isNull())
- {
- sipRes = PyUnicode_FromString("PyQt6.QtCore.QByteArray()");
- }
- else
- {
- PyObject *str = QByteArrayToPyStr(sipCpp);
-
- if (str)
- {
- sipRes = PyUnicode_FromFormat("PyQt6.QtCore.QByteArray(%R)", str);
-
- Py_DECREF(str);
- }
- }
- %End
- QByteArray operator*(int m) const;
- %MethodCode
- sipRes = new QByteArray();
-
- while (a0-- > 0)
- *sipRes += *sipCpp;
- %End
- QByteArray &operator*=(int m);
- %MethodCode
- QByteArray orig(*sipCpp);
-
- sipCpp->clear();
-
- while (a0-- > 0)
- *sipCpp += orig;
- %End
- bool isEmpty() const;
- SIP_PYOBJECT data() /TypeHint="bytes"/;
- %MethodCode
- // QByteArrays may contain embedded '\0's so set the size explicitly.
-
- char *res = sipCpp->data();
- qsizetype len = sipCpp->size();
-
- if (res)
- {
- if ((sipRes = PyBytes_FromStringAndSize(res, (Py_ssize_t)len)) == NULL)
- sipIsErr = 1;
- }
- else
- {
- Py_INCREF(Py_None);
- sipRes = Py_None;
- }
- %End
- qsizetype capacity() const;
- void reserve(qsizetype size);
- void squeeze();
- void push_back(QByteArrayView a);
- void push_front(QByteArrayView a);
- bool contains(QByteArrayView bv) const;
- QByteArray toHex(char separator /Encoding="None"/ = '\x00') const;
- QByteArray toPercentEncoding(const QByteArray &exclude = QByteArray(), const QByteArray &include = QByteArray(), char percent = '%') const;
- static QByteArray fromPercentEncoding(const QByteArray &input, char percent = '%');
- QByteArray repeated(qsizetype times) const;
- void swap(QByteArray &other /Constrained/);
- enum Base64Option /BaseType=Flag/
- {
- Base64Encoding,
- Base64UrlEncoding,
- KeepTrailingEquals,
- OmitTrailingEquals,
- IgnoreBase64DecodingErrors,
- AbortOnBase64DecodingErrors,
- };
- typedef QFlags<QByteArray::Base64Option> Base64Options;
- QByteArray chopped(qsizetype len) const;
- int compare(QByteArrayView a, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
- bool isUpper() const;
- bool isLower() const;
- enum class Base64DecodingStatus
- {
- Ok,
- IllegalInputLength,
- IllegalCharacter,
- IllegalPadding,
- };
- static QByteArray::FromBase64Result fromBase64Encoding(const QByteArray &base64, QByteArray::Base64Options options = QByteArray::Base64Encoding);
- class FromBase64Result
- {
- %TypeHeaderCode
- #include <qbytearray.h>
- %End
- public:
- QByteArray decoded;
- QByteArray::Base64DecodingStatus decodingStatus;
- void swap(QByteArray::FromBase64Result &other /Constrained/);
- operator bool() const;
- %MethodCode
- // This is required because SIP doesn't handle operator bool() properly.
- sipRes = sipCpp->operator bool();
- %End
- Py_hash_t __hash__() const;
- %MethodCode
- sipRes = qHash(*sipCpp);
- %End
- };
- QByteArray sliced(qsizetype pos) const;
- QByteArray sliced(qsizetype pos, qsizetype n) const;
- %If (Qt_6_3_0 -)
- bool isValidUtf8() const;
- %End
- %If (Qt_6_4_0 -)
- QByteArray percentDecoded(char percent = '%') const;
- %End
- %If (Qt_6_5_0 -)
- QByteArray &removeAt(qsizetype pos);
- %End
- %If (Qt_6_5_0 -)
- QByteArray &removeFirst();
- %End
- %If (Qt_6_5_0 -)
- QByteArray &removeLast();
- %End
- %If (Qt_6_6_0 -)
- QByteArray &assign(QByteArrayView v);
- %End
- %If (Qt_6_8_0 -)
- QByteArray &slice(qsizetype pos, qsizetype n);
- %End
- %If (Qt_6_8_0 -)
- QByteArray &slice(qsizetype pos);
- %End
- %If (Qt_6_8_0 -)
- qsizetype max_size() const;
- %End
- %If (Qt_6_8_0 -)
- static qsizetype maxSize();
- %End
- %If (Qt_6_10_0 -)
- QByteArray nullTerminated() const;
- %End
- %If (Qt_6_10_0 -)
- QByteArray &nullTerminate();
- %End
- };
- bool operator==(const QByteArray &a1, const QByteArray &a2);
- bool operator!=(const QByteArray &a1, const QByteArray &a2);
- bool operator<(const QByteArray &a1, const QByteArray &a2);
- bool operator<=(const QByteArray &a1, const QByteArray &a2);
- bool operator>(const QByteArray &a1, const QByteArray &a2);
- bool operator>=(const QByteArray &a1, const QByteArray &a2);
- %If (Qt_6_5_0 -)
- QByteArray operator+(const QByteArray &a1, const QByteArray &a2);
- %End
- %If (- Qt_6_5_0)
- const QByteArray operator+(const QByteArray &a1, const QByteArray &a2);
- %End
- QDataStream &operator<<(QDataStream &, const QByteArray & /Constrained/) /ReleaseGIL/;
- QDataStream &operator>>(QDataStream &, QByteArray & /Constrained/) /ReleaseGIL/;
- QByteArray qCompress(const uchar *data /Array/, qsizetype nbytes /ArraySize/, int compressionLevel = -1);
- QByteArray qCompress(const QByteArray &data, int compressionLevel = -1);
- QByteArray qUncompress(const uchar *data /Array/, qsizetype nbytes /ArraySize/);
- QByteArray qUncompress(const QByteArray &data);
- %If (- Qt_6_2_0)
- quint16 qChecksum(QByteArrayView data, Qt::ChecksumType standard = Qt::ChecksumIso3309);
- %End
- bool operator==(const QByteArray::FromBase64Result &lhs, const QByteArray::FromBase64Result &rhs);
- bool operator!=(const QByteArray::FromBase64Result &lhs, const QByteArray::FromBase64Result &rhs);
|