Der magische TestDreiSprung
CI mit pytest/devpi/tox
CI mit pytest/devpi/tox
Einführung ins Testen anhand von Beispielen
Nach Grundlagen geht es zur Praxis:
Mit einigen Beispielen werden doctests im Code gezeigt, Exaktheit, Vollständigkeit, unittests werden nur angerissen, dann folgt pytest, mit config,, markern und fixtures...
Dauer: 4 Zeit-Stunden, 1.Tag nachmittags
ca. 8 min Vorstellung einiger Werkzeuge um eine QT Applikation zu erstellen, im Anschluss Diskussion mit anderen über Best Practises
Anaconda ist die führende Python Plattform für wissenschaftliche Arbeiten. Noch nie war es so leicht eine Applikation für linux zu entwickeln und auf windows oder OSX auszuführen.
conda-forge ist eine git hub community und stellt eine Vielzahl von Werkzeugen für diese Platform zur Verfügung.
Der Beitrag möchte aufzeigen welchen Mehrwert ein Anwender durch diese Community gewinnt.
Wie und wo kann man Python lernen?
Inhalt sind Tutorials, Organisationen und Veranstaltungen.
Ein kleiner Crashkurs in die Netzwerkthematik und warum man dafür Pakete generieren soll.
Eine kleine einführung in Scapy 3.
Konkrete Test- und Adminaufgaben mit Scapy lösen und automatisieren.
Dauer ca. 1-3 Stunden (je nach Hands-On Anteil)
Es gibt viele Fälle, in denen Pythonaufrufe durch falsche Datentypen stillschweigend "schiefgehen". Typechecking kann solche Probleme direkt an der Wurzel abfangen. Seit PEP 484 gibt es eine genormte Notation für Datentypen in Python, die typbezogene Tests statisch oder zur Laufzeit ermöglicht. So kann nun vermieden werden, dass "stille" Fehler verschleppt werden und schließlich Probleme weit entfernt von ihrer Ursache auftreten.
Betrachtet wird u.A. auch die Anwendung von Type-Annotations in Python 2.7 (eigentlich ein Feature von Python >=3.5).
(20 min Vortrag/Einführung, ggf mit anschließendem Tutorial (1-3h) je nach Interesse)
In Jython fallen die Grenzen zwischen Java und Python. So verbindet man schnelles Python-Prototyping mit Java-Technologie. Java-API kann schnell "mal eben" ausprobiert werden (kein Java-Compiler erforderlich); ebenso kann man eine Aufgabe in Python lösen und nahtlos in ein Java-Framework einbinden. Sogar Python-Klassen können von Java-Klassen erben.
Python ohne GIL ist Zukunftsmusik? In Jython schreibt man bereits jetzt "wahrhaft" parallelen Pythoncode.
Mit Jython 2.7.1 wird die Kompatibilität stark verbessert, u.A. ist SymPy nun nutzbar unter Jython.
Auch C-Extensions wie NumPy lassen sich durch das Jython Native Interface (JyNI) benutzen wie in CPython (noch experimentell, eine Demo wird gegeben).
(20 min Vortrag/Einführung, ggf mit anschließendem Tutorial (1-3h) je nach Interesse)
Seit PEP484 resp. Python 3.5 können wir bekanntlich Type-Hints verwenden. Diese unverbindlichen "Typen Hinweise" haben jedoch keinen Einfluss auf Performance oder Ausführung des Codes. In diesem kleinen Tutorial wird gezeigt, wie wir zur Laufzeit auch im Jupyter-Notebook Typen überprüfen können.
Wenn man nicht nur Libraries schreibt sondern Anwendungen. ....
Dann möchte man eigentlich das die Anwendung auf allen Platformen in den entsprechenden Menüs auftaucht.
Welche Lösungsansätze gibt es?
Ich habe ein Lehrprojekt erstellt, mit dem ich (fortgeschrittenen) Einsteigern über das bloße Programmieren hinaus zeigen möchte, wie aus einem Python Modul/Paket ein richtiges Projekt wird, das gute (aus meiner Sicht), frei verfügbare Werkzeuge aus dem Python/OSS Ökosystem verwendet.
Hier ist ein Überblick, was das Prjekt enthält: http://oliver.bestwalter.de/mau-mau/#implementation-and-tools
Bei Interesse kann ich das gerne genauer vorstellen und Fragen dazu klären. Mich würde auch interessieren, ob so eine Beispielprojekt hilfreich für Lernende sein kann.
Code: https://github.com/obestwalter/mau-mau
Dokumentation: http://oliver.bestwalter.de/mau-mau/
Ob Google, Facebook oder Microsoft, Python setzt sich zunehmend als Tool der Wahl für viele Anwendungen rund um Datenanalyse durch. In den letzten Jahren hat sich ein qualitativ sehr hochwertiges Ökosystem aus Open Source Bibliotheken in Python für den Data Scientist entwickelt, insbesondere im Bereich Deep Learning. Hier ein grober Überblick, ohne Anspruch auf Vollständigkeit. 30min bis 1h Vortrag. Option auf anschließende Hands-On Sessions.
Ein Python-Framework, mit dem jeder sein eigenes AR-Spiel entwickeln kann.
OSMAlchemy ist eine Erweiterung für SQLAlchemy, mit der sich die Live-Daten der OpenStreetMap sehr einfach und mit geringen Resourcen in Anwendungen, die SQLAlchemy benutzen, einbinden lassen. Dabei wird der Zugriff auf die OSM-Daten vollkommen transparent, als wäre der komplette Datenbestand lokal vorhanden.
Irgendwann kommt man als Anfänger wohl immer an den Punkt, wo man ein paar Texte oder Textdateien "elegant" und modular erzeugen möchte - und bitte nicht mit String-"Additionen" im Code!
Ob das nun personalisierte Massen-Mailings, die HTML-Seite der WebApp, oder die Konfigurationsdateien im DevOps-Bereich sind.
In meiner Schublade (sorry, mehr ließ der Orga-Aufwand hier nicht zu) liegt noch eine Präsentation zu Jinja2-Templates mit Stand Ende des Jahres. Behandelt wird ausführlich die Template-Syntax, aber auch die Nutzung von der Python-Seite aus und die Vorzüge der Engine.
Übrigens findet sich die selbe Template-Syntax auch in Engines im PHP- oder JavaScript-Bereich wieder, aber das nur mal so angemerkt... ;-)
Wie erstelle ich mein erstes eigenes Python Package und lade es auf Pypi hoch. Dann kann man es mit pip installieren.
Zusätzlich kann das Package auch von Github automatisch beim versionieren hochgeladen werden. Dazu kann der Continuous-Integration-Dienst "Travis" verwendet werden.