Skip to content

Commit cee8f41

Browse files
committed
Merge branch 'release/14.4'
2 parents 4f5e74e + 6a20792 commit cee8f41

31 files changed

Lines changed: 6660 additions & 100 deletions

HISTORY.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,21 @@ Changelog
22
==========
33

44

5+
14.4.2 (2026-03-06)
6+
-------------------
7+
8+
* Initial release for DSS 14.4.2
9+
10+
14.4.1 (2026-02-23)
11+
-------------------
12+
13+
* Initial release for DSS 14.4.1
14+
15+
14.4.0 (2026-02-09)
16+
-------------------
17+
18+
* Initial release for DSS 14.4.0
19+
520
14.3.3 (2026-01-30)
621
-------------------
722

dataikuapi/__init__.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,14 @@
88
from .dss.recipe import GroupingRecipeCreator, UpsertRecipeCreator, JoinRecipeCreator, StackRecipeCreator, WindowRecipeCreator, SyncRecipeCreator, SamplingRecipeCreator, SQLQueryRecipeCreator, CodeRecipeCreator, SplitRecipeCreator, SortRecipeCreator, TopNRecipeCreator, DistinctRecipeCreator, DownloadRecipeCreator, PredictionScoringRecipeCreator, ClusteringScoringRecipeCreator
99

1010
from .dss.admin import DSSUserImpersonationRule, DSSGroupImpersonationRule
11+
12+
import sys
13+
import warnings
14+
15+
if sys.version_info >= (3, 6):
16+
from .launchpad_client import LaunchpadClient
17+
else:
18+
warnings.warn(
19+
"dataikuapi.LaunchpadClient is only available for Python 3.6 and above",
20+
DeprecationWarning,
21+
)

dataikuapi/dss/admin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2266,7 +2266,7 @@ def get_version(self, version_id=None):
22662266
if version_id == version.get("versionId"):
22672267
return DSSAutomationCodeEnvVersionSettings(self.codeenv, version)
22682268
raise Exception("Version %s not found in : %s" % (version_id, ', '.join(version_ids)))
2269-
elif deployment_mode in ['PLUGIN_NON_MANAGED', 'PLUGIN_MANAGED', 'AUTOMATION_NON_MANAGED_PATH', 'EXTERNAL_CONDA_NAMED']:
2269+
elif deployment_mode in ['PLUGIN_NON_MANAGED', 'PLUGIN_MANAGED', 'BUSINESS_APP_NON_MANAGED', 'BUSINESS_APP_MANAGED', 'AUTOMATION_NON_MANAGED_PATH', 'EXTERNAL_CONDA_NAMED']:
22702270
return DSSAutomationCodeEnvVersionSettings(self.codeenv, self.settings.get('noVersion', {}))
22712271
else:
22722272
raise Exception("Unexpected deployment mode %s for an automation node code env. Alter the settings directly with get_raw()", deployment_mode)

dataikuapi/dss/agent.py

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,46 @@ def delete(self):
8080
"""
8181
return self.client._perform_empty("DELETE", "/projects/%s/agents/%s" % (self.project_key, self.id))
8282

83+
def shutdown(self, version_id=None, force=False):
84+
"""
85+
Shutdown all instances of the given version of this agent
86+
87+
:param version_id: If unspecified, uses the active version.
88+
:type version_id: str | None
89+
:param force: If True, cancel requests being processed and stop the instances. If False, let those active requests complete before stopping.
90+
:type force: bool
91+
"""
92+
return self.client._perform_empty(
93+
"POST", "/projects/%s/agents/%s/actions/shutdown" % (self.project_key, self.id), body={
94+
"versionId": version_id,
95+
"force": force
96+
})
97+
98+
def status(self, version_id=None):
99+
"""
100+
Query status of instances of the given version of this agent
101+
102+
:param version_id: If unspecified, uses the active version.
103+
:type version_id: str | None
104+
:return: A dict holding the list of the status for each instance.
105+
"""
106+
return self.client._perform_json(
107+
"GET", "/projects/%s/agents/%s/status" % (self.project_key, self.id), body={
108+
"versionId": version_id
109+
})
110+
111+
def wake_up(self, version_id=None):
112+
"""
113+
Start an instance of an agent if none is started
114+
115+
:param version_id: If unspecified, uses the active version.
116+
:type version_id: str | None
117+
"""
118+
return self.client._perform_empty(
119+
"POST", "/projects/%s/agents/%s/actions/wakeup" % (self.project_key, self.id), body={
120+
"versionId": version_id
121+
})
122+
83123
class DSSAgentSettings(DSSTaggableObjectSettings):
84124
"""
85125
Settings for a agent
@@ -149,13 +189,13 @@ def llm_id(self):
149189
:rtype: :class:`str`
150190
"""
151191
if not self._agent_settings.type == "TOOLS_USING_AGENT":
152-
raise ValueError("Only valid for Visual Agents")
192+
raise ValueError("Only valid for Simple Visual Agents")
153193
return self._version_settings["toolsUsingAgentSettings"]["llmId"]
154194

155195
@llm_id.setter
156196
def llm_id(self, value):
157197
if not self._agent_settings.type == "TOOLS_USING_AGENT":
158-
raise ValueError("Only valid for Visual Agents")
198+
raise ValueError("Only valid for Simple Visual Agents")
159199
self._version_settings["toolsUsingAgentSettings"]["llmId"] = value
160200

161201
@property
@@ -166,6 +206,8 @@ def tools(self):
166206
Each tool is a dict, containing at least "toolRef", which is the identifier of the tool.
167207
The dict may also contain "additionalDescription" which is added to the description of the tool
168208
"""
209+
if not self._agent_settings.type == "TOOLS_USING_AGENT":
210+
raise ValueError("Only valid for Simple Visual Agents")
169211
return self._version_settings["toolsUsingAgentSettings"]["tools"]
170212

171213

0 commit comments

Comments
 (0)