Open-Source-Library: Panel 0.12 erstellt interaktive Web-Anwendungen mit Python
Die Library für das PyData-Ökosystem ermöglicht das Erstellen interaktiver Applikationen sowie Dashboards für das Web mittels frei konfigurierbarer Widgets.
(Bild: ra2studio/Shutterstock.com)
- Silke Hahn
Holoviz hat Panel 0.12 herausgebracht, eine quelloffene Python-Bibliothek zum Zusammenfügen benutzerdefinierter Widgets mit Plots, Bildern, Tabellen und Text zu interaktiven Webanwendungen und Dashboards. Neu ist dabei, dass Panel den Herausgebern zufolge fast alle Plotting-Bibliotheken unterstützt und in Jupyter Notebooks ähnlich funktionstüchtig sein soll wie auf eigenen Webservern.
Custom Components und ReactiveHTML
Das aktuelle Release bietet benutzerdefinierbare Komponenten (Custom Components), hat für JupyterLab eine Preview-Option im Gepäck und stellt Nutzerinnen und Nutzern ein überarbeitetes Index-Template bereit. Dafür ist es dem Blogeintrag des Panel-Teams zufolge nicht mehr nötig, für neue Template-Komponenten ein ganzes Jinja2-Template zu schreiben. Das vereinfachte Konzept setzt stattdessen auf Pythons ReactiveHTML-Klasse, in der Python-Parameter sich mit HTML-Attributen und -Eigenschaften versehen lassen. Obendrein ermöglicht die neue Klasse das Ausführen von Skripts, die in Python definiert sind.
Videos by heise
(Bild:Â Holoviz)
Panel 0.12 erlaubt es, Templates global zu deklarieren und führt eine Reihe neuer Layout-Komponenten ein, unter anderem eine FlexBox als Wrapper um CSS-"Flexbox"-Layouts und einen größenverstellbaren GridStack (Letzteres soll dem bestehenden GridSpec ähnlich sein). Fortschrittsbalken sollen sich mittels neuer Tqdm-Bausteine einfacher anzeigen lassen, und eine Terminal-Komponente erlaubt das Anzeigen von Logs und kann offenbar als interaktive Konsole fungieren. Zudem umfasst die Library nun einen editierbaren Schieberegler und DatetimePicker-Widgets sowie ein PDF-Fenster zum Einbetten von PDF-Dokumenten über einen URL-Pfad in ein Panel.
Domänenspezifischer Code ohne Tool-Bindung
Panel unterstützt Anwendungen, die in Python geschrieben sind, aber auch solche mit statischem HTML- beziehungsweise mit JavaScript-Code. Der Release-Meldung zufolge lässt die Library sich zum Entwickeln interaktiver Anwendungen, ohne domänenspezifischen Code an ein bestimmtes GUI- oder Webentwicklungstool zu binden. Die mit Panel erzeugten Objekte sind reaktiv, was bedeutet, dass sie sich unmittelbar aktualisieren, sobald sich ihr Zustand ändert.
Die Library ist laut Blogeintrag der Anbieter dazu gedacht, Plots mit benutzerdefinierten Steuerelementen zu erstellen, Bedienfelder fĂĽr Simulationen oder Experimente zu erzeugen sowie benutzerdefinierte Tools zur Datenerkundung und Dashboards fĂĽr Leistungsindikatoren (KPIs). Auch datenreiche Python-Webserver hatte das Panel-Team bei der Entwicklung laut eigenen Angaben im Blick. Die Parameter der mit Panel erstellten Objekte sollen sich in gemeinsamen Workflows mit Property Sheets bearbeiten lassen.
Gleicher Code fĂĽr Jupyter Notebooks und Webserver
Beim Wechseln zwischen Jupyter Notebooks und Standalone-Servern soll stets der gleiche Code zum Einsatz kommen. Wer mehr Kontrolle über die eigenen Anwendungen benötigt, kann zudem einen Blick auf das benachbarte Projekt Param werfen, das mit Panel kompatibel ist und als Library die Parameter (daher der Name), Argumente sowie Attribute steuern hilft, mit denen Entwicklerinnen und Entwickler ihren Code kontrollieren.
Auf dem Weg zur ersten Hauptversion hat das Panel-Team sich – abgesehen von den oben geschilderten Neuerungen – auf das Reparieren von Bugs konzentriert. Die vollzogenen Problembehebungen lassen sich im Detail den Release Notes entnehmen. Mehr Informationen stehen im Blogeintrag bei Holoviz.
(sih)