Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
75de695
bump: update version to 1.2.1
PierreRaybaut Apr 23, 2026
84473d8
fix: Restored the "Linear calibration" (Signal)
PierreRaybaut Apr 23, 2026
ce5ba15
Fix ROI editor not preserving non-linear axis scales of source plot
PierreRaybaut Apr 27, 2026
5e08f9c
fix(test): locate duplicate/result via group in geometry_results test
PierreRaybaut May 15, 2026
50008ea
Merge branch 'main' into release
PierreRaybaut May 20, 2026
c1ad38d
feat: update graphics resources and localization files for improved d…
PierreRaybaut May 20, 2026
9844319
feat: update application startup images
PierreRaybaut May 20, 2026
f70b8c7
fix: clean up documentation build script and remove unnecessary PDF g…
PierreRaybaut May 20, 2026
0d49aa3
feat: rename task for generating documentation assets to clarify its …
PierreRaybaut May 20, 2026
6bae127
feat: update and reorganize documentation tasks in tasks.json for cla…
PierreRaybaut May 20, 2026
5dc34c4
docs: clean xelatex PDF build (emojis, warnings, modindex)
PierreRaybaut May 20, 2026
b16caab
fix: improve font transition handling in LaTeX configuration to preve…
PierreRaybaut May 20, 2026
d78371d
fix: adjust table column widths for LaTeX output to improve formattin…
PierreRaybaut May 20, 2026
0fe8a02
fix(control): expose get_current_object_uuid() on proxy API
PierreRaybaut May 22, 2026
101e242
FIX: Refreshes plot defaults on theme switch
StefanoPierini-Codra May 22, 2026
f2106e6
Arch update
dappham-CODRA May 18, 2026
aa425ae
Merge pull request #324 from DataLab-Platform/fix/297-low-contrast-ma…
ThomasMalletCodra May 26, 2026
25ec264
Renames debug env var to avoid conflicts
StefanoPierini-Codra May 27, 2026
9cc1649
edit changelog and and comment un .env.template
ThomasMalletCodra May 28, 2026
9a69a02
Merge branch 'fix/319-rename-debug-env-var' into release
ThomasMalletCodra May 28, 2026
d4614f1
fix: add SHA256SUMS generation and attest build provenance to release…
PierreRaybaut May 28, 2026
139662f
update deps version (PlotPyStack and Sigima)
ThomasMalletCodra Jun 3, 2026
3cb84bc
update changelog
ThomasMalletCodra Jun 3, 2026
acdfe66
update changelog
ThomasMalletCodra Jun 3, 2026
f293ef0
update translation
ThomasMalletCodra Jun 3, 2026
b0fe865
fix and update minimum guidata version
ThomasMalletCodra Jun 3, 2026
2ce157a
update doc
ThomasMalletCodra Jun 3, 2026
9e6b0da
update sigima deps version to latest version 1.1.4 (with hotfix)
ThomasMalletCodra Jun 4, 2026
5128e6c
update doc translation (link to latest sigima version)
ThomasMalletCodra Jun 5, 2026
8bed1e7
update requirements.txt
ThomasMalletCodra Jun 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .env.template
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,6 @@ VENV_DIR=
# Python path for development (sibling packages)
PYTHONPATH=.
# Locale (e.g. fr)
LANG=
LANG=
# Debug mode (0 or 1)
DATALAB_DEBUG=0
2 changes: 1 addition & 1 deletion .github/workflows/_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ jobs:
x11-utils xvfb \
texlive-latex-base texlive-latex-extra texlive-fonts-recommended \
texlive-fonts-extra texlive-lang-french texlive-xetex latexmk \
fonts-symbola \
fonts-noto-core fonts-noto-mono fonts-noto-extra \
imagemagick librsvg2-bin
/sbin/start-stop-daemon --start --quiet \
--pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background \
Expand Down
20 changes: 20 additions & 0 deletions .github/workflows/release-rc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write # required by attest-build-provenance (OIDC)
attestations: write # required by attest-build-provenance
steps:
- uses: actions/checkout@v4

Expand All @@ -85,6 +87,23 @@ jobs:
name: msi-installer
path: assets/msi

- name: Generate SHA256SUMS
run: |
cd assets
find dists msi pdfs -type f \
\( -name '*.whl' -o -name '*.tar.gz' -o -name '*.msi' -o -name '*.pdf' \) \
-printf '%P\n' | sort | xargs -I{} sha256sum {} \
> SHA256SUMS
cat SHA256SUMS

