pyqt

kate / KDevelop sprint in Berlin

The last few days, we had a joint kate and KDevelop sprint in Berlin. I finally found the time to fix up the Python language support plugin for KDevelop, which was in a quite bad shape in the last few months. Most importantly, the 1.7-py3 branch now supports Python 3.4.3, and the master branch supports KF5 (this mostly thanks to Laurent, who did most of the porting) and Python 3.5, is free of kde4support stuff, and has had most of its more obscure features tested and fixed. Both branches will see a release in the not-too-distant future.

Python 3.5 support

Python 3.5 support includes support for the “async def” and “await” keywords, as well as for the matrix multiplication operator “@”. kdev-python doesn’t really do anything special for those, but they don’t cause syntax errors.

Python 3.5
Python 3.5

PyQt5 support

The master branch (for KF5 / Python 3.5) now has support for PyQt5. It should be quite complete; I can really recommend using kdev-python for developing PyQt applications, that is something it really shines at.

pyqt
Working with PyQt in kdev-python

New features

There are a few minor new features as well: Bytes (b”Foo”) now finally are a thing which is handled properly (and is distinct from str). You can now call class instances, wich invokes the __call__ operator:

call_class
Calling a class instance gives the return type of the __call__ operator, if that exists.

To some extent (I want to improve this further), the plugin now tries to group type guesses into common properties, if there’s too many distinct types. In the following screenshot, you can see how it deduces from the fact that the function is called with a list of string, a list of ints, and a tuple that the argument is probably some kind of iterable object.

To some extent, similar types are summarized in the description.
To some extent, similar types are summarized in the description.

I added or improved support for some modules in the Python standard library which are written in C or which heavily rely on metaprogramming and can’t be parsed so easily:

re
Code completion for the “re” module was missing for long enough.

Miscellaneous

kdev-python for Python 3 and KF5 is now again available on the AUR.

The few parts of code completion which rely on it (format string completion inside strings) have been ported to kate’s new template API.

Thanks to Christoph, kate once again has a (now built-in) autobrace feature. I spent some time on making it a bit more clever.

I also spent quite some time to go through the bugtracker and fix various small issues pointed out there. Not counting wishes, kdev-python currently has < 10 open bug reports, only one of them severe (I plan to tend to that tomorrow).

It was a fun experience bein here once again, I’m looking forward to meeting you all again soon!

2 thoughts on “kate / KDevelop sprint in Berlin”

Leave a Reply

Your email address will not be published. Required fields are marked *