-
Notifications
You must be signed in to change notification settings - Fork 7
Task 1 – Core Architecture Redesign (NLnet)
This page documents the results of Task 1 of the NLnet-funded DataLab refactoring project.
This task focused on decoupling the computation engine, object model, and I/O layer from the existing DataLab application (cdl
module), in order to prepare a standalone processing library.
ℹ️ Since the date of this report, the
sigima_
module has been renamed tosigima
, and has been externalized into a standalone package named Sigima. Other changes have also been made to the DataLab codebase, but this report will not cover those changes.
The following paragraphs summarize the status of each milestone at the time of this report.
All core signal/image processing features have been migrated from the cdl
module to a new internal module named sigima_
, which is fully independent from GUI-related logic.
Achieving this milestone involved a specification and design phase that started in early May 2025, followed by a development phase that began in late May 2025. The development phase was completed on June 26, 2025, with the merge of the feature/sigima
branch into the develop
branch (branch feature/sigima
has been deleted since then).
The work behind this task involved the following commits:
- Commit e383b71: First commit, initial creation of
sigima_
module (which was initially namedsigima
but later renamed tosigima_
to avoid conflicts with the future standalone package). - Commit d59f7ea: Last commit, marking the completion of the core migration.
Basic I/O functions have been successfully extracted to sigima_
, but the I/O plugin system from cdl.plugins
is still pending migration.
➡️ Remaining action:
- Implement a flexible I/O plugin architecture within
sigima_
, similar to the one incdl
.
The API redesign is underway. A new object model for signals and images is in place, but still relies on some shared infrastructure from the cdl
package.
➡️ Remaining actions (as listed in sigima_/__init__.py
):
- Remove all dependencies on
cdl
- Remove all references to
Conf
(if no longer needed) - Evaluate setting a minimum NumPy version to enable advanced type hints
- Clarify the role of the
PREFIX
attribute inBaseObj
The cdl
package has been updated to use sigima_
as its processing backend.
All previously embedded logic in cdl
now delegates to sigima_
.
The work behind this task has been done together with the work on milestone 1a, and is reflected in the same commits.
💡 Even though this milestone was initially planned to be completed after the core migration, it was more efficient to implement it in parallel.
-
feature/sigima
branch – development branch - Merge commit
-
develop
branch – merged result - Migration tracked in
sigima_/__init__.py
- Extract
sigima_
into a standalonesigima
package - Rename
cdl
todatalab
, andcdl
package todatalab-platform
- Move tests and documentation
- Implement plugin systems in
sigima