DataLab icon indicating copy to clipboard operation
DataLab copied to clipboard

Create `sigimax`, a new GUI tools library for DataLab

Open PierreRaybaut opened this issue 9 months ago • 0 comments

🎉 New repository

Here is the associated repository: https://github.com/DataLab-Platform/sigimax

✨ Objective

Extract and consolidate all generic, reusable GUI and application-layer components from the datalab-app (formerly cdl) package into a new standalone library: sigimax.

This will provide a common foundation for building new Qt-based data analysis applications, both inside and outside of the main DataLab GUI, and facilitate future reuse, testing, and maintenance.


🧱 Scope of sigimax

The sigimax package will include:

  • 🧰 Generic widgets (e.g. from cdl.widgets, excluding those specific to DataLab like connection.py, wizard.py)
  • ⚙️ Application configuration management
  • 📜 Logging system and log display widgets
  • 🕘 Recent file management
  • 🗂️ HDF5 file browser widget
  • 🪟 Basic main window template (foundation for standalone apps)
  • 🚀 Welcome dialog template (e.g. "New project", "Open recent", "Import file")
  • 🔗 DataLab client widgets (migration of DataLab Simple Client GUI)

🗂 Suggested module structure

sigimax/
├── widgets/
│   ├── browser.py
│   ├── logviewer.py
│   ├── hdf5explorer.py
│   └── ...
├── config/
│   ├── settings.py
│   └── defaults.py
├── app/
│   ├── mainwindow_base.py
│   └── welcome_dialog.py
├── client/
└── ...

🚧 Tasks

  • [ ] Define boundaries: what stays in datalab-app, what moves to sigimax
  • [x] Create new repo sigimax in the DataLab-Platform GitHub org
  • [ ] Create Python package scaffolding (PEP 621-style pyproject.toml)
  • [ ] Move selected modules from cdl/ to sigimax/ (preserving git history if possible)
  • [ ] Integrate the simple XML-RPC client widgets (GUI part of the old cdlclient package)
  • [ ] Update internal imports in DataLab accordingly
  • [ ] Add initial documentation + usage examples (for reuse in other apps)
  • [x] Publish on PyPI under the sigimax name

📌 Context

This library complements the newly modularized architecture of the DataLab ecosystem:

  • datalab-platform: GUI frontend
  • sigima: computational backend (incl. remote control)
  • sigimax: base components for UI, configuration, and reusable elements

The goal is to support future development of lightweight, domain-specific applications by providing a clean, tested, and documented foundation.


🔗 Related

  • #181
  • #166

PierreRaybaut avatar May 24 '25 12:05 PierreRaybaut