dataiku-api-client 14.7.3__tar.gz → 14.7.4__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.
Files changed (137) hide show
  1. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/HISTORY.txt +5 -0
  2. {dataiku_api_client-14.7.3/dataiku_api_client.egg-info → dataiku_api_client-14.7.4}/PKG-INFO +7 -2
  3. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4/dataiku_api_client.egg-info}/PKG-INFO +7 -2
  4. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/cobuild.py +7 -1
  5. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/llm.py +8 -4
  6. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dssclient.py +17 -3
  7. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/setup.py +1 -1
  8. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/LICENSE.txt +0 -0
  9. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/MANIFEST.in +0 -0
  10. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/README +0 -0
  11. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataiku_api_client.egg-info/SOURCES.txt +0 -0
  12. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataiku_api_client.egg-info/dependency_links.txt +0 -0
  13. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataiku_api_client.egg-info/requires.txt +0 -0
  14. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataiku_api_client.egg-info/top_level.txt +0 -0
  15. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/__init__.py +0 -0
  16. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/apinode_admin/__init__.py +0 -0
  17. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/apinode_admin/auth.py +0 -0
  18. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/apinode_admin/service.py +0 -0
  19. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/apinode_admin_client.py +0 -0
  20. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/apinode_client.py +0 -0
  21. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/auth.py +0 -0
  22. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/base_client.py +0 -0
  23. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/__init__.py +0 -0
  24. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/admin.py +0 -0
  25. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/agent.py +0 -0
  26. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/agent_review.py +0 -0
  27. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/agent_tool.py +0 -0
  28. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/analysis.py +0 -0
  29. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/apideployer.py +0 -0
  30. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/apiservice.py +0 -0
  31. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/app.py +0 -0
  32. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/businessapp.py +0 -0
  33. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/codestudio.py +0 -0
  34. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/continuousactivity.py +0 -0
  35. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/dashboard.py +0 -0
  36. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/data_collection.py +0 -0
  37. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/data_directories_footprint.py +0 -0
  38. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/data_quality.py +0 -0
  39. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/dataset.py +0 -0
  40. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/discussion.py +0 -0
  41. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/document_extractor.py +0 -0
  42. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/drift.py +0 -0
  43. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/enterprise_asset_library.py +0 -0
  44. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/evaluationcomparison.py +0 -0
  45. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/evaluationstore.py +0 -0
  46. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/feature_store.py +0 -0
  47. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/flow.py +0 -0
  48. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/future.py +0 -0
  49. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/insight.py +0 -0
  50. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/job.py +0 -0
  51. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/jupyternotebook.py +0 -0
  52. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/knowledgebank.py +0 -0
  53. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/labeling_task.py +0 -0
  54. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/langchain/__init__.py +0 -0
  55. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/langchain/embeddings.py +0 -0
  56. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/langchain/knowledge_bank.py +0 -0
  57. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/langchain/llm.py +0 -0
  58. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/langchain/tool.py +0 -0
  59. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/langchain/utils.py +0 -0
  60. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/llm_tracing/__init__.py +0 -0
  61. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/llm_utils/__init__.py +0 -0
  62. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/local_model.py +0 -0
  63. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/macro.py +0 -0
  64. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/managedfolder.py +0 -0
  65. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/meaning.py +0 -0
  66. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/messaging_channel.py +0 -0
  67. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/metrics.py +0 -0
  68. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/mira.py +0 -0
  69. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/ml.py +0 -0
  70. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/mlflow.py +0 -0
  71. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/modelcomparison.py +0 -0
  72. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/modelevaluationstore.py +0 -0
  73. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/notebook.py +0 -0
  74. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/plugin.py +0 -0
  75. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/project.py +0 -0
  76. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/project_standards.py +0 -0
  77. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/projectdeployer.py +0 -0
  78. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/projectfolder.py +0 -0
  79. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/projectlibrary.py +0 -0
  80. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/recipe.py +0 -0
  81. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/retrieval_augmented_llm.py +0 -0
  82. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/savedmodel.py +0 -0
  83. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/scenario.py +0 -0
  84. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/semantic_model.py +0 -0
  85. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/sqlnotebook.py +0 -0
  86. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/sqlquery.py +0 -0
  87. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/statistics.py +0 -0
  88. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/streaming_endpoint.py +0 -0
  89. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/tools/__init__.py +0 -0
  90. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/tools/codegen.py +0 -0
  91. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/tools/langchain.py +0 -0
  92. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/unifiedmonitoring.py +0 -0
  93. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/utils.py +0 -0
  94. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/webapp.py +0 -0
  95. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/wiki.py +0 -0
  96. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss/workspace.py +0 -0
  97. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss_plugin_mlflow/__init__.py +0 -0
  98. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss_plugin_mlflow/artifact_repository.py +0 -0
  99. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss_plugin_mlflow/header_provider.py +0 -0
  100. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/dss_plugin_mlflow/utils.py +0 -0
  101. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/fm/__init__.py +0 -0
  102. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/fm/cloudaccounts.py +0 -0
  103. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/fm/future.py +0 -0
  104. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/fm/instances.py +0 -0
  105. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/fm/instancesettingstemplates.py +0 -0
  106. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/fm/loadbalancers.py +0 -0
  107. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/fm/tenant.py +0 -0
  108. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/fm/virtualnetworks.py +0 -0
  109. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/fmclient.py +0 -0
  110. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/govern/__init__.py +0 -0
  111. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/govern/admin.py +0 -0
  112. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/govern/admin_blueprint_designer.py +0 -0
  113. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/govern/admin_custom_pages_handler.py +0 -0
  114. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/govern/admin_roles_permissions_handler.py +0 -0
  115. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/govern/artifact.py +0 -0
  116. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/govern/artifact_search.py +0 -0
  117. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/govern/blueprint.py +0 -0
  118. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/govern/custom_page.py +0 -0
  119. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/govern/future.py +0 -0
  120. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/govern/time_series.py +0 -0
  121. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/govern/uploaded_file.py +0 -0
  122. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/govern/users_container.py +0 -0
  123. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/govern_client.py +0 -0
  124. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/iam/__init__.py +0 -0
  125. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/iam/settings.py +0 -0
  126. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/launchpad/__init__.py +0 -0
  127. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/launchpad/exceptions.py +0 -0
  128. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/launchpad/group.py +0 -0
  129. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/launchpad/node.py +0 -0
  130. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/launchpad/profile.py +0 -0
  131. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/launchpad/response.py +0 -0
  132. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/launchpad/task.py +0 -0
  133. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/launchpad/user.py +0 -0
  134. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/launchpad_client.py +0 -0
  135. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/dataikuapi/utils.py +0 -0
  136. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/requirements.txt +0 -0
  137. {dataiku_api_client-14.7.3 → dataiku_api_client-14.7.4}/setup.cfg +0 -0
@@ -2,6 +2,11 @@ Changelog
2
2
  ==========
3
3
 
4
4
 
5
+ 14.7.4 (2026-09-14)
6
+ -------------------
7
+
8
+ * Initial release for DSS 14.7.4
9
+
5
10
  14.7.3 (2026-08-03)
6
11
  -------------------
7
12
 
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataiku-api-client
3
- Version: 14.7.3
3
+ Version: 14.7.4
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.3
6
+ Download-URL: https://github.com/dataiku/dataiku-api-client-python/tarball/14.7.4
7
7
  Author: Dataiku
8
8
  Author-email: support@dataiku.com
9
9
  License: Apache Software License
@@ -36,6 +36,11 @@ Changelog
36
36
  ==========
37
37
 
38
38
 
39
+ 14.7.4 (2026-09-14)
40
+ -------------------
41
+
42
+ * Initial release for DSS 14.7.4
43
+
39
44
  14.7.3 (2026-08-03)
40
45
  -------------------
41
46
 
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataiku-api-client
3
- Version: 14.7.3
3
+ Version: 14.7.4
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.3
6
+ Download-URL: https://github.com/dataiku/dataiku-api-client-python/tarball/14.7.4
7
7
  Author: Dataiku
8
8
  Author-email: support@dataiku.com
9
9
  License: Apache Software License
@@ -36,6 +36,11 @@ Changelog
36
36
  ==========
37
37
 
38
38
 
39
+ 14.7.4 (2026-09-14)
40
+ -------------------
41
+
42
+ * Initial release for DSS 14.7.4
43
+
39
44
  14.7.3 (2026-08-03)
40
45
  -------------------
41
46
 
@@ -435,7 +435,7 @@ class DSSCobuildConversation(object):
435
435
  self._messages.append(response)
436
436
  return response
437
437
 
438
- def answer_question(self, answers=None, rejected=False, used_custom_answer=False):
438
+ def answer_question(self, answers=None, rejected=False, used_custom_answer=False, selected_objects=None):
439
439
  """
440
440
  Answer a pending question request and wait for the assistant's next response.
441
441
 
@@ -448,6 +448,9 @@ class DSSCobuildConversation(object):
448
448
  ``rejected=True``. Defaults to ``[]``.
449
449
  :param bool rejected: whether to decline answering the question
450
450
  :param bool used_custom_answer: whether one of the answers came from the custom free-text input
451
+ :param selected_objects: object selection the assistant should focus on. It is reused for
452
+ subsequent messages and question answers, unless overwritten
453
+ :type selected_objects: list[:class:`.DSSDataset`, :class:`.DSSRecipe`, :class:`.DSSLabelingTask`, :class:`.DSSManagedFolder`, :class:`.DSSSavedModel`, :class:`.DSSKnowledgeBank`, :class:`.DSSModelEvaluationStore` or :class:`.DSSStreamingEndpoint`]
451
454
 
452
455
  :returns: the assistant's response after the question answer
453
456
  :rtype: :class:`CobuildAssistantResponse`
@@ -458,6 +461,8 @@ class DSSCobuildConversation(object):
458
461
  raise ValueError("answers must be a list of strings")
459
462
  if self._pending_question_id is None:
460
463
  raise ValueError("No pending question request. Call send_message first and check is_question_request.")
464
+ if selected_objects is not None:
465
+ self._selected_objects = _DSS_objects_to_selected(self.project_key, selected_objects)
461
466
 
462
467
  question_id = self._pending_question_id
463
468
  self._pending_question_id = None
@@ -472,6 +477,7 @@ class DSSCobuildConversation(object):
472
477
  "rejected": rejected,
473
478
  "answers": answers,
474
479
  "usedCustomAnswer": used_custom_answer,
480
+ "selectedObjects": self._selected_objects or [],
475
481
  },
476
482
  )
477
483
  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 = b''
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 += line
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 = b''
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
- evt.__dict__[field] += value + '\n'
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
@@ -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
- params = {}
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 }
@@ -2,7 +2,7 @@
2
2
 
3
3
  from setuptools import setup
4
4
 
5
- VERSION = "14.7.3"
5
+ VERSION = "14.7.4"
6
6
 
7
7
  long_description = (open('README').read() + '\n\n' +
8
8
  open('HISTORY.txt').read())