Reinhard Wobst

Number of videos:
3
boost.python - die Nabelschnur zu Python
PyCon DE 2013
Reinhard Wobst
Recorded: Oct. 17, 2013Language: German

Mit boost.python kann man Klassen und Klasseninstanzen an einen eingebetteten Python-Interpreter weiterreichen und die Instanzen dort verändern; ebenso lassen sich Python-Objekte bequem in C++ verarbeiten. Gegenüber der Python-C-API entfällt das fehlerträchtige Referenz-Handling, und der Stil ist näher an Python. Eigentlich ist diese Bibliothek die erste Wahl für diese Situation, doch leider ist die Dokumentation völlig unzureichend. Hilfe gibt es im Netz, doch unstrukturiert und nicht immer optimal. Der Vortrag geht auf Missverständnisse und typische Fehler ein, die bei der Nutzung wenigstens anfangs auftreten, zeigt die (noch vorhandenen) Grenzen auf und bietet einige "Kochrezepte". Außerdem zeigt er, wozu das alles in der Praxis gut sein kann.

OpenOffice-Dokumente selbst modifizieren
PyCon DE 2012
Reinhard Wobst
Recorded: Oct. 31, 2012Language: German

Der Vortrag stellt eine Python-Klasse vor, die das fast beliebige Modifizieren von Open/LibreOffice-Dokumenten bequem ermöglicht. Es geht mehr um die Vorstellung einer Methode als um ein fertiges Werkzeug. So manche Aufgabe lässt sich damit erheblich einfacher bewerkstelligen als mit Makros oder über die pyUNO-Schnittstelle.

Hat man eine größere Zahl von ODF-Files (also im Open Document Format) oder ein großes ODF-Dokument an vielen Stellen in gleicher Weise zu bearbeiten, ist das ermüdend, zeitaufwändig und fehleranfällig. Wozu gibt es Computer? Open/LibreOffice erlaubt zwar Makros, doch deren Leistung ist beschränkt, und die pyUNO-Schnittstelle ist kompliziert, schlecht dokumentiert und noch nicht ausgetestet.

Es geht auch anders: ODF-Files sind Zip-Archive von XML-Files, und diese lassen sich mit Pythonskripten einfach bearbeiten. Das ODF-Format ist relativ leicht zu verstehen (der Standard ist gut lesbar), der Phantasie des Anwenders sind keine Grenzen gesetzt - sei es, um manuelle Formatierungen zu markieren, in bestimmte Tabellen Spalten einzufügen oder diese um Zeilen zu ergänzen, deren Berechnung partout nicht ins Konzept der Calc-Formeln passen will.

Dabei sind allerdings einige kleine Stolpersteine zu beachten, auf die der Vortrag hinweist. Die hier vorgestellte Klasse ist eine mögliche Methode, um sich auf die "wesentlichen Dinge" konzentrieren zu können.

"White Box Debugging" - Debugger für Unittests nutzen
PyCon DE 2012
Reinhard Wobst
Recorded: Oct. 31, 2012Language: German

"White Box Testing" ist das Testen von internen Zuständen zur Laufzeit, während ubliche Unittests in der Regel nur Funktionen rufen. Man kann aber mittels eines Debuggers White Box Testing durchführen - ein Pythonskript erlaubt dies fur Python mit pdb wie auch für C/C++ - Programme mit gdb.

Unittests sind ohne Frage unerlässlich, aber oft aufwändig zu programmieren und beschränkt aussagefähig, da in der Regel nur einzelne Funktionen oder Module als Black Box getestet werden können. Nicht selten ist sogar gesonderter Code notwendig, um sinnvolle Tests zu ermöglichen.

Aussagekräftiger und naheliegender wären Tests auf Werte mitten im Code, doch solch eine Funktionalität bietet bisher nur die assert-Anweisung, die bei Fehlern mit einem wenig aussagekräftigen Abbruch endet.

Die Idee des Python-Skripts "wbd" ("white box debugging") ist, aus Kommentaren im Quelltext Konfigurationsfiles für Debugger zu erzeugen, so dass an bedingten Breakpoints Tests stattfinden. Beim Fehler landet man gleich im Debugger und kann die Umgebung analysieren.

Das funktioniert derzeit für Pythonskripte und C/C++-Programme und ist auch gut als Hilfsmittel beim Debuggen selbst einzusetzen.