blog

Erster Release unserer neuen Bibliothek "Bandsaw"

Endlich ist die erste Version eines unserer Produkte aus der Tür. Gestern haben wir erfolgreich die Version 0.1 unserer neuen Bibliothek “Bandsaw” gebaut und anschließend veröffentlicht.

Bandsaw wird die Grundlage unserer Produkte bilden. Dabei handelt es sich um eine Python-Bibliothek, die es ermöglicht, einen Workflow in Form eines Python-Skripts in einzelne “Tasks” aufzusplitten, die dann separat und auf unterschiedlichen Plattformen ausgeführt werden. Die Idee dahinter ist, dass durch das Aufsplitten es möglich wird, die einzelnen Schritte individuell und unabhängig voneinander optimieren zu können.

Natürlich ist unsere erste Version noch nicht mit allen Featuren ausgestattet, die wir bieten möchten, aber es sollte ausreichen, um eine Vorstellung davon zu geben, in welche Richtung wir uns aufmachen. Mit der Version 0.1 unterstützt die Bibliothek derzeit nur Workflows, die auf einer einzelnen Maschine ablaufen. Hier eine kleine Übersicht über die derzeitigen Features:

  • Aufsplitten von Workflows in einzelne “Tasks”
  • Zusätzliches Logging beim Ausführen eines Task
  • Cachen von Ergebnissen von Tasks im Dateisystem zum Beschleunigen wiederholter Ausführungen
  • Ausführen von Tasks in Unterprozessen
  • Verwenden von unterschiedlichen Python-Interpretern pro Task um unterschiedliche Frameworks mit sich widersprechenden Abhängigkeiten zu kombinieren

Das Python-Package mit der Bibliothekt wurde bei PyPI veröffentlicht und kann daher durch einfaches aufrufen von pip install bandsaw installiert werden. Zusätzlich stellen wir englischsprachige Dokumentation bereit, inklusive einem detaillierten Benutzerleitfaden, der die Funktionsweise von Bandsaw und den inneren Aufbau beschreibt. Für alle Interessenten an der tatsächlichen Implementierung kann der Programmcode aus unserem GitLab repository abgerufen werden, viel Spaß. Der Quellcode ist lizenziert unter der Open Source MIT-Lizenz.

So, was kommt danach für Bandsaw? Wir haben noch einiges an Arbeit vor uns bis wir eine Version 1.0 mit allen gewünschten Funktionalitäten veröffentlichen können, aber wir denken, dass es nicht zu lange dauern wird, jetzt, da alle grundlegenden Funktionen existieren. Unsere Planungen für die nächsten Versionen sind folgende:

  • 0.2: Unterstützung für das Ausführen von Tasks auf verteilten Systemen über SSH.
  • 0.3: Erfassen von Metriken zum Verbrauch von Rechenkapazität.
  • 0.5: Tasks asynchron Ausführen durch die Nutzung eines Schedulers.

So viel dazu und zu unseren Plänen. Viel Spaß beim Reinschauen und keine Scheu bei Fragen, Ideen oder anderem Feedback sich bei uns zu melden. Wir freuen uns auf eure Rückmeldung.

Bis denne,

Christoph

Referenzen

2021-10-29