diff --git a/pyproject.toml b/pyproject.toml index b472f1b..9d3d10d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,7 @@ dependencies = [ "requests", "scanspec", "deepdiff", - "heliotrapi >= v0.3.3", + "heliotrapi >= v0.4.1", "ophyd-async[ca,pva] >=0.21.2", "bluesky >= 1.16.0", "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 6e3695e..46b5bd8 100644 --- a/src/crystallography_bluesky/i15_1/callbacks/analysis_callback.py +++ b/src/crystallography_bluesky/i15_1/callbacks/analysis_callback.py @@ -12,15 +12,26 @@ 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: Any): + def __init__( + self, + analysis_url: str, + analysis_name: str, + username: str | None = None, + password: str | None = None, + **kwargs: Any, + ): """Create a callback to trigger analysis on plan end. 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(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 efe080d..5de00d7 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 @@ -57,6 +58,8 @@ def centre_sample( I15_1_ANALYSIS_URL, "sample_alignment_i15_1", beamline="i15-1", + username=os.getenv("HELIOTRAPI_USERNAME"), + password=os.getenv("HELIOTRAPI_PASSWORD"), ) yield from bps.mv( diff --git a/uv.lock b/uv.lock index 1a32a62..6d7c915 100644 --- a/uv.lock +++ b/uv.lock @@ -1066,7 +1066,7 @@ requires-dist = [ { name = "deepdiff" }, { name = "dls-dodal", git = "https://github.com/DiamondLightSource/dodal.git?rev=main" }, { name = "h5py" }, - { name = "heliotrapi", specifier = ">=0.3.3" }, + { name = "heliotrapi", specifier = ">=0.4.1" }, { name = "ispyb" }, { name = "matplotlib" }, { name = "numpy", specifier = ">=2.2.6" }, @@ -1557,7 +1557,7 @@ wheels = [ [[package]] name = "heliotrapi" -version = "0.3.3" +version = "0.4.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "event-model" }, @@ -1576,9 +1576,9 @@ dependencies = [ { name = "stomp-py" }, { name = "uvicorn" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/49/98/163ae4261b86db25541eaf93b17d71db977e9abc002e37eb6bb33b1ab147/heliotrapi-0.3.3.tar.gz", hash = "sha256:d47acda8b6030639cccde9a2d9d96f34c2b5b58197ec79215a16fe07a1086f2d", size = 775011, upload-time = "2026-09-29T08:50:03.036Z" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ec/96ddd939768d323fcb1929a1d6c537bc2a5331fa42d3864bfbea6bb2c36a/heliotrapi-0.4.4.1.tar.gz", hash = "sha256:d13b3a7a909e93c349cb340a2981d820822cf27cde9a6be933431fef53ddc124", size = 789511, upload-time = "2026-10-30T16:12:14.647Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/66/ff/7ee1d5c638a7bff270251bfcd2ad5e23e0801402e890028a23e15c10f4af/heliotrapi-0.3.3-py3-none-any.whl", hash = "sha256:a1a9ceb600acfb9f919283b42d90350f0d43eaf69236d19e6848f03327a2770e", size = 55565, upload-time = "2026-09-29T08:50:01.787Z" }, + { url = "https://files.pythonhosted.org/packages/65/35/65b77e1569f0c8f184b25d8209c33fbc2889b7ad61373be1c29b65f8c644/heliotrapi-0.4.4.1-py3-none-any.whl", hash = "sha256:b6787f3b51c36e924a42a3e3425a0fcb4358a9d088362b3fe771d69d8ad81bc7", size = 63155, upload-time = "2026-10-30T16:12:13.588Z" }, ] [[package]]