From 41cdcedd16c35f9222475245ab770b5ab691d887 Mon Sep 17 00:00:00 2001 From: akz63626 Date: Mon, 26 Oct 2026 11:05:28 +0000 Subject: [PATCH 1/3] add helio auth to TriggerAnalysisCallback and centre_sample_plan --- pyproject.toml | 2 +- .../i15_1/callbacks/analysis_callback.py | 13 +++++++++++-- .../i15_1/plans/centre_sample.py | 3 +++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0614d49..45ee458 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,7 +24,7 @@ dependencies = [ "requests", "scanspec", "deepdiff", - "heliotrapi >= v0.3.3", + "heliotrapi >= v0.4.1", "ophyd-async[ca,pva] >=0.21.2", "bluesky >= 1.13.1", "daq-config-server >= 1.5.3", diff --git a/src/crystallography_bluesky/i15_1/callbacks/analysis_callback.py b/src/crystallography_bluesky/i15_1/callbacks/analysis_callback.py index a81e405..092f1a0 100644 --- a/src/crystallography_bluesky/i15_1/callbacks/analysis_callback.py +++ b/src/crystallography_bluesky/i15_1/callbacks/analysis_callback.py @@ -11,7 +11,14 @@ class TriggerAnalysisCallback(CallbackBase): """A callback that will pass the nexus file location to analysis on a plan end.""" - def __init__(self, analysis_url: str, analysis_name: str, **kwargs): + def __init__( + self, + analysis_url: str, + analysis_name: str, + username: str | None = None, + password: str | None = None, + **kwargs, + ): """Create a callback to trigger analysis on plan end. Args: @@ -19,7 +26,9 @@ def __init__(self, analysis_url: str, analysis_name: str, **kwargs): analysis_name (str): The name of the analysis to trigger. **kwargs: Additional kwargs passed on to the analysis """ - self._client = AnalysisClient(analysis_url) + self._client = AnalysisClient( + base_url=analysis_url, username=username, password=password + ) self._analysis_name = analysis_name self._kwargs = kwargs self.request_id = None diff --git a/src/crystallography_bluesky/i15_1/plans/centre_sample.py b/src/crystallography_bluesky/i15_1/plans/centre_sample.py index 256b9de..d5395a2 100644 --- a/src/crystallography_bluesky/i15_1/plans/centre_sample.py +++ b/src/crystallography_bluesky/i15_1/plans/centre_sample.py @@ -1,3 +1,4 @@ +import os from typing import Any import bluesky.plan_stubs as bps @@ -56,6 +57,8 @@ def centre_sample( I15_1_ANALYSIS_URL, "sample_alignment_i15_1", beamline="i15-1", + username=os.getenv("HELIOTRAPI_USERNAME"), + password=os.getenv("HELIORAPI_PASSWORD"), ) yield from bps.mv( From bb5f5eaeeb5a0a58caa5f1eaf370e52ca5c5c107 Mon Sep 17 00:00:00 2001 From: akz63626 Date: Mon, 26 Oct 2026 11:07:07 +0000 Subject: [PATCH 2/3] add username and password to args --- .../i15_1/callbacks/analysis_callback.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/crystallography_bluesky/i15_1/callbacks/analysis_callback.py b/src/crystallography_bluesky/i15_1/callbacks/analysis_callback.py index 092f1a0..9b1b235 100644 --- a/src/crystallography_bluesky/i15_1/callbacks/analysis_callback.py +++ b/src/crystallography_bluesky/i15_1/callbacks/analysis_callback.py @@ -24,6 +24,8 @@ def __init__( Args: analysis_url (str): The url where the analysis listener is running. analysis_name (str): The name of the analysis to trigger. + username (str or None): The username for heliotrapi + password (str or None): The password for heliotrapi **kwargs: Additional kwargs passed on to the analysis """ self._client = AnalysisClient( From a119006e174cc4805a33095cc99def497dbd4c68 Mon Sep 17 00:00:00 2001 From: Richard Dixey <185198552+RJCD-Diamond@users.noreply.github.com> Date: Mon, 26 Oct 2026 15:00:05 +0000 Subject: [PATCH 3/3] Update src/crystallography_bluesky/i15_1/plans/centre_sample.py Co-authored-by: Dominic Oram --- src/crystallography_bluesky/i15_1/plans/centre_sample.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/crystallography_bluesky/i15_1/plans/centre_sample.py b/src/crystallography_bluesky/i15_1/plans/centre_sample.py index d5395a2..ddaab12 100644 --- a/src/crystallography_bluesky/i15_1/plans/centre_sample.py +++ b/src/crystallography_bluesky/i15_1/plans/centre_sample.py @@ -58,7 +58,7 @@ def centre_sample( "sample_alignment_i15_1", beamline="i15-1", username=os.getenv("HELIOTRAPI_USERNAME"), - password=os.getenv("HELIORAPI_PASSWORD"), + password=os.getenv("HELIOTRAPI_PASSWORD"), ) yield from bps.mv(