From 30ac3e4495c2eaab6b83673a1a4270fb773a320d Mon Sep 17 00:00:00 2001 From: Zvika Gart Date: Fri, 11 Jul 2025 13:44:12 +0100 Subject: [PATCH 1/3] feat: Add Min-Server-Version header support --- src/codeocean/client.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/codeocean/client.py b/src/codeocean/client.py index b7d5884..3057ba7 100644 --- a/src/codeocean/client.py +++ b/src/codeocean/client.py @@ -36,7 +36,10 @@ class CodeOcean: def __post_init__(self): self.session = BaseUrlSession(base_url=f"{self.domain}/api/v1/") self.session.auth = (self.token, "") - self.session.headers.update({"Content-Type": "application/json"}) + self.session.headers.update({ + "Content-Type": "application/json", + "Min-Server-Version": "3.6.0", + }) if self.agent_id: self.session.headers.update({"Agent-Id": self.agent_id}) self.session.hooks["response"] = [ From d8cea6ba0c4a53778a64a42831507dc895815ca1 Mon Sep 17 00:00:00 2001 From: Zvika Gart Date: Fri, 11 Jul 2025 14:02:52 +0100 Subject: [PATCH 2/3] fix --- src/codeocean/client.py | 5 ++++- tests/test_client.py | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/codeocean/client.py b/src/codeocean/client.py index 3057ba7..7320cc0 100644 --- a/src/codeocean/client.py +++ b/src/codeocean/client.py @@ -10,6 +10,9 @@ from codeocean.computation import Computations from codeocean.data_asset import DataAssets +# Minimum server version required by this SDK +MIN_SERVER_VERSION = "3.6.0" + @dataclass class CodeOcean: @@ -38,7 +41,7 @@ def __post_init__(self): self.session.auth = (self.token, "") self.session.headers.update({ "Content-Type": "application/json", - "Min-Server-Version": "3.6.0", + "Min-Server-Version": MIN_SERVER_VERSION, }) if self.agent_id: self.session.headers.update({"Agent-Id": self.agent_id}) diff --git a/tests/test_client.py b/tests/test_client.py index ac465b1..7a35ebc 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -2,7 +2,7 @@ from unittest.mock import patch from urllib3.util import Retry -from codeocean.client import CodeOcean +from codeocean.client import CodeOcean, MIN_SERVER_VERSION class TestClient(unittest.TestCase): @@ -31,6 +31,8 @@ def test_basic_init(self): headers = client.session.headers self.assertIn("Content-Type", headers) self.assertEqual(headers["Content-Type"], "application/json") + self.assertIn("Min-Server-Version", headers) + self.assertEqual(headers["Min-Server-Version"], MIN_SERVER_VERSION) @patch("codeocean.client.TCPKeepAliveAdapter") def test_retry_configuration_types(self, mock_adapter): From 67fa915c71662bcd41335af1c411e8937790ebf0 Mon Sep 17 00:00:00 2001 From: Zvika Gart Date: Fri, 11 Jul 2025 14:11:45 +0100 Subject: [PATCH 3/3] fix --- src/codeocean/client.py | 8 ++++---- tests/test_client.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/codeocean/client.py b/src/codeocean/client.py index 7320cc0..e3b3b6c 100644 --- a/src/codeocean/client.py +++ b/src/codeocean/client.py @@ -10,9 +10,6 @@ from codeocean.computation import Computations from codeocean.data_asset import DataAssets -# Minimum server version required by this SDK -MIN_SERVER_VERSION = "3.6.0" - @dataclass class CodeOcean: @@ -36,12 +33,15 @@ class CodeOcean: retries: Optional[Retry | int] = 0 agent_id: Optional[str] = None + # Minimum server version required by this SDK + MIN_SERVER_VERSION = "3.6.0" + def __post_init__(self): self.session = BaseUrlSession(base_url=f"{self.domain}/api/v1/") self.session.auth = (self.token, "") self.session.headers.update({ "Content-Type": "application/json", - "Min-Server-Version": MIN_SERVER_VERSION, + "Min-Server-Version": CodeOcean.MIN_SERVER_VERSION, }) if self.agent_id: self.session.headers.update({"Agent-Id": self.agent_id}) diff --git a/tests/test_client.py b/tests/test_client.py index 7a35ebc..e4fd67c 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -2,7 +2,7 @@ from unittest.mock import patch from urllib3.util import Retry -from codeocean.client import CodeOcean, MIN_SERVER_VERSION +from codeocean.client import CodeOcean class TestClient(unittest.TestCase): @@ -32,7 +32,7 @@ def test_basic_init(self): self.assertIn("Content-Type", headers) self.assertEqual(headers["Content-Type"], "application/json") self.assertIn("Min-Server-Version", headers) - self.assertEqual(headers["Min-Server-Version"], MIN_SERVER_VERSION) + self.assertEqual(headers["Min-Server-Version"], CodeOcean.MIN_SERVER_VERSION) @patch("codeocean.client.TCPKeepAliveAdapter") def test_retry_configuration_types(self, mock_adapter):