dataiku-api-client 14.7.3__tar.gz → 14.7.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/HISTORY.txt +11 -0
- {dataiku_api_client-14.7.3/dataiku_api_client.egg-info → dataiku_api_client-14.7.5}/PKG-INFO +13 -2
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5/dataiku_api_client.egg-info}/PKG-INFO +13 -2
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/app.py +5 -1
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/cobuild.py +304 -6
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/llm.py +8 -4
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/project.py +18 -3
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/scenario.py +3 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dssclient.py +24 -3
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/setup.py +1 -1
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/LICENSE.txt +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/MANIFEST.in +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/README +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataiku_api_client.egg-info/SOURCES.txt +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataiku_api_client.egg-info/dependency_links.txt +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataiku_api_client.egg-info/requires.txt +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataiku_api_client.egg-info/top_level.txt +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/__init__.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/apinode_admin/__init__.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/apinode_admin/auth.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/apinode_admin/service.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/apinode_admin_client.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/apinode_client.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/auth.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/base_client.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/__init__.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/admin.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/agent.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/agent_review.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/agent_tool.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/analysis.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/apideployer.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/apiservice.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/businessapp.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/codestudio.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/continuousactivity.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/dashboard.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/data_collection.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/data_directories_footprint.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/data_quality.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/dataset.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/discussion.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/document_extractor.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/drift.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/enterprise_asset_library.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/evaluationcomparison.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/evaluationstore.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/feature_store.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/flow.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/future.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/insight.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/job.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/jupyternotebook.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/knowledgebank.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/labeling_task.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/langchain/__init__.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/langchain/embeddings.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/langchain/knowledge_bank.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/langchain/llm.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/langchain/tool.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/langchain/utils.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/llm_tracing/__init__.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/llm_utils/__init__.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/local_model.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/macro.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/managedfolder.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/meaning.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/messaging_channel.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/metrics.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/mira.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/ml.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/mlflow.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/modelcomparison.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/modelevaluationstore.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/notebook.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/plugin.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/project_standards.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/projectdeployer.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/projectfolder.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/projectlibrary.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/recipe.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/retrieval_augmented_llm.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/savedmodel.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/semantic_model.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/sqlnotebook.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/sqlquery.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/statistics.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/streaming_endpoint.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/tools/__init__.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/tools/codegen.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/tools/langchain.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/unifiedmonitoring.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/utils.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/webapp.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/wiki.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/workspace.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss_plugin_mlflow/__init__.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss_plugin_mlflow/artifact_repository.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss_plugin_mlflow/header_provider.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss_plugin_mlflow/utils.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/fm/__init__.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/fm/cloudaccounts.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/fm/future.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/fm/instances.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/fm/instancesettingstemplates.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/fm/loadbalancers.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/fm/tenant.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/fm/virtualnetworks.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/fmclient.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/govern/__init__.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/govern/admin.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/govern/admin_blueprint_designer.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/govern/admin_custom_pages_handler.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/govern/admin_roles_permissions_handler.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/govern/artifact.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/govern/artifact_search.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/govern/blueprint.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/govern/custom_page.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/govern/future.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/govern/time_series.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/govern/uploaded_file.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/govern/users_container.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/govern_client.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/iam/__init__.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/iam/settings.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/launchpad/__init__.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/launchpad/exceptions.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/launchpad/group.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/launchpad/node.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/launchpad/profile.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/launchpad/response.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/launchpad/task.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/launchpad/user.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/launchpad_client.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/utils.py +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/requirements.txt +0 -0
- {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/setup.cfg +0 -0
|
@@ -2,6 +2,17 @@ Changelog
|
|
|
2
2
|
==========
|
|
3
3
|
|
|
4
4
|
|
|
5
|
+
|
|
6
|
+
14.7.5 (2026-09-29)
|
|
7
|
+
-------------------
|
|
8
|
+
|
|
9
|
+
* Initial release for DSS 14.7.5
|
|
10
|
+
|
|
11
|
+
14.7.4 (2026-09-14)
|
|
12
|
+
-------------------
|
|
13
|
+
|
|
14
|
+
* Initial release for DSS 14.7.4
|
|
15
|
+
|
|
5
16
|
14.7.3 (2026-08-03)
|
|
6
17
|
-------------------
|
|
7
18
|
|
{dataiku_api_client-14.7.3/dataiku_api_client.egg-info → dataiku_api_client-14.7.5}/PKG-INFO
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dataiku-api-client
|
|
3
|
-
Version: 14.7.
|
|
3
|
+
Version: 14.7.5
|
|
4
4
|
Summary: Python API client for Dataiku APIs
|
|
5
5
|
Home-page: https://www.dataiku.com
|
|
6
|
-
Download-URL: https://github.com/dataiku/dataiku-api-client-python/tarball/14.7.
|
|
6
|
+
Download-URL: https://github.com/dataiku/dataiku-api-client-python/tarball/14.7.5
|
|
7
7
|
Author: Dataiku
|
|
8
8
|
Author-email: support@dataiku.com
|
|
9
9
|
License: Apache Software License
|
|
@@ -36,6 +36,17 @@ Changelog
|
|
|
36
36
|
==========
|
|
37
37
|
|
|
38
38
|
|
|
39
|
+
|
|
40
|
+
14.7.5 (2026-09-29)
|
|
41
|
+
-------------------
|
|
42
|
+
|
|
43
|
+
* Initial release for DSS 14.7.5
|
|
44
|
+
|
|
45
|
+
14.7.4 (2026-09-14)
|
|
46
|
+
-------------------
|
|
47
|
+
|
|
48
|
+
* Initial release for DSS 14.7.4
|
|
49
|
+
|
|
39
50
|
14.7.3 (2026-08-03)
|
|
40
51
|
-------------------
|
|
41
52
|
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5/dataiku_api_client.egg-info}/PKG-INFO
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dataiku-api-client
|
|
3
|
-
Version: 14.7.
|
|
3
|
+
Version: 14.7.5
|
|
4
4
|
Summary: Python API client for Dataiku APIs
|
|
5
5
|
Home-page: https://www.dataiku.com
|
|
6
|
-
Download-URL: https://github.com/dataiku/dataiku-api-client-python/tarball/14.7.
|
|
6
|
+
Download-URL: https://github.com/dataiku/dataiku-api-client-python/tarball/14.7.5
|
|
7
7
|
Author: Dataiku
|
|
8
8
|
Author-email: support@dataiku.com
|
|
9
9
|
License: Apache Software License
|
|
@@ -36,6 +36,17 @@ Changelog
|
|
|
36
36
|
==========
|
|
37
37
|
|
|
38
38
|
|
|
39
|
+
|
|
40
|
+
14.7.5 (2026-09-29)
|
|
41
|
+
-------------------
|
|
42
|
+
|
|
43
|
+
* Initial release for DSS 14.7.5
|
|
44
|
+
|
|
45
|
+
14.7.4 (2026-09-14)
|
|
46
|
+
-------------------
|
|
47
|
+
|
|
48
|
+
* Initial release for DSS 14.7.4
|
|
49
|
+
|
|
39
50
|
14.7.3 (2026-08-03)
|
|
40
51
|
-------------------
|
|
41
52
|
|
|
@@ -264,7 +264,11 @@ class TemporaryDSSAppInstance(DSSAppInstance):
|
|
|
264
264
|
"""
|
|
265
265
|
Delete this app instance.
|
|
266
266
|
"""
|
|
267
|
-
self.get_as_project().delete(
|
|
267
|
+
self.get_as_project().delete(
|
|
268
|
+
clear_managed_datasets=True,
|
|
269
|
+
clear_output_managed_folders=True,
|
|
270
|
+
clear_managed_knowledge_banks=True,
|
|
271
|
+
clear_job_and_scenario_logs=True)
|
|
268
272
|
|
|
269
273
|
def __enter__(self,):
|
|
270
274
|
return self
|
|
@@ -7,6 +7,210 @@ from dataikuapi.dss.recipe import DSSRecipe
|
|
|
7
7
|
from dataikuapi.dss.savedmodel import DSSSavedModel
|
|
8
8
|
from dataikuapi.dss.streaming_endpoint import DSSStreamingEndpoint
|
|
9
9
|
|
|
10
|
+
import sys
|
|
11
|
+
|
|
12
|
+
# Only meant to avoid parent modules to fail when importing this module, but this won't work at runtime. We aren't trying to support
|
|
13
|
+
# Python versions older than 3.5 in this module. See this thread (if it still exists: https://dataiku.slack.com/archives/CBZBN0ZCN/p1788265325448089).
|
|
14
|
+
if sys.version_info > (3, 4):
|
|
15
|
+
from enum import Enum
|
|
16
|
+
else:
|
|
17
|
+
class Enum(object):
|
|
18
|
+
pass
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class CobuildConversationMode(Enum):
|
|
22
|
+
"""Mode used for a Cobuild user message."""
|
|
23
|
+
BUILD = "BUILD"
|
|
24
|
+
PLAN = "PLAN"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class CobuildPlanStatus(Enum):
|
|
28
|
+
"""Lifecycle state of a :class:`CobuildPlan`."""
|
|
29
|
+
DRAFT = "DRAFT"
|
|
30
|
+
ACTIVE = "ACTIVE"
|
|
31
|
+
INACTIVE = "INACTIVE"
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class CobuildPlanMilestoneStatus(Enum):
|
|
35
|
+
"""Execution state of a :class:`CobuildPlanMilestone`."""
|
|
36
|
+
NOT_STARTED = "NOT_STARTED"
|
|
37
|
+
IN_PROGRESS = "IN_PROGRESS"
|
|
38
|
+
DONE = "DONE"
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class CobuildPlanImplementationNotes(object):
|
|
42
|
+
"""
|
|
43
|
+
Additional implementation context for a Cobuild plan milestone.
|
|
44
|
+
|
|
45
|
+
These notes record the tools that Cobuild planned to use and the reasoning it retained while
|
|
46
|
+
validating and executing the plan. They are provided for inspection only; changing this object
|
|
47
|
+
does not modify the plan in DSS.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
def __init__(self, raw):
|
|
51
|
+
self._raw = raw
|
|
52
|
+
|
|
53
|
+
@property
|
|
54
|
+
def tools(self):
|
|
55
|
+
"""
|
|
56
|
+
Names of the tools Cobuild planned to use.
|
|
57
|
+
|
|
58
|
+
:rtype: list[str]
|
|
59
|
+
"""
|
|
60
|
+
return list(self._raw.get("tools") or [])
|
|
61
|
+
|
|
62
|
+
@property
|
|
63
|
+
def details(self):
|
|
64
|
+
"""
|
|
65
|
+
Detailed implementation and validation notes.
|
|
66
|
+
|
|
67
|
+
:rtype: str or None
|
|
68
|
+
"""
|
|
69
|
+
return self._raw.get("details")
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
class CobuildPlanMilestone(object):
|
|
73
|
+
"""
|
|
74
|
+
One ordered unit of work in a :class:`CobuildPlan`.
|
|
75
|
+
|
|
76
|
+
Milestones are read-only snapshots of the plan returned by DSS. Their fields describe both the
|
|
77
|
+
intended work and its current execution state; changing this object does not modify the plan in
|
|
78
|
+
DSS.
|
|
79
|
+
"""
|
|
80
|
+
|
|
81
|
+
def __init__(self, raw):
|
|
82
|
+
self._raw = raw
|
|
83
|
+
|
|
84
|
+
@property
|
|
85
|
+
def id(self):
|
|
86
|
+
"""
|
|
87
|
+
Identifier of this milestone.
|
|
88
|
+
|
|
89
|
+
:rtype: str
|
|
90
|
+
"""
|
|
91
|
+
return self._raw.get("id")
|
|
92
|
+
|
|
93
|
+
@property
|
|
94
|
+
def status(self):
|
|
95
|
+
"""
|
|
96
|
+
Current execution state of this milestone.
|
|
97
|
+
|
|
98
|
+
:rtype: :class:`CobuildPlanMilestoneStatus`
|
|
99
|
+
"""
|
|
100
|
+
return CobuildPlanMilestoneStatus(self._raw.get("status"))
|
|
101
|
+
|
|
102
|
+
@property
|
|
103
|
+
def title(self):
|
|
104
|
+
"""
|
|
105
|
+
Short description of the milestone.
|
|
106
|
+
|
|
107
|
+
:rtype: str or None
|
|
108
|
+
"""
|
|
109
|
+
return self._raw.get("title")
|
|
110
|
+
|
|
111
|
+
@property
|
|
112
|
+
def steps(self):
|
|
113
|
+
"""
|
|
114
|
+
Markdown description of the work Cobuild intends to carry out.
|
|
115
|
+
|
|
116
|
+
:rtype: str or None
|
|
117
|
+
"""
|
|
118
|
+
return self._raw.get("steps")
|
|
119
|
+
|
|
120
|
+
@property
|
|
121
|
+
def completion_checklist(self):
|
|
122
|
+
"""
|
|
123
|
+
Checks Cobuild uses to determine whether the milestone is complete.
|
|
124
|
+
|
|
125
|
+
:rtype: list[str]
|
|
126
|
+
"""
|
|
127
|
+
return list(self._raw.get("completionChecklist") or [])
|
|
128
|
+
|
|
129
|
+
@property
|
|
130
|
+
def output_description_summary(self):
|
|
131
|
+
"""
|
|
132
|
+
Summary of the expected outputs or outcomes of this milestone.
|
|
133
|
+
|
|
134
|
+
:rtype: str or None
|
|
135
|
+
"""
|
|
136
|
+
return self._raw.get("outputDescriptionSummary")
|
|
137
|
+
|
|
138
|
+
@property
|
|
139
|
+
def implementation_notes(self):
|
|
140
|
+
"""
|
|
141
|
+
Additional implementation context, when Cobuild supplied it.
|
|
142
|
+
|
|
143
|
+
:rtype: :class:`CobuildPlanImplementationNotes` or None
|
|
144
|
+
"""
|
|
145
|
+
raw = self._raw.get("implementationNotes")
|
|
146
|
+
return CobuildPlanImplementationNotes(raw) if raw is not None else None
|
|
147
|
+
|
|
148
|
+
class CobuildPlan(object):
|
|
149
|
+
"""
|
|
150
|
+
Read-only typed snapshot of a Cobuild plan.
|
|
151
|
+
|
|
152
|
+
A plan is returned by :attr:`CobuildAssistantResponse.updated_plan` whenever Cobuild updates
|
|
153
|
+
it while processing a request. The snapshot contains the complete current plan, not a patch.
|
|
154
|
+
To revise it, send another message in :attr:`CobuildConversationMode.PLAN` mode; to execute a
|
|
155
|
+
draft, call :meth:`DSSCobuildConversation.approve_plan`.
|
|
156
|
+
|
|
157
|
+
For example::
|
|
158
|
+
|
|
159
|
+
plan = response.updated_plan
|
|
160
|
+
if plan is not None:
|
|
161
|
+
print(plan.title, plan.status.value)
|
|
162
|
+
for milestone in plan.milestones:
|
|
163
|
+
print(milestone.title, milestone.status.value)
|
|
164
|
+
"""
|
|
165
|
+
|
|
166
|
+
def __init__(self, raw):
|
|
167
|
+
self._raw = raw
|
|
168
|
+
|
|
169
|
+
@property
|
|
170
|
+
def id(self):
|
|
171
|
+
"""
|
|
172
|
+
Identifier of this plan.
|
|
173
|
+
|
|
174
|
+
:rtype: str
|
|
175
|
+
"""
|
|
176
|
+
return self._raw.get("id")
|
|
177
|
+
|
|
178
|
+
@property
|
|
179
|
+
def status(self):
|
|
180
|
+
"""
|
|
181
|
+
Current lifecycle state of this plan.
|
|
182
|
+
|
|
183
|
+
:rtype: :class:`CobuildPlanStatus`
|
|
184
|
+
"""
|
|
185
|
+
return CobuildPlanStatus(self._raw.get("status"))
|
|
186
|
+
|
|
187
|
+
@property
|
|
188
|
+
def title(self):
|
|
189
|
+
"""
|
|
190
|
+
Short description of the overall plan.
|
|
191
|
+
|
|
192
|
+
:rtype: str or None
|
|
193
|
+
"""
|
|
194
|
+
return self._raw.get("title")
|
|
195
|
+
|
|
196
|
+
@property
|
|
197
|
+
def description(self):
|
|
198
|
+
"""
|
|
199
|
+
Detailed description of the plan.
|
|
200
|
+
|
|
201
|
+
:rtype: str or None
|
|
202
|
+
"""
|
|
203
|
+
return self._raw.get("description")
|
|
204
|
+
|
|
205
|
+
@property
|
|
206
|
+
def milestones(self):
|
|
207
|
+
"""
|
|
208
|
+
Ordered milestones making up this plan.
|
|
209
|
+
|
|
210
|
+
:rtype: list of :class:`CobuildPlanMilestone`
|
|
211
|
+
"""
|
|
212
|
+
return [CobuildPlanMilestone(raw) for raw in self._raw.get("milestones") or []]
|
|
213
|
+
|
|
10
214
|
|
|
11
215
|
class CobuildMessage(object):
|
|
12
216
|
def __init__(self, raw):
|
|
@@ -29,7 +233,7 @@ class CobuildAssistantResponse(CobuildMessage):
|
|
|
29
233
|
.. important::
|
|
30
234
|
Do not create this class directly, it is returned by :meth:`DSSCobuildConversation.send_message`
|
|
31
235
|
:meth:`DSSCobuildConversation.answer_confirmation`, and
|
|
32
|
-
:meth:`DSSCobuildConversation.answer_question`.
|
|
236
|
+
:meth:`DSSCobuildConversation.answer_question`, and :meth:`DSSCobuildConversation.approve_plan`.
|
|
33
237
|
"""
|
|
34
238
|
|
|
35
239
|
@property
|
|
@@ -195,6 +399,20 @@ class CobuildAssistantResponse(CobuildMessage):
|
|
|
195
399
|
"""
|
|
196
400
|
return self._raw.get("selectFirstAnswerByDefault")
|
|
197
401
|
|
|
402
|
+
@property
|
|
403
|
+
def updated_plan(self):
|
|
404
|
+
"""
|
|
405
|
+
The latest non-null plan update emitted while processing this request.
|
|
406
|
+
|
|
407
|
+
The returned :class:`CobuildPlan` is a read-only snapshot of the complete current plan,
|
|
408
|
+
including its status, title, description, and typed milestones. ``None`` when the request
|
|
409
|
+
did not update a plan or if it got discarded.
|
|
410
|
+
|
|
411
|
+
:rtype: :class:`CobuildPlan` or None
|
|
412
|
+
"""
|
|
413
|
+
raw = self._raw.get("updatedPlan")
|
|
414
|
+
return CobuildPlan(raw) if raw is not None else None
|
|
415
|
+
|
|
198
416
|
def __repr__(self):
|
|
199
417
|
return "CobuildAssistantResponse(type=%r, message=%r)" % (self.type, self.message)
|
|
200
418
|
|
|
@@ -333,8 +551,16 @@ class DSSCobuildConversation(object):
|
|
|
333
551
|
)
|
|
334
552
|
print(response.message)
|
|
335
553
|
|
|
336
|
-
|
|
337
|
-
:meth:`send_message
|
|
554
|
+
For tools that require project edit permission, pass ``allow_edit_project=True`` to
|
|
555
|
+
:meth:`send_message`. To allow file operations in specific managed folders, pass their IDs
|
|
556
|
+
through ``allow_edit_managed_folder_contents``.
|
|
557
|
+
|
|
558
|
+
Cobuild can also create plans, iterate with the user and implement them once approved by the user.
|
|
559
|
+
The conversation can be in one of three states: build mode without a plan, plan mode with a draft plan,
|
|
560
|
+
and build mode with an active plan. Send messages with
|
|
561
|
+
``conversation_mode=CobuildConversationMode.PLAN`` to draft a plan, then call
|
|
562
|
+
:meth:`approve_plan` to execute it and wait for the final response. Discard a draft plan
|
|
563
|
+
before returning to build mode, and discard an active plan before returning to plan mode.
|
|
338
564
|
"""
|
|
339
565
|
|
|
340
566
|
def __init__(self, client, project_key, conversation_id, selected_objects=None):
|
|
@@ -359,7 +585,7 @@ class DSSCobuildConversation(object):
|
|
|
359
585
|
"""
|
|
360
586
|
return list(self._messages)
|
|
361
587
|
|
|
362
|
-
def send_message(self, message, selected_objects=None, allow_edit_project=False):
|
|
588
|
+
def send_message(self, message, selected_objects=None, allow_edit_project=False, conversation_mode=CobuildConversationMode.BUILD, intelligence_level=None, allow_edit_managed_folder_contents=None):
|
|
363
589
|
"""
|
|
364
590
|
Send a message to the assistant and wait for its response.
|
|
365
591
|
|
|
@@ -371,14 +597,30 @@ class DSSCobuildConversation(object):
|
|
|
371
597
|
:param bool allow_edit_project: whether to allow Cobuild to create and edit everything
|
|
372
598
|
needed in this project to follow this message. This permission applies only to this
|
|
373
599
|
message.
|
|
600
|
+
:param list[str] allow_edit_managed_folder_contents: list of managed folder ids in which Cobuild is allowed to write, modify or delete files
|
|
601
|
+
This permission applies only to this message.
|
|
602
|
+
:param CobuildConversationMode conversation_mode: :attr:`CobuildConversationMode.BUILD`
|
|
603
|
+
(the default) for normal or plan-execution messages, or
|
|
604
|
+
:attr:`CobuildConversationMode.PLAN` to draft or revise a plan. A draft plan must
|
|
605
|
+
be discarded before switching back to build mode; an active plan must be discarded
|
|
606
|
+
before switching back to plan mode.
|
|
607
|
+
:param str intelligence_level: optional intelligence level: ``"LIGHT"``, ``"MEDIUM"``,
|
|
608
|
+
``"HIGH"``, or ``"VERY_HIGH"``. ``None`` defaults to ``"MEDIUM"``.
|
|
374
609
|
|
|
375
610
|
:returns: the assistant's response
|
|
376
611
|
:rtype: :class:`CobuildAssistantResponse`
|
|
377
612
|
"""
|
|
613
|
+
if not isinstance(conversation_mode, CobuildConversationMode):
|
|
614
|
+
raise ValueError("conversation_mode must be a CobuildConversationMode, got %r" % conversation_mode)
|
|
378
615
|
if selected_objects is not None:
|
|
379
616
|
self._selected_objects = _DSS_objects_to_selected(self.project_key, selected_objects)
|
|
380
617
|
|
|
381
|
-
self._messages.append(CobuildUserMessage({
|
|
618
|
+
self._messages.append(CobuildUserMessage({
|
|
619
|
+
"type": "request",
|
|
620
|
+
"message": message,
|
|
621
|
+
"selected_objects": self._selected_objects,
|
|
622
|
+
"conversation_mode": conversation_mode.value,
|
|
623
|
+
}))
|
|
382
624
|
raw = self.client._perform_json(
|
|
383
625
|
"POST",
|
|
384
626
|
"/projects/%s/cobuild/conversations/%s/messages" % (self.project_key, self.conversation_id),
|
|
@@ -386,6 +628,44 @@ class DSSCobuildConversation(object):
|
|
|
386
628
|
"message": message,
|
|
387
629
|
"selectedObjects": self._selected_objects or [],
|
|
388
630
|
"allowEditProject": allow_edit_project,
|
|
631
|
+
"allowEditManagedFolderContents": allow_edit_managed_folder_contents or [],
|
|
632
|
+
"conversationMode": conversation_mode.value,
|
|
633
|
+
"intelligenceLevel": intelligence_level,
|
|
634
|
+
},
|
|
635
|
+
)
|
|
636
|
+
response = CobuildAssistantResponse(raw)
|
|
637
|
+
self._pending_confirmation_id = raw["confirmationId"] if response.is_confirmation_request else None
|
|
638
|
+
self._pending_question_id = raw["questionId"] if response.is_question_request else None
|
|
639
|
+
self._messages.append(response)
|
|
640
|
+
return response
|
|
641
|
+
|
|
642
|
+
def approve_plan(self, allow_edit_project=False, intelligence_level=None, allow_edit_managed_folder_contents=None):
|
|
643
|
+
"""
|
|
644
|
+
Approve the current draft plan, wait for its execution, and return its final response.
|
|
645
|
+
|
|
646
|
+
A plan can be approved only while it is a draft. Use :meth:`detach_plan` to remove the
|
|
647
|
+
active plan before returning to plan mode.
|
|
648
|
+
|
|
649
|
+
:param bool allow_edit_project: whether to allow Cobuild to create and edit everything
|
|
650
|
+
needed in this project to execute the plan. This permission applies only to this
|
|
651
|
+
Cobuild turn. If Cobuild comes back with a message without the plan being fully
|
|
652
|
+
executed (e.g. after hitting a blocker), the same parameter should be passed on the
|
|
653
|
+
next turn to retain this behavior.
|
|
654
|
+
:param list[str] allow_edit_managed_folder_contents: list of managed folder ids in which Cobuild is allowed to write, modify or delete files
|
|
655
|
+
permission applies to the next turn, as it does for allow_edit_project
|
|
656
|
+
:param str intelligence_level: optional intelligence level: ``"LIGHT"``, ``"MEDIUM"``,
|
|
657
|
+
``"HIGH"``, or ``"VERY_HIGH"``. ``None`` defaults to ``"MEDIUM"``.
|
|
658
|
+
|
|
659
|
+
:returns: the final assistant response from plan execution
|
|
660
|
+
:rtype: :class:`CobuildAssistantResponse`
|
|
661
|
+
"""
|
|
662
|
+
raw = self.client._perform_json(
|
|
663
|
+
"POST",
|
|
664
|
+
"/projects/%s/cobuild/conversations/%s/plan/approve" % (self.project_key, self.conversation_id),
|
|
665
|
+
body={
|
|
666
|
+
"allowEditProject": allow_edit_project,
|
|
667
|
+
"allowEditManagedFolderContents": allow_edit_managed_folder_contents or [],
|
|
668
|
+
"intelligenceLevel": intelligence_level,
|
|
389
669
|
},
|
|
390
670
|
)
|
|
391
671
|
response = CobuildAssistantResponse(raw)
|
|
@@ -394,6 +674,18 @@ class DSSCobuildConversation(object):
|
|
|
394
674
|
self._messages.append(response)
|
|
395
675
|
return response
|
|
396
676
|
|
|
677
|
+
def detach_plan(self):
|
|
678
|
+
"""
|
|
679
|
+
Detach the current draft/active/completed plan and return the conversation to build mode.
|
|
680
|
+
|
|
681
|
+
Call this before leaving plan mode with a draft, or before entering plan mode while an
|
|
682
|
+
active plan is attached to the conversation.
|
|
683
|
+
"""
|
|
684
|
+
return self.client._perform_empty(
|
|
685
|
+
"POST",
|
|
686
|
+
"/projects/%s/cobuild/conversations/%s/plan/discard" % (self.project_key, self.conversation_id),
|
|
687
|
+
)
|
|
688
|
+
|
|
397
689
|
def answer_confirmation(self, choice, options=None):
|
|
398
690
|
"""
|
|
399
691
|
Answer a pending confirmation request and wait for the assistant's next response.
|
|
@@ -435,7 +727,7 @@ class DSSCobuildConversation(object):
|
|
|
435
727
|
self._messages.append(response)
|
|
436
728
|
return response
|
|
437
729
|
|
|
438
|
-
def answer_question(self, answers=None, rejected=False, used_custom_answer=False):
|
|
730
|
+
def answer_question(self, answers=None, rejected=False, used_custom_answer=False, selected_objects=None):
|
|
439
731
|
"""
|
|
440
732
|
Answer a pending question request and wait for the assistant's next response.
|
|
441
733
|
|
|
@@ -448,6 +740,9 @@ class DSSCobuildConversation(object):
|
|
|
448
740
|
``rejected=True``. Defaults to ``[]``.
|
|
449
741
|
:param bool rejected: whether to decline answering the question
|
|
450
742
|
:param bool used_custom_answer: whether one of the answers came from the custom free-text input
|
|
743
|
+
:param selected_objects: object selection the assistant should focus on. It is reused for
|
|
744
|
+
subsequent messages and question answers, unless overwritten
|
|
745
|
+
:type selected_objects: list[:class:`.DSSDataset`, :class:`.DSSRecipe`, :class:`.DSSLabelingTask`, :class:`.DSSManagedFolder`, :class:`.DSSSavedModel`, :class:`.DSSKnowledgeBank`, :class:`.DSSModelEvaluationStore` or :class:`.DSSStreamingEndpoint`]
|
|
451
746
|
|
|
452
747
|
:returns: the assistant's response after the question answer
|
|
453
748
|
:rtype: :class:`CobuildAssistantResponse`
|
|
@@ -458,6 +753,8 @@ class DSSCobuildConversation(object):
|
|
|
458
753
|
raise ValueError("answers must be a list of strings")
|
|
459
754
|
if self._pending_question_id is None:
|
|
460
755
|
raise ValueError("No pending question request. Call send_message first and check is_question_request.")
|
|
756
|
+
if selected_objects is not None:
|
|
757
|
+
self._selected_objects = _DSS_objects_to_selected(self.project_key, selected_objects)
|
|
461
758
|
|
|
462
759
|
question_id = self._pending_question_id
|
|
463
760
|
self._pending_question_id = None
|
|
@@ -472,6 +769,7 @@ class DSSCobuildConversation(object):
|
|
|
472
769
|
"rejected": rejected,
|
|
473
770
|
"answers": answers,
|
|
474
771
|
"usedCustomAnswer": used_custom_answer,
|
|
772
|
+
"selectedObjects": self._selected_objects or [],
|
|
475
773
|
},
|
|
476
774
|
)
|
|
477
775
|
response = CobuildAssistantResponse(raw)
|
|
@@ -966,14 +966,14 @@ class _SSEClient(object):
|
|
|
966
966
|
"""Reads the raw source and yields events. Reassembles events
|
|
967
967
|
that may span multiple HTTP chunks"""
|
|
968
968
|
#logging.debug("SSEClient._read")
|
|
969
|
-
data =
|
|
969
|
+
data = bytearray()
|
|
970
970
|
for chunk in self.raw_source:
|
|
971
971
|
#logging.info("SSEClient._read: got chunk (len=%s): %s" % (len(chunk), chunk))
|
|
972
972
|
for line in chunk.splitlines(True):
|
|
973
|
-
data
|
|
973
|
+
data.extend(line)
|
|
974
974
|
if data.endswith(b'\r\r') or data.endswith(b'\n\n') or data.endswith(b'\r\n\r\n'):
|
|
975
975
|
yield data
|
|
976
|
-
data =
|
|
976
|
+
data = bytearray()
|
|
977
977
|
#logging.info("SSEClient._read: no more chunk")
|
|
978
978
|
if data:
|
|
979
979
|
yield data
|
|
@@ -983,6 +983,7 @@ class _SSEClient(object):
|
|
|
983
983
|
#logging.info("SSEClient._iterevents: got event")
|
|
984
984
|
evt = _SSEEvent()
|
|
985
985
|
|
|
986
|
+
data_lines = []
|
|
986
987
|
for line in event_chunk.splitlines():
|
|
987
988
|
line = line.decode("utf8")
|
|
988
989
|
|
|
@@ -999,10 +1000,13 @@ class _SSEClient(object):
|
|
|
999
1000
|
value = ''
|
|
1000
1001
|
|
|
1001
1002
|
if field == 'data':
|
|
1002
|
-
|
|
1003
|
+
data_lines.append(value)
|
|
1003
1004
|
else:
|
|
1004
1005
|
evt.__dict__[field] = value
|
|
1005
1006
|
|
|
1007
|
+
if data_lines:
|
|
1008
|
+
evt.data = '\n'.join(data_lines) + '\n'
|
|
1009
|
+
|
|
1006
1010
|
if evt.event is not None:
|
|
1007
1011
|
#logging.info("Yielding event: %s" % evt.__dict__)
|
|
1008
1012
|
yield evt
|
|
@@ -102,7 +102,7 @@ class DSSProject(object):
|
|
|
102
102
|
# Project deletion
|
|
103
103
|
########################################################
|
|
104
104
|
|
|
105
|
-
def delete(self, clear_managed_datasets=False, clear_output_managed_folders=False, clear_job_and_scenario_logs=True,
|
|
105
|
+
def delete(self, clear_managed_datasets=False, clear_output_managed_folders=False, clear_job_and_scenario_logs=True, clear_managed_knowledge_banks=False,
|
|
106
106
|
**kwargs):
|
|
107
107
|
"""
|
|
108
108
|
Delete the project
|
|
@@ -113,6 +113,7 @@ class DSSProject(object):
|
|
|
113
113
|
:param bool clear_managed_datasets: Should the data of managed datasets be cleared (defaults to **False**)
|
|
114
114
|
:param bool clear_output_managed_folders: Should the data of managed folders used as outputs of recipes be cleared (defaults to **False**)
|
|
115
115
|
:param bool clear_job_and_scenario_logs: Should the job and scenario logs be cleared (defaults to **True**)
|
|
116
|
+
:param bool clear_managed_knowledge_banks: Should the data of managed knowledge banks be cleared (defaults to **False**)
|
|
116
117
|
:param bool wait: Whether to wait for the deletion to complete (defaults to **True**)
|
|
117
118
|
|
|
118
119
|
:return: if `wait` is True, a dict containing messages about the deletion if errors arose. If `wait` is False,
|
|
@@ -131,6 +132,7 @@ class DSSProject(object):
|
|
|
131
132
|
"clearManagedDatasets": clear_managed_datasets,
|
|
132
133
|
"clearOutputManagedFolders": clear_output_managed_folders,
|
|
133
134
|
"clearJobAndScenarioLogs": clear_job_and_scenario_logs,
|
|
135
|
+
"clearManagedKnowledgeBanks": clear_managed_knowledge_banks,
|
|
134
136
|
"wait": wait
|
|
135
137
|
})
|
|
136
138
|
# no need to wait python-side, it's done java-side
|
|
@@ -3235,8 +3237,10 @@ class DSSProject(object):
|
|
|
3235
3237
|
)
|
|
3236
3238
|
print(response.message)
|
|
3237
3239
|
|
|
3238
|
-
Without
|
|
3239
|
-
objects.
|
|
3240
|
+
Without the appropriate edit permission, Cobuild asks before using tools that create or
|
|
3241
|
+
edit objects. Pass ``allow_edit_project=True`` for project objects, or
|
|
3242
|
+
``allow_edit_managed_folder_contents=["FOLDER_ID"]`` for files in specific managed
|
|
3243
|
+
folders. In the public API, missing permissions are returned as an error response::
|
|
3240
3244
|
|
|
3241
3245
|
project = client.get_project("MY_PROJECT")
|
|
3242
3246
|
conv = project.new_cobuild_conversation()
|
|
@@ -3261,6 +3265,17 @@ class DSSProject(object):
|
|
|
3261
3265
|
)
|
|
3262
3266
|
print(response.message)
|
|
3263
3267
|
|
|
3268
|
+
Cobuild can draft a plan before making changes. Continue sending messages with
|
|
3269
|
+
``conversation_mode=CobuildConversationMode.PLAN`` while revising the draft, then
|
|
3270
|
+
approve it to execute the plan and return its final response. Discard an active plan
|
|
3271
|
+
before switching back to plan mode::
|
|
3272
|
+
|
|
3273
|
+
from dataikuapi.dss.cobuild import CobuildConversationMode
|
|
3274
|
+
|
|
3275
|
+
conv = project.new_cobuild_conversation()
|
|
3276
|
+
conv.send_message("Plan a cleanup of stale datasets", conversation_mode=CobuildConversationMode.PLAN)
|
|
3277
|
+
conv.approve_plan()
|
|
3278
|
+
|
|
3264
3279
|
:returns: a handle to the newly created empty conversation
|
|
3265
3280
|
:rtype: :class:`dataikuapi.dss.cobuild.DSSCobuildConversation`
|
|
3266
3281
|
"""
|
|
@@ -393,6 +393,9 @@ class DSSScenarioStatus(object):
|
|
|
393
393
|
This is an approximate indication as scenario run may be delayed, especially in the case of
|
|
394
394
|
multiple triggers or high load.
|
|
395
395
|
|
|
396
|
+
The next run excludes past occurrences that remain executable only because of a trigger's
|
|
397
|
+
tolerance window (about three days for monthly triggers).
|
|
398
|
+
|
|
396
399
|
:rtype: :class:`datetime.datetime`
|
|
397
400
|
"""
|
|
398
401
|
if not "nextRun" in self.data or self.data["nextRun"] == 0:
|
|
@@ -1550,7 +1550,8 @@ class DSSClient(object):
|
|
|
1550
1550
|
READ_ONLY = "READ_ONLY"
|
|
1551
1551
|
ALL = "ALL"
|
|
1552
1552
|
|
|
1553
|
-
def create_project_from_bundle_local_archive(self, archive_path, project_folder=None, permissions_propagation_policy=PermissionsPropagationPolicy.NONE
|
|
1553
|
+
def create_project_from_bundle_local_archive(self, archive_path, project_folder=None, permissions_propagation_policy=PermissionsPropagationPolicy.NONE,
|
|
1554
|
+
fail_on_missing_users_or_groups=True):
|
|
1554
1555
|
"""
|
|
1555
1556
|
Create a project from a bundle archive.
|
|
1556
1557
|
Warning: this method can only be used on an automation node.
|
|
@@ -1560,18 +1561,22 @@ class DSSClient(object):
|
|
|
1560
1561
|
:type project_folder: A :class:`dataikuapi.dss.projectfolder.DSSProjectFolder`
|
|
1561
1562
|
:param permissions_propagation_policy: propagate the permissions that were set in the design node to the new project on the automation node (default: False)
|
|
1562
1563
|
:type permissions_propagation_policy: A :class:`PermissionsPropagationPolicy`
|
|
1564
|
+
:param fail_on_missing_users_or_groups: fail the project creation when a propagated user or group is missing on the automation node (default: True)
|
|
1565
|
+
:type fail_on_missing_users_or_groups: bool
|
|
1563
1566
|
"""
|
|
1564
1567
|
if isinstance(permissions_propagation_policy, DSSClient.PermissionsPropagationPolicy):
|
|
1565
1568
|
permissions_propagation_policy = permissions_propagation_policy.value
|
|
1566
1569
|
params = {
|
|
1567
1570
|
"archivePath": osp.abspath(archive_path),
|
|
1568
1571
|
"permissionsPropagationPolicy": permissions_propagation_policy,
|
|
1572
|
+
"failOnMissingUsersOrGroups": fail_on_missing_users_or_groups,
|
|
1569
1573
|
}
|
|
1570
1574
|
if project_folder is not None:
|
|
1571
1575
|
params["projectFolderId"] = project_folder.project_folder_id
|
|
1572
1576
|
return self._perform_json("POST", "/projectsFromBundle/fromArchive", params=params)
|
|
1573
1577
|
|
|
1574
|
-
def create_project_from_bundle_archive(self, fp, project_folder=None
|
|
1578
|
+
def create_project_from_bundle_archive(self, fp, project_folder=None, permissions_propagation_policy=PermissionsPropagationPolicy.NONE,
|
|
1579
|
+
fail_on_missing_users_or_groups=True):
|
|
1575
1580
|
"""
|
|
1576
1581
|
Create a project from a bundle archive (as a file object)
|
|
1577
1582
|
Warning: this method can only be used on an automation node.
|
|
@@ -1579,8 +1584,17 @@ class DSSClient(object):
|
|
|
1579
1584
|
:param string fp: A file-like object pointing to a bundle archive zip
|
|
1580
1585
|
:param project_folder: the project folder in which the project will be created or None for root project folder
|
|
1581
1586
|
:type project_folder: A :class:`dataikuapi.dss.projectfolder.DSSProjectFolder`
|
|
1587
|
+
:param permissions_propagation_policy: propagate the permissions that were set in the design node to the new project on the automation node (default: False)
|
|
1588
|
+
:type permissions_propagation_policy: A :class:`PermissionsPropagationPolicy`
|
|
1589
|
+
:param fail_on_missing_users_or_groups: fail the project creation when a propagated user or group is missing on the automation node (default: True)
|
|
1590
|
+
:type fail_on_missing_users_or_groups: bool
|
|
1582
1591
|
"""
|
|
1583
|
-
|
|
1592
|
+
if isinstance(permissions_propagation_policy, DSSClient.PermissionsPropagationPolicy):
|
|
1593
|
+
permissions_propagation_policy = permissions_propagation_policy.value
|
|
1594
|
+
params = {
|
|
1595
|
+
"permissionsPropagationPolicy": permissions_propagation_policy,
|
|
1596
|
+
"failOnMissingUsersOrGroups": fail_on_missing_users_or_groups,
|
|
1597
|
+
}
|
|
1584
1598
|
if project_folder is not None:
|
|
1585
1599
|
params['projectFolderId'] = project_folder.project_folder_id
|
|
1586
1600
|
files = {'file': fp }
|
|
@@ -2358,6 +2372,13 @@ class DSSClient(object):
|
|
|
2358
2372
|
"""
|
|
2359
2373
|
return DSSPermissionsCheckRequest(self)
|
|
2360
2374
|
|
|
2375
|
+
def get_cobuild_status(self):
|
|
2376
|
+
"""Returns whether Cobuild is available to the authenticated caller.
|
|
2377
|
+
|
|
2378
|
+
:rtype: dict
|
|
2379
|
+
"""
|
|
2380
|
+
return self._perform_json("GET", "/cobuild/status")
|
|
2381
|
+
|
|
2361
2382
|
########################################################
|
|
2362
2383
|
# Enterprise Asset Library
|
|
2363
2384
|
########################################################
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataiku_api_client.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataiku_api_client.egg-info/requires.txt
RENAMED
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataiku_api_client.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/apinode_admin/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/continuousactivity.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/data_directories_footprint.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/document_extractor.py
RENAMED
|
File without changes
|
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/enterprise_asset_library.py
RENAMED
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/evaluationcomparison.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/langchain/__init__.py
RENAMED
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/langchain/embeddings.py
RENAMED
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/langchain/knowledge_bank.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/llm_tracing/__init__.py
RENAMED
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/llm_utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/modelevaluationstore.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/retrieval_augmented_llm.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss/streaming_endpoint.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss_plugin_mlflow/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/dss_plugin_mlflow/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/fm/instancesettingstemplates.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/govern/artifact_search.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dataiku_api_client-14.7.3 → dataiku_api_client-14.7.5}/dataikuapi/govern/users_container.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|