Jump to content

GSoC/2024/StatusReports/ManuelAlcaraz: Difference between revisions

From KDE Community Wiki
Update report
Update report
Line 10: Line 10:


== Work report ==
== Work report ==
=== Summary ===
I have added a new module to Extra CMake Modules (ECM) that handles the generation of Python bindings using Shiboken. It's currently waiting to be merged while we figure out some  building errors on some distributions.
Using the new module, I wrote Python bindings for the following libraries:
* KWidgetsAddons
* KUnitConversion
* KCoreAddons
* KGuiAddons
* KI18n
* KNotifications
* KXmlGui
The first two of them have open merge requests, the rest will be upstreamed once the ECM one is merged.
=== Future work ===
This project only added Python bindings to a few KDE Frameworks, so writing bindings for the rest of them is an expansion point.
Due to the language differences between Python and C++, some functions can't be ported properly (namely those which have pointers as arguments, e.g. <code>bool*</code>). This wan't addressed on the project.


=== Merge requests ===
=== Merge requests ===
Line 16: Line 38:
* [https://invent.kde.org/frameworks/kwidgetsaddons/-/merge_requests/258 KWidgetsAddons]
* [https://invent.kde.org/frameworks/kwidgetsaddons/-/merge_requests/258 KWidgetsAddons]
* [https://invent.kde.org/frameworks/kunitconversion/-/merge_requests/48 KUnitConversion]
* [https://invent.kde.org/frameworks/kunitconversion/-/merge_requests/48 KUnitConversion]
* [https://invent.kde.org/sysadmin/ci-images/-/merge_requests/307 ci-images: Add required packages]
* [https://invent.kde.org/sysadmin/ci-images/-/merge_requests/307 ci-images: Add required packages] (merged)


== Links to Blogs and other writing ==
== Links to Blogs and other writing ==

Revision as of 13:37, 3 September 2024

Python bindings for KDE Frameworks

KDE Frameworks is a collection of C++ addon libraries to Qt that provide common functionality for desktop applications built with the Qt framework. While Qt itself provides support for developing applications using other programming languages, such as Python, KDE Frameworks does not.

This project aims to create Python bindings (along with comprehensive developer documentation) for a subset of the KDE Frameworks using the same technologies (Shiboken) that Qt uses for their Python port.

Mentor

Carl Schwan

Work report

Summary

I have added a new module to Extra CMake Modules (ECM) that handles the generation of Python bindings using Shiboken. It's currently waiting to be merged while we figure out some building errors on some distributions.

Using the new module, I wrote Python bindings for the following libraries:

  • KWidgetsAddons
  • KUnitConversion
  • KCoreAddons
  • KGuiAddons
  • KI18n
  • KNotifications
  • KXmlGui

The first two of them have open merge requests, the rest will be upstreamed once the ECM one is merged.

Future work

This project only added Python bindings to a few KDE Frameworks, so writing bindings for the rest of them is an expansion point.

Due to the language differences between Python and C++, some functions can't be ported properly (namely those which have pointers as arguments, e.g. bool*). This wan't addressed on the project.

Merge requests

Links to Blogs and other writing