From 4f79ff69828815a8da614b7d3a0b912be99da6b3 Mon Sep 17 00:00:00 2001 From: j-o-br <147479295+j-o-br@users.noreply.github.com> Date: Thu, 22 Jan 2026 15:17:18 +0100 Subject: [PATCH] add interpolated switch for resources (#7653) --- python-client/wmill/wmill/client.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/python-client/wmill/wmill/client.py b/python-client/wmill/wmill/client.py index 19fee97a41..b486b03fe6 100644 --- a/python-client/wmill/wmill/client.py +++ b/python-client/wmill/wmill/client.py @@ -603,12 +603,14 @@ class Windmill: self, path: str, none_if_undefined: bool = False, + interpolated: bool = True ) -> dict | None: """Get a resource value by path. Args: path: Resource path in Windmill none_if_undefined: Return None instead of raising if not found + interpolated: if variables and resources are fully unrolled Returns: Resource value dictionary or None @@ -630,9 +632,14 @@ class Windmill: f"MockedAPI present, but resource not found at ${path}, falling back to real API" ) try: - return self.get( - f"/w/{self.workspace}/resources/get_value_interpolated/{path}" - ).json() + if interpolated: + return self.get( + f"/w/{self.workspace}/resources/get_value_interpolated/{path}" + ).json() + else: + return self.get( + f"/w/{self.workspace}/resources/get_value/{path}" + ).json() except Exception as e: if none_if_undefined: return None @@ -725,7 +732,7 @@ class Windmill: Returns: State value or None if not set """ - return self.get_resource(path=path or self.state_path, none_if_undefined=True) + return self.get_resource(path=path or self.state_path, none_if_undefined=True, interpolated=True) def set_progress(self, value: int, job_id: Optional[str] = None): """Set job progress percentage (0-99). @@ -1132,7 +1139,7 @@ class Windmill: Returns: State value or None if not set """ - return self.get_resource(path=self.state_path, none_if_undefined=True) + return self.get_resource(path=self.state_path, none_if_undefined=True, interpolated=True) @state.setter def state(self, value: Any) -> None: @@ -1754,9 +1761,10 @@ def get_state(path: str | None = None) -> Any: def get_resource( path: str, none_if_undefined: bool = False, + interpolated: bool = True ) -> dict | None: """Get resource from Windmill""" - return _client.get_resource(path, none_if_undefined) + return _client.get_resource(path, none_if_undefined, interpolated) @init_global_client