Shiboken6¶
6.8.0¶
PYSIDE-2792 Potential mismatches caused by nested classes when looking up converters by name have been fixed.
PYSIDE-1735 The generated code for enumerations has been refactored to consider underlying types.
6.7.3¶
PYSIDE-2834 Enumerations have been excluded from argument type checks for sequences. This addresses a problem showing in Python 3.11 causing the wrong function overloads to be used. - PYSIDE-2780 A potential refcounting bug in Lazy loading has been fixed.
6.7.2¶
PYSIDE-2764 The missing declaration of the deprecated variable cppApiVariableNameOld has been added to the generated headers.
PYSIDE-2769 Finding the clang include directories on manylinux_2_28_x86_64 has been fixed.
6.7.1¶
PYSIDE-2590 An attribute for global inline namespace scopes has been added.
PYSIDE-2602 Generate Python override code for added virtuals
PYSIDE-2602 Support for virtual functions with return type modifications has been added and the function QWebEnginePage.javaScriptPrompt() has been fixed accordingly.
PYSIDE-2675 A code snippet placeholder for the base class for polymorphic-id-expressions has been added, fixing a potentially undefined behavior when using the derived classes.
6.7.0¶
PYSIDE-31 Shiboken.wrapInstance() now returns existing instances (preserving ids).
PYSIDE-560 libshiboken/Limited API: No longer needed PyTypeObject slots have been disabled in the PyTypeObject helper struct.
PYSIDE-1106 A typesystem attribute providing a hint to a documentation file has been added to function/enum type entries (for globals).
PYSIDE-1106 Documentation can now be injected from separate .rst files.
PYSIDE-1106 Documentation injected into classes with “append” will now be appended to the class description instead of being written at the end of the page.
PYSIDE-1106 Documentation: It is now possible to inject documentation for parameters of added functions.
PYSIDE-2230 Python 3.12: Hidden Type Extensions according to PEP 697 are now used instead of shadow dictionaries.
PYSIDE-2404 The generated type index constants are no longer in uppercase. Uppercase is retained until deprecation in PySide7.
PYSIDE-2447 A typesystem attribute to generate submodules has been added.
PYSIDE-2535 Generating the Qt meta object functions handling the PySide6 signals can now be disabled by a typesystem attribute. This is useful for classes using dynamic meta objects, for example QDBusInterface.
6.6.3¶
PYSIDE-2505 Command line option parsing has been improved to skip empty tokens when in include paths.
PYSIDE-2619 An ODR violation in shibobken code has been fixed, enabling LTO.
6.6.2¶
PYSIDE-1106 Documentation: An option to disable the inheritance diagram has been added.
PYSIDE-1735 An error in the generated code when all enum values are deprecated has been fixed.
PYSIDE-2404 pyi file generation can now be disabled for debugging.
PYSIDE-2530 yocto cross builds have been fixed to find shiboken_wrapper.sh.
PYSIDE-2577 Documentation/doxygen: A bug querying const functions has been fixed.
6.6.1¶
PYSIDE-1958 Cross building support: Additional debug statements regarding include parsing (depending on verboseness) have been added. shiboken can now also process Qt headers inside system include directories. Extra generator flags can now be passed via a CMake variable.
PYSIDE-2505 The error handling in API extractor command line arguments parsing has been improved.
PYSIDE-2506 Generated code doing multiple inheritance offset calculation has been streamlined.
6.6.0¶
Typesystem syntax: The attributes “allow-thread”, “exception-handling” and “snake-case” can now be specified on
and . - The cast operators of libshiboken’s class AutoDecRef have been deprecated and the class is now movable. PYSIDE-1790 Experimental support for rvalue references has been added.
PYSIDE-2230 Initial support for Python 3.12 has been added.
PYSIDE-2316 Correctly register smartpointer signatures
PYSIDE-2394 It is now possible to override a C++ deprecation attribute in the typesystem.
PYSIDE-2446 More special functions of the number protocol have been added, for example int, float using operator int(), operator double() as well as and abs and pow.
PYSIDE-2462 The repr function of smart pointers has been improved to show information on the pointee. Similarly, the dir() of smart pointers now includes the entries of the pointee.
6.5.3¶
The generator progress messages have been changed to avoid losing warnings with ninja.
PYSIDE-2174 The include of is no longer generated when using C++ 17.
PYSIDE-2394 It is now possible to override a C++ deprecation attribute.
PYSIDE-2411 Modified return types of void functions are now properly documented.
PYSIDE-2446 It is now possible to use remove-modifications for numerical operators.
PYSIDE-2465 A test failure occurring with Python 3.11.5 has been fixed.
6.5.2¶
PYSIDE-1735 The detection of signedness for enums with typedefs as underlying types has been fixed.
PYSIDE-2335 The raising of unraisable exceptions from virtual methods overwritten in Python has been implemented. They are now handled by a handler on the stack if possible or otherwise printed.
PYSIDE-1669 Fixed option –no-implicit-conversions
6.5.1¶
PYSIDE-2313 numpy support has been extended to handle short/long long integer types.
PYSIDE-1106 The sample binding example documentation has been improved.
PYSIDE-2288 Clang 16 is now supported.
PYSIDE-2316 Smart pointer signatures are now correctly registered.
6.5.0¶
shiboken6 now generates new calls to the new functions PyObject_Vectorcall() or PyObject_CallNoArgs() for overridden virtual methods for newer Python versions (not for Limited API).
shiboken6 can now generate exclusions for classes based on preprocessor conditions, for example by the Qt configure system.
PYSIDE-454 It is now possible to specify names and namespaces for smart pointer instantiations.
PYSIDE-1019 Documentation for Qt properties is now generated.
PYSIDE-1106 Documentation for Qt signals is now generated.
PYSIDE-1106 shiboken6/Documentation: Use the py:method directives
PYSIDE-2088 An overflow of 64bit enumerations has been fixed.
PYSIDE-2099 An option –lean-header to generate forward declarations instead of includes into the module header has been added. This considerably reduces the dependencies but may require additional includes to be specified for injected code.
PYSIDE-2133 The sorting of overloads for integer/float types has been improved to avoid overflows.
PYSIDE-2256 The code generator no longer generates goto’s.
PYSIDE-2174 A typesystem XML element for opaque containers has been added, removing the need repeat the container element.
PYSIDE-2174 Support for std::array (C++ 11) and std::span has been added.
PYSIDE-2255 Overriding abstract private virtual methods is now possible.
PYSIDE-2264 A PyPy problem with version 7.3.10 and up was fixed.
6.4.2¶
PYSIDE-74 A warning about nonreachable code in generated rich comparison code has been fixed.
PYSIDE-1012 Missing g++ includes for g++ 11.3 have been added.
PYSIDE-1019 Parse the notify specification from Q_PROPERTY
PYSIDE-1019 Documentation: QObject properties are now documented similar to the C++ documentation.
6.4.1¶
PYSIDE-2099 The option –lean-header to generate forward declarations instead of includes into the module header has been added. This considerably reduces the dependencies but may require additional includes to be specified for injected code.
PYSIDE-1106 The documentation of signals (including private signals) has been fixed.
PYSIDE-1106 Documentation now uses py:method directives with markup for abstract methods.
PYSIDE-1844 Build system: On Windows, shiboken is now executed by a wrapper providing the appropriate PATH containing Qt and libclang, removing the need to set the PATH.
PYSIDE-2088 A way of specifying types for casting enum values has been added, fixing an overflow occurring for TextOption.IncludeTrailingSpaces.
6.4.0.1¶
PYSIDE-2088 Add a way of specifying types for casting enum values
PYSIDE-2088 libshiboken: Fix enum value overflow
6.4.0¶
When using C++ 20, the spaceship comparison operator is now recognized.
The signatures for function modifications now also allow for specifying unresolved types.
PYSIDE-454 Support for std::unique_ptr pointer has been added.
PYSIDE-1735 Python Enums use the newest implementation for Python (3.10) for compatibility and speed.
PYSIDE-1735 The initialization of the signature module was moved into Shiboken and rearranged. This was necessary for the new backward-compatible PyEnum module.
PYSIDE-1735 The new Python enums are made as compatible to the old ones as possible. It is again allowed to use Qt.Alignment() instead of Qt.AlignmentFlag(0), and a default of 0 is always allowed.
PYSIDE-1735 Most former IntEnum/IntFlag are replaced by pure Enum/Flag classes in a generally compatible way to other implementations.
PYSIDE-1735 Shiboken now generates warnings about using deprecated enumerations and deprecated enumeration values.
PYSIDE-1764 It is now possible to specify a list of functions to be generated instead of removing undesired functions.
PYSIDE-1932 The Q_ENUM helper functions qt_getEnumMetaObject() and qt_getEnumName() are now automatically rejected when PySide extensions are enabled.
PYSIDE-1939 An type system attribute for restricting the parent ownership heuristics to relevant classes has been introduced.
PYSIDE-454 The types “handle” and “value-handle” have been added to the smart pointers typesystem element.
PYSIDE-661 Generated error messages habe been moved into the library, significantly reducing the module size.
PYSIDE-1735 Propagate C++ enum deprecation
PYSIDE-1735 shiboken 6: Generate warnings about deprecated enum/values
PYSIDE-1812 Command line options for compiler, path and platform have been added.
PYSIDE-1887 Meta type registration is now configureable in the type system.
PYSIDE-1905 A way to specify free functions with complete custom implementations has been added (bypassing the generated argument conversion and overload decisor code).
PYSIDE-1909 A function to get the type name of a polymorphic class can now be specified.
PYSIDE-1909 Type discovery for classes that with an id expression has been fixed.
PYSIDE-1933 Converters for all smart pointee base classes are now generated.
PYSIDE-1939 Heuristics for for parent ownership can now be specified by an attribute.
PYSIDE-1995 Exceptions are now propagated through return value ownership modifications.
PYSIDE-2017 The modified pyi return types of functions are now used for signatures. Signatures also no longer contain removed arguments.
PYSIDE-2025 Documentation injection for added functions with parameter names has been fixed.
PYSIDE-2040 The full path of libdir is now used in the pkg-config file.
PYSIDE-2046 A crash caused by invalid return types of added functions has been fixed.
6.3.2¶
PYSIDE-1964 The error message about mistakenly using keyword arguments has been improved.
PYSIDE-1988 Fixed a mistaken PySequence_Check() type check to be PyTuple_Check(), which only showed in Python 3.11.
6.3.1¶
PYSIDE-1932 The Q_ENUM helper functions qt_getEnumMetaObject() and qt_getEnumName() are now automatically rejected when PySide extensions are enabled.
PYSIDE-1909 It is now possible to inject a function that retrieves the type name of a polymorphic class.
PYSIDE-1909 Type discovery code is now generated for all classes that have an id expression set.
PYSIDE-1933 Converters for all smart pointee base classes are now generated.
6.3.0¶
A fast path for converting Python strings to UTF-8 has been added to the limited API.
PYSIDE-454 Attributes for reset() and null-check of smart pointers have been added.
PYSIDE-454 None is now accepted as a shared pointer parameter and nb_bool was added to shared pointers. - PYSIDE-454 Using std::shared_ptr has been simplified; it no longer requires specifying all implementation headers for the class declaration to be fully visible.
PYSIDE-535 The generated code can now be used with PyPy.
PYSIDE-656 The error state is now correctly handled in overridden virtual methods.
PYSIDE-1605 Getters returning containers by reference can now be modified to return an opaque container by modifying the return type accordingly.
PYSIDE-1605 Bindings for reserve()/capacity() were added to contiguous opaque containers.
PYSIDE-1605 Code generation for functions taking a pointer to a container has been fixed.
PYSIDE-1660 Primitive types are now built-in unless they are present in type system file.
PYSIDE-1660 The macro PyObject_Check() has been removed from libshiboken.
PYSIDE-1666 Support for std::wstring has been added.
PYSIDE-1666 Pre-defined XML templates for standard container type conversion have been added.
PYSIDE-1666 Common standard containers (std::list, std::vector, std::pair, std::map, std::unordered_map) are now built-in unless they were present in type system file.
PYSIDE-1666 Predefined templates for standard container types have been added.
PYSIDE-1666 sets are now supported for functions taking C++ sets. On return, C++ set instances will be converted to PySets instead of PyLists.
PYSIDE-1669 An option to disable implicit conversions has been added.
PYSIDE-1675 The .pyi file generation was improved to have correct slot(), PathLike and better enum handling.
PYSIDE-1691 When qualifying function argument default values for the generated code, shiboken no longer considers each identifier it cannot otherwise find as an enum value and no longer adds the class scope to it. This may require manually adding some replace-default-expression modifications.
PYSIDE-1691 Determining the scoped of enum default values of function arguments has been improved. nullptr is now handled correctly.
PYSIDE-1684 A crash when a class cannot be found in the overload sorter has been fixed.
PYSIDE-1697 A memory leak in generated code for keyword arguments was fixed. supported in argument conversion rules.
PYSIDE-1710 Error handling was improved for embedded applications and builtin modules are trusted as valid modules.
PYSIDE-1711 Comparison operators for pointees of smart pointers are now generated.
PYSIDE-1766 XML elements native-to-target and target-to-native are now
PYSIDE-1790 Classes marked as final in C++ are now created as final Python classes.
PYSIDE-1790 Bindings for data()/constData() were added to contiguous opaque containers.
PYSIDE-1790 Opaque containers are now always generated for the specified types regardless of whether instantiations exist.
PYSIDE-1802 The code model parser was adapted to consider .h files as C++.
PYSIDE-1806 A configure check for the clang version was added.
6.2.4¶
PYSIDE-1806 A configure check for the clang version has been added.
6.2.3¶
PYSIDE-1605 Bindings for reserve()/capacity() were added to contiguous opaque containers.
PYSIDE-1766 The documentation on the conversion-rule tag was updated and native-to-target/target-to-native can now be used in argument conversion rules.
6.2.2¶
PYSIDE-454 Add further methods to smart pointers: reset() and null-check, tests for operator nb_bool, and handling None parameter.
PYSIDE-535 Remove type patching of PyType_Type and fix the meta type of enum.
PYSIDE-1499 The implicit conversion of icon.addPixmap(str) was replaced by an explicit version which takes PyPathLike.
PYSIDE-1675 The .pyi file generation was improved to have correct slot(), PathLike and better enum handling.
PYSIDE-1691 When qualifying function argument default values for the generated code, shiboken no longer considers each identifier it cannot otherwise find as an enum value and no longer adds the class scope to it. This may require manually adding some replace-default-expression modifications.
PYSIDE-1710 Error handling was improved for embedded applications and builtin modules are trusted as valid modules.
PYSIDE-1666 Handle PySets as function parameters
PYSIDE-1684 Do not crash when class cannot be found in the overload sorter
PYSIDE-1691 Added CborTag: improvements were included in shiboken to support this class.
PYSIDE-1697 Fix a leak in keyword arguments handling
PYSIDE-1703 Fix some integer types in test type systems
6.2.1¶
PYSIDE-656 Overridden virtual methods are now always correctly finalized, regardless of errors.
PYSIDE-1669 An option to disable implicit conversions has been added.
PYSIDE-1605 Getters returning containers by reference can now be modified to return an opaque container by modifying the return type accordingly.
PYSIDE-1660 Document builtin custom types
PYSIDE-1686 Adapt to LLVM 12.01
PYSIDE-1691 Handle enums without values
6.2.0¶
PYSIDE-535 Accept empty dicts as alternative to setting unused keyword dicts to nullptr.
PYSIDE-535 The type extension macros are replaced by normal function calls. This is not only a pre-requisite for PyPy support but also an improvement of type safety.
PYSIDE-535 Type creation was completely encapsulated. The implementation can now be rewritten for PyPy.
PYSIDE-535 Define SbkObjectType to be a PyTypeObject, and remove SbkObjectType from the API
PYSIDE-535 SbkObjectType is now a typedef for PyTypeObject and SbkType_FromSpec() has been changed to return a PyType_Object *.
PYSIDE-535 It is now possible to derive classes from enum types like
QtCore.Key
in earlier Python versions.PYSIDE-1334 operator bool can now be used for bool conversions (nb_bool) besides Qt-style isNull() methods.
PYSIDE-1436 The Zip importer was rewritten for the Python 3.4 API which avoids warnings in Python 3.10 .
PYSIDE-1436 The parser for .pyi files needed an update because of undocumented changes in typing.py for Python 3.10 .
PYSIDE-1436 Binary flags operators did check cppArg only, but not cppSelf. This is necessary when arguments are swapped. Recognized in Python 3.10 due to improved error checks in debug mode.
PYSIDE-1436 A very old refcounting bug from 2012 in the sample XML led to a crash in Python 3.10 . This bug was found because the refcounting of Python is more exact, now.
PYSIDE-1588 It is now possible to specify a function argument type to appear in the .pyi files.
PYSIDE-1605 Support for opaque C++ sequence scontainers has been added, allowing to pass a wrapped C++ container directly instead of converting it back and forth from Python sequences.
PYSIDE-1626 Coexistence of different feature selections works now, especially for UIC files and inheritance.
PYSIDE-1621 Python support files are now always embedded. There is no longer a physical copy installed in the file system.
PYSIDE-1637 The temporary alias shiboken6.shiboken6 for the Shiboken module was removed. Now there is an unambiguous shiboken6.Shiboken, only.
PYSIDE-1653 The handling of hidden base class member functions and using declarations has been fixed.
PYSIDE-1655 stack-use-after-scope ASAN issues in the type system parser have been fixed.
PYSIDE-1660 CPython types like PyObject, PySequence are now built into shiboken6 and no longer need to be specified in the typesystem files.
PYSIDE-1568 Construction of abstract classes whose C++ wrapper is disabled has been disabled.
It is now possible to specify a check function for custom types in the typesystem.
A new, simpler normalization function has been introduced for signatures of added functions (which means for example that const-ref is preserved).
The replacement of %PYARG_0 in C++ wrapper classes (native) has been improved and no longer requires adding casts to PyObject *.
6.1.3¶
PYSIDE-1621 Embedding of supporting Python files is now completely virtual. No FS files are involved any longer.
PYSIDE-1626 Coexistence of different feature selections works now, especially for UIC files and inheritance.
PYSIDE-1112 shiboken6/Documentation: Add a link from code injection to type system variables
PYSIDE-1252 ApiExtractor: add classmethod attribute to add-function for tr()
6.1.2¶
It is now possible to specify a check function for custom types in the typesystem.
PYSIDE-1588 The generated signatures now contain types replaced by modifications.
6.1.1¶
PYSIDE-1338 An option to use global headers was included.
6.1.0¶
PYSIDE-504 –avoid-protected-hack can now be used with gcc, clang as well.
PYSIDE-1338 Add option to use global headers
PYSIDE-1477 clang options can now be specified using command line options or project files, allowing for cross-compiling.
6.0.4¶
PYSIDE-1529 A potential crash when registering static fields has been fixed.
6.0.3¶
PYSIDE-1515 libclang’s build type is now correctly determined.
6.0.2¶
PYSIDE-841 A number of bugs in the documentation generation code have been fixed.
PYSIDE-1501 The clang parser has been fixed to be able to handle some Boost headers.
6.0.1¶
PYSIDE-487 Guard against repeated invocation of the module init function
PYSIDE-1448 Fix code injected at target/end being invoked for several overload ids
PYSIDE-1470 Allow to use shiboken.delete() to delete Q*Application