AA_schere.jpg

© Aleksandr Ugorenkov, 123RF

Schnipp, Schnapp

Pythons Helfer

Haben Sie keine Lust mehr, das Netz endlos nach Beispielcode abzusuchen, um ein bestimmtes Python-Problem zu lösen? Mit dem Acire-Projekt im Rücken finden Sie schnell und bequem modulabhängige Codebeispiele.

Es gibt zwei Arten von Programmierern – systematische und Gelegenheitsprogrammierer. Erstere sind die typischen Karriereentwickler, die keine Zeile Code ohne Komponententest und Dokumentation schreiben. Gelegenheitsentwickler sind oft "Schnellschuss"-Hacker, die sich ausschließlich um ihre eigenen Bedürfnisse kümmern. Manche sind hingegen Hobby-Entwickler, denen es Spaß macht, mit selbst entwickelten Werkzeugen ein praktisches Problem zu lösen. Die Ubuntu-Community will beiden Herangehensweisen unterstützen – ich persönlich interessiere mich aber besonders für die letzte Gruppe.

Gelegenheit

Ubuntu – und der Linux-Desktop im allgemeinen – bringen eine unglaubliche Fülle an Technologie mit, was die große Anzahl an Python-Modulen und -Werkzeugen nur unterstreicht. Als ich Weihnachten mit meiner Frau in einem Flugzeug saß, fing ich an, über den Workflow nachzudenken, dem folgend Entwickler ihre Auswahl an Werkzeugen treffen. Meine Gedanken brachten mich zu folgendem Schluss: Entwickler lernen Programmierumgebungen kennen, indem sie Beispielcode lesen und damit spielen. Die kleinen Code-Fragmente, meist als Code-Snippets (Code-Schnipsel) bezeichnet, sind üblicherweise im Internet verteilt. Der übliche Arbeitsablauf besteht darin, ein Problem richtig einzuordnen, nach einer Lösung zu googlen, eine Webseite mit dem benötigten Code zu finden, den Code-Schnipsel in eine Datei zu kopieren, ihn wenn nötig zu bearbeiten und in ein Programm einzuarbeiten.

Mir wurde klar, dass wir den Weg, auf dem Leute die verschiedenen Python-Module kennenlernen, bedeutend abkürzen können, indem wir ein Programm entwickeln, das solche Schnipsel in einer Bibliothek anbietet. Dank der lassen sich die Schnipsel nach Python-Modulen kategorisieren, durchforsten, ausführen, bearbeiten und experimentell einsetzen. Auf dem zehnstündigen Flug entschied ich, den ersten Teil eines solchen Programms zu entwickeln. Ich nannte es Acire, was rückwärts buchstabiert den Namen meiner Frau ergibt.

Acires Entwicklung

Die erste Variante von Acire [1] wurde buchstäblich in einigen Stunden programmiert. Ich fing an, indem ich ein Quickly-Projekt erzeugte. Dabei handelt es sich um ein einfaches Framework, mit dem Sie Ubuntu-orientierte Python-Anwendungen schreiben – insbesondere Python-Anwendungen für Gnome und GTK+, die CouchDB und Glade verwenden und die später in Form von Debian-Paketen vorliegen sollen.

Abbildung 1

Abbildung 1: Acire selbst wurde unter anderem mit Gnomes integrierter Entwicklungsumgebung Glade erstellt.

Als das Kernprojekt stand, benutzte ich einige Standardkomponenten von Python, um die verschiedenen Teile des Programms zu konstruieren. Die grafische Oberfläche habe ich in Glade erzeugt (Abbildung 1). Der Quellcode-Editor nutzt ein Widget namens GtkSourceView und das Terminal verwendet PythonVTE. Mit Hilfe der fertigen Oberfläche begann ich eine grundlegende Bibliothek mit Python-Snippets anzulegen. Zu Beginn holte ich mir sämtliche PyGTK-Beispiele, lud sie in Gedit, entschied, wie die dazugehörigen Metadaten aussehen sollen und ergänzte die Beispiele um diese Metadaten. Dann brachte ich Acire bei, die Metadaten zu lesen, ergänzte die verschiedenen Teile des Interfaces und integrierte ein Knöpfchen, über das Sie die Schnipsel direkt aus Acire ausführen.

Abbildung 2

Abbildung 2: Acire als Projekt in Ubuntus Entwicklungsplattform Launchpad.

Nachdem ich zu Hause mit einer ersten fertigen Version ankam, räumte ich den Code etwas auf, veröffentlichte ihn auf Launchpad unter [2] und [3] (Abbildung 2) und erzeugte einige Pakete. Seitdem gingen aus dem Projekt eine Reihe neuer Versionen hervor – es wurden Fehler beseitigt, Features ergänzt und die Software zugänglicher für Endanwender gemacht.

Einem Freund empfehlen