From 5dacb67600c20f011985335623f2ada844363890 Mon Sep 17 00:00:00 2001 From: Sebastien Delaux Date: Tue, 10 Mar 2026 15:03:35 +1300 Subject: [PATCH] Removing all v1/v0 switch logic --- src/oceanum/datamesh/connection.py | 17 ++++------------- src/oceanum/datamesh/session.py | 28 +--------------------------- src/oceanum/datamesh/zarr.py | 5 ++--- 3 files changed, 7 insertions(+), 43 deletions(-) diff --git a/src/oceanum/datamesh/connection.py b/src/oceanum/datamesh/connection.py index b837e5a..6d2e197 100644 --- a/src/oceanum/datamesh/connection.py +++ b/src/oceanum/datamesh/connection.py @@ -168,33 +168,24 @@ def _check_info(self): """ Check if there are any infos available that need to be displayed. Typically will ask to update the client if the version is outdated. - Also will try to guess gateway address if not provided. + Also will set gateway address to service address if not provided. """ - _gateway = self._gateway or f"{self._proto}://{self._host}" - self._is_v1 = True + self._gateway = self._gateway or f"{self._proto}://{self._host}" try: resp = self._retried_request( - f"{_gateway}/info/oceanum_python/{__version__}", + f"{self._gateway}/info/oceanum_python/{__version__}", retries=5, ) if resp.status_code == 200: r = resp.json() if "message" in r: print(r["message"]) - self._gateway = _gateway - return - elif resp.status_code == 404: - print("Using datamesh API version 0") - self._is_v1 = False - self._gateway = self._gateway or f"{self._proto}://gateway.{self._host}" return raise DatameshConnectError( f"Failed to reach datamesh: {resp.status_code}-{resp.text}" ) except Exception as e: - warnings.warn(f"Failed to reach datamesh gateway at {_gateway}: {e}") - warnings.warn("Assuming datamesh API version 1") - self._gateway = _gateway + warnings.warn(f"Failed to reach datamesh gateway at {self._gateway}: {e}") def _validate_response(self, resp): if resp.status_code >= 400: diff --git a/src/oceanum/datamesh/session.py b/src/oceanum/datamesh/session.py index e36c164..7bb3cf0 100644 --- a/src/oceanum/datamesh/session.py +++ b/src/oceanum/datamesh/session.py @@ -1,6 +1,6 @@ from pydantic import BaseModel from typing import Optional -from datetime import datetime, timedelta +from datetime import datetime from .exceptions import DatameshConnectError, DatameshSessionError from .utils import retried_request, HTTPSession import atexit @@ -39,21 +39,6 @@ def acquire( the connection session duration if set or 3600 (1 hour) """ - # Back-compatibility with beta version (returning dummy session object) - if not connection._is_v1: - session = cls( - id="dummy_session", - user="dummy_user", - creation_time=datetime.now(), - end_time=datetime.now() - + timedelta(seconds=connection._session_params.get("duration", 3600)), - write=False, - verified=False, - ) - session._connection = connection - atexit.register(session.close) - return session - # v1 try: headers = { "Cache-Control": "no-store" @@ -120,7 +105,6 @@ def from_proxy( session = cls(**res.json()) session._connection = lambda: None session._connection._gateway = os.environ["DATAMESH_ZARR_PROXY"] - session._connection._is_v1 = True session._connection.http_session = http_session atexit.register(session.close) return session @@ -142,12 +126,6 @@ def from_session_id(cls, connection, session_id: str): Session id to acquire. """ - # Back-compatibility with beta version (returning dummy session object) - if not connection._is_v1: - raise DatameshSessionError( - "Cannot acquire session from id when using datamesh v0" - ) - # v1 try: res = retried_request( f"{connection._gateway}/session/{session_id}", @@ -171,10 +149,6 @@ def add_header(self, headers: dict): return {**headers, **self.header} def close(self, finalise_write: bool = False): - # Back-compatibility with beta version (ignoring) - if not self._connection._is_v1: - return - # datamesh v1 try: atexit.unregister(self.close) except: diff --git a/src/oceanum/datamesh/zarr.py b/src/oceanum/datamesh/zarr.py index ecb58ec..60da3c7 100644 --- a/src/oceanum/datamesh/zarr.py +++ b/src/oceanum/datamesh/zarr.py @@ -73,8 +73,7 @@ def __init__( self.datasource = datasource self.session = session self.method = method - self._is_v1 = connection._is_v1 - self.api = api if connection._is_v1 else "zarr" + self.api = api self.headers = {**connection._auth_headers} self.headers = session.add_header(self.headers) if nocache: @@ -142,7 +141,7 @@ def __contains__(self, item): encoded_item = urllib.parse.quote(item, safe="/") resp = self._retried_request( f"{self._proxy}/{self.datasource}/{encoded_item}", - method="HEAD" if self._is_v1 else "GET", + method="HEAD", connect_timeout=self.connect_timeout, read_timeout=self.read_timeout, )