From 292336c9ab68bf48d71d391553c9d582f52faa27 Mon Sep 17 00:00:00 2001 From: "Shankar.KV" Date: Mon, 20 Apr 2026 18:56:42 +0530 Subject: [PATCH 1/3] adding params and tests --- doc/changes/unreleased.md | 4 ++++ .../deployment/language_container_deployer.py | 5 ++++- test/unit/deployment/test_language_container_builder.py | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/changes/unreleased.md b/doc/changes/unreleased.md index fb47370..6401413 100644 --- a/doc/changes/unreleased.md +++ b/doc/changes/unreleased.md @@ -1,3 +1,7 @@ # Unreleased ## Summary + +## Refactoring + +* #144: Added parameter for exaudfclient binary diff --git a/exasol/python_extension_common/deployment/language_container_deployer.py b/exasol/python_extension_common/deployment/language_container_deployer.py index d3e22f1..7363012 100644 --- a/exasol/python_extension_common/deployment/language_container_deployer.py +++ b/exasol/python_extension_common/deployment/language_container_deployer.py @@ -116,11 +116,13 @@ def __init__( language_alias: str, bucketfs_path: bfs.path.PathLike, extract_validator: ExtractValidator | None = None, + udf_client_binary: str = "exaudfclient", ) -> None: self._bucketfs_path = bucketfs_path self._language_alias = language_alias self._pyexasol_conn = pyexasol_connection + self._udf_client_binary = udf_client_binary if extract_validator: self._extract_validator = extract_validator else: @@ -342,7 +344,7 @@ def _generate_new_language_settings( new_language_alias_definition = ( f"{self._language_alias}=localzmq+protobuf:///" f"{path_in_udf_without_buckets}?lang=python#" - f"{path_in_udf}/exaudf/exaudfclient" + f"{path_in_udf}/exaudf/{self._udf_client_binary}" ) new_definitions = other_definitions + [new_language_alias_definition] new_definitions_str = " ".join(new_definitions) @@ -392,6 +394,7 @@ def create( ssl_private_key: str | None = None, deploy_timeout: timedelta = timedelta(minutes=10), display_progress: bool = False, + udf_client_binary: str = "exaudfclient", ) -> "LanguageContainerDeployer": warnings.warn( "create() function is deprecated and will be removed in a future version. " diff --git a/test/unit/deployment/test_language_container_builder.py b/test/unit/deployment/test_language_container_builder.py index d7185c9..520dbe7 100644 --- a/test/unit/deployment/test_language_container_builder.py +++ b/test/unit/deployment/test_language_container_builder.py @@ -45,6 +45,7 @@ def test_copy_slc_flavor(tmp_path): def mock_export(monkeypatch: MonkeyPatch) -> MagicMock: mock = MagicMock() monkeypatch.setattr(api, "export", mock) + monkeypatch.setattr(api, "clean_all_images", MagicMock()) return mock From 5ec08fdc2c77883070f3c19a715ae3920e3f9e02 Mon Sep 17 00:00:00 2001 From: "Shankar.KV" Date: Tue, 21 Apr 2026 12:20:31 +0530 Subject: [PATCH 2/3] forwarding the udf_client_binary --- .../deployment/language_container_deployer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exasol/python_extension_common/deployment/language_container_deployer.py b/exasol/python_extension_common/deployment/language_container_deployer.py index 7363012..65487b1 100644 --- a/exasol/python_extension_common/deployment/language_container_deployer.py +++ b/exasol/python_extension_common/deployment/language_container_deployer.py @@ -481,4 +481,4 @@ def create( callback = display_extract_progress if display_progress else None extract_validator = ExtractValidator(pyexasol_conn, deploy_timeout, callback=callback) - return cls(pyexasol_conn, language_alias, bucketfs_path, extract_validator) + return cls(pyexasol_conn, language_alias, bucketfs_path, extract_validator, udf_client_binary) From a463670d8e319bd3486cb8559ce08f653415ba5f Mon Sep 17 00:00:00 2001 From: "Shankar.KV" Date: Tue, 21 Apr 2026 14:00:23 +0530 Subject: [PATCH 3/3] fixing formatting --- .../deployment/language_container_deployer.py | 4 +++- poetry.lock | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/exasol/python_extension_common/deployment/language_container_deployer.py b/exasol/python_extension_common/deployment/language_container_deployer.py index 65487b1..057b462 100644 --- a/exasol/python_extension_common/deployment/language_container_deployer.py +++ b/exasol/python_extension_common/deployment/language_container_deployer.py @@ -481,4 +481,6 @@ def create( callback = display_extract_progress if display_progress else None extract_validator = ExtractValidator(pyexasol_conn, deploy_timeout, callback=callback) - return cls(pyexasol_conn, language_alias, bucketfs_path, extract_validator, udf_client_binary) + return cls( + pyexasol_conn, language_alias, bucketfs_path, extract_validator, udf_client_binary + ) diff --git a/poetry.lock b/poetry.lock index 09a691b..9974b13 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.3.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.3.4 and should not be changed by hand. [[package]] name = "accessible-pygments"