Metadata-Version: 2.1
Name: shiboken6-generator
Version: 6.6.1
Summary: Python / C++ bindings generator
Home-page: https://www.pyside.org
Download-URL: https://download.qt.io/official_releases/QtForPython
Author: Qt for Python Team
Author-email: pyside@qt-project.org
License: LGPL
Keywords: Qt
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Environment :: MacOS X
Classifier: Environment :: X11 Applications :: Qt
Classifier: Environment :: Win32 (MS Windows)
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Database
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: User Interfaces
Classifier: Topic :: Software Development :: Widget Sets
Requires-Python: >=3.8, <3.13
Description-Content-Type: text/markdown
Requires-Dist: shiboken6==6.6.1

# Shiboken6-generator

Shiboken is the generator used by the Qt for Python project. It outputs C++
code for CPython extensions, which can be compiled and transformed into
a Python module.

C++ projects based on Qt can be wrapped, but also projects which are not
related to Qt.

## How does it work?

Shiboken uses an API Extractor that does most of the job, but it requires
a typesystem (XML file) to customize how the C++ classes/methods will be
exposed to Python.

The typesystem allows you to remove arguments from signatures, modify return
types, inject code and add conversion rules from the C++ data types to Python
data types, manipulate the ownership of the objects, etc.

# Examples

An example related to wrap a C++ library not depending on Qt can be found in
our [repository](https://code.qt.io/cgit/pyside/pyside-setup.git/tree/examples/samplebinding).

Additionally, you can find a couple of tests inside the
[git repository](https://code.qt.io/cgit/pyside/pyside-setup.git/tree/sources/shiboken6/tests).

For a more advanced case regarding extending a Qt/C++ application with Python
bindings based on the idea of the PySide module, you can check the
[scriptableapplication](https://code.qt.io/cgit/pyside/pyside-setup.git/tree/examples/scriptableapplication)
example in our repository.

# Documentation

You can find more information about Shiboken in our
[official documentation page](https://doc.qt.io/qtforpython/shiboken6/).