- name: Attest build provenance
uses: actions/attest-build-provenance@v2
with:
subject-path: |
assets/dists/*.whl
assets/dists/*.tar.gz
assets/msi/*.msi

- name: Extract release notes
run: |
python scripts/ci_release_helpers.py release-notes \
Expand All @@ -105,3 +124,4 @@ jobs:
assets/msi/*.msi
assets/pdfs/DataLab_fr.pdf
assets/pdfs/DataLab_en.pdf
assets/SHA256SUMS
25 changes: 25 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write # required by attest-build-provenance (OIDC)
attestations: write # required by attest-build-provenance
steps:
- uses: actions/checkout@v4

Expand All @@ -93,6 +95,28 @@ jobs:
name: msi-installer
path: assets/msi

- name: Generate SHA256SUMS
# Single checksums file covering every artifact published in the
# release. Users verify with: `sha256sum -c SHA256SUMS`.
run: |
cd assets
find dists msi pdfs -type f \
\( -name '*.whl' -o -name '*.tar.gz' -o -name '*.msi' -o -name '*.pdf' \) \
-printf '%P\n' | sort | xargs -I{} sha256sum {} \
> SHA256SUMS
echo "--- SHA256SUMS ---"
cat SHA256SUMS

- name: Attest build provenance
# Produces a Sigstore-backed attestation linking each artifact to
# this exact workflow run. Verifiable with `gh attestation verify`.
uses: actions/attest-build-provenance@v2
with:
subject-path: |
assets/dists/*.whl
assets/dists/*.tar.gz
assets/msi/*.msi

- name: Extract release notes
run: |
python scripts/ci_release_helpers.py release-notes \
Expand All @@ -114,6 +138,7 @@ jobs:
assets/msi/*.msi
assets/pdfs/DataLab_fr.pdf
assets/pdfs/DataLab_en.pdf
assets/SHA256SUMS

# ---------------------------------------------------------------------------
# Build & deploy documentation (delegated to pages.yml). Non-blocking.
Expand Down
64 changes: 32 additions & 32 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -372,29 +372,6 @@
"sphinx-intl build",
],
},
{
"label": "🛠️ Generate doc assets",
"command": "${command:python.interpreterPath} scripts/run_with_env.py ${command:python.interpreterPath} -m guidata.utils.genreqs all; if ($?) { ${command:python.interpreterPath} scripts/run_with_env.py ${command:python.interpreterPath} doc/update_validation_status.py }",
"options": {
"cwd": "${workspaceFolder}",
"statusbar": {
"hide": true,
},
},
"group": {
"kind": "build",
"isDefault": false,
},
"presentation": {
"clear": true,
"echo": true,
"focus": false,
"panel": "dedicated",
"reveal": "always",
"showReuseMessage": true,
},
"type": "shell",
},
{
"label": "🧪 Coverage tests",
"type": "shell",
Expand Down Expand Up @@ -571,6 +548,30 @@
"clear": true,
},
},
{
"label": "📋 Refresh doc metadata",
"detail": "Regenerate requirements.txt + doc/requirements.rst (via guidata.utils.genreqs) and update Sigima validation status in the docs.",
"command": "${command:python.interpreterPath} scripts/run_with_env.py ${command:python.interpreterPath} -m guidata.utils.genreqs all; if ($?) { ${command:python.interpreterPath} scripts/run_with_env.py ${command:python.interpreterPath} doc/update_validation_status.py }",
"options": {
"cwd": "${workspaceFolder}",
"statusbar": {
"hide": true,
},
},
"group": {
"kind": "build",
"isDefault": false,
},
"presentation": {
"clear": true,
"echo": true,
"focus": false,
"panel": "dedicated",
"reveal": "always",
"showReuseMessage": true,
},
"type": "shell",
},
{
"label": "🖼️ Refresh doc screenshots",
"detail": "Maintainer task: regenerate PNG screenshots under doc/images/ by launching DataLab for each language (fr + en). Commit the resulting diff in a dedicated 'docs: refresh screenshots' commit.",
Expand Down Expand Up @@ -601,7 +602,7 @@
},
},
{
"label": "Create executable",
"label": "🏗️ Create executable",
"type": "shell",
"command": "${command:python.interpreterPath}",
"args": [
Expand Down Expand Up @@ -636,7 +637,7 @@
},
},
{
"label": "Create installer",
"label": "📦 Create installer",
"type": "shell",
"command": "${command:python.interpreterPath}",
"args": [
Expand Down Expand Up @@ -670,7 +671,7 @@
},
},
{
"label": "Build PDF doc",
"label": "📘 Build PDF doc",
"type": "shell",
"command": "${command:python.interpreterPath}",
"options": {
Expand Down Expand Up @@ -706,7 +707,7 @@
},
"dependsOrder": "sequence",
"dependsOn": [
"🛠️ Generate doc assets",
"📋 Refresh doc metadata",
],
},
{
Expand Down Expand Up @@ -803,7 +804,7 @@
},
"dependsOrder": "sequence",
"dependsOn": [
"🛠️ Generate doc assets",
"📋 Refresh doc metadata",
],
},
{
Expand Down Expand Up @@ -919,8 +920,7 @@
},
"dependsOrder": "sequence",
"dependsOn": [
"🛠️ Generate doc assets",
"Build PDF doc",
"📘 Build PDF doc",
],
},
{
Expand Down Expand Up @@ -958,8 +958,8 @@
"Upgrade Sigima/PlotPyStack",
"📚 Compile translations",
"Build Python packages",
"Create executable",
"Create installer",
"🏗️ Create executable",
"📦 Create installer",
],
},
{
Expand Down
2 changes: 1 addition & 1 deletion datalab/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
# this module is imported more than once, e.g. when running tests)
pass

__version__ = "1.2.0"
__version__ = "1.2.1"
__docurl__ = __homeurl__ = "https://datalab-platform.com/"
__supporturl__ = "https://github.com/DataLab-Platform/DataLab/issues/new/choose"

Expand Down
2 changes: 1 addition & 1 deletion datalab/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def get_config_app_name() -> str:
APP_DESC = _("""DataLab is a generic signal and image processing platform""")
APP_PATH = osp.dirname(__file__)

DEBUG = os.environ.get("DEBUG", "").lower() in ("1", "true")
DEBUG = os.environ.get("DATALAB_DEBUG", "").lower() in ("1", "true")
if DEBUG:
print("*** DEBUG mode *** [Reset configuration file, do not redirect std I/O]")

Expand Down
16 changes: 16 additions & 0 deletions datalab/control/baseproxy.py
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,14 @@ def get_sel_object_uuids(self, include_groups: bool = False) -> list[str]:
List of selected objects uuids.
"""

@abc.abstractmethod
def get_current_object_uuid(self) -> str | None:
"""Return current object uuid in current panel.

Returns:
UUID of the current object, or None if no object is current.
"""

@abc.abstractmethod
def select_objects(
self,
Expand Down Expand Up @@ -815,6 +823,14 @@ def get_sel_object_uuids(self, include_groups: bool = False) -> list[str]:
"""
return self._datalab.get_sel_object_uuids(include_groups)

def get_current_object_uuid(self) -> str | None:
"""Return current object uuid in current panel.

Returns:
UUID of the current object, or None if no object is current.
"""
return self._datalab.get_current_object_uuid()

def add_group(
self, title: str, panel: str | None = None, select: bool = False
) -> None:
Expand Down
9 changes: 9 additions & 0 deletions datalab/control/remote.py
Original file line number Diff line number Diff line change
Expand Up @@ -483,6 +483,15 @@ def get_sel_object_uuids(self, include_groups: bool = False) -> list[str]:
"""
return self.win.get_sel_object_uuids(include_groups)

@remote_call
def get_current_object_uuid(self) -> str | None:
"""Return current object uuid in current panel.

Returns:
UUID of the current object, or None if no object is current.
"""
return self.win.get_current_object_uuid()

@remote_call
def add_group(
self, title: str, panel: str | None = None, select: bool = False
Expand Down
Binary file modified datalab/data/logo/DataLab-Banner-150.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified datalab/data/logo/DataLab-Splash.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified datalab/data/logo/DataLab-watermark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion datalab/env.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
from guidata.env import ExecEnv as GuiDataExecEnv

# We could import DEBUG from datalab.config, but is it really worth it?
DEBUG = os.environ.get("DEBUG", "").lower() in ("1", "true")
DEBUG = os.environ.get("DATALAB_DEBUG", "").lower() in ("1", "true")


class VerbosityLevels(enum.Enum):
Expand Down
1 change: 1 addition & 0 deletions datalab/gui/actionhandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -1320,6 +1320,7 @@ def cra_fit(title, fitdlgfunc, tip: str | None = None):
self.action_for("reverse_x")
self.action_for("replace_x_by_other_y")
self.action_for("xy_mode")
self.action_for("calibration", separator=True)
self.action_for("to_cartesian", separator=True)
self.action_for("to_polar")
with self.new_menu(_("Frequency filters"), icon_name="highpass.svg"):
Expand Down
Loading
Loading