wizata-dsapi 2.1.0.dev19__tar.gz → 2.1.0.dev20__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 (67) hide show
  1. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/PKG-INFO +1 -1
  2. wizata_dsapi-2.1.0.dev20/wizata_dsapi/version.py +1 -0
  3. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/wizata_dsapi_client.py +39 -7
  4. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi.egg-info/PKG-INFO +1 -1
  5. wizata_dsapi-2.1.0.dev19/wizata_dsapi/version.py +0 -1
  6. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/LICENSE.txt +0 -0
  7. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/README.rst +0 -0
  8. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/setup.cfg +0 -0
  9. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/setup.py +0 -0
  10. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/__init__.py +0 -0
  11. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/api_config.py +0 -0
  12. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/api_dto.py +0 -0
  13. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/api_interface.py +0 -0
  14. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/bucket.py +0 -0
  15. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/business_label.py +0 -0
  16. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/context.py +0 -0
  17. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/dashboard.py +0 -0
  18. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/dataframe_toolkit.py +0 -0
  19. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/datapoint.py +0 -0
  20. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/datastore.py +0 -0
  21. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/deployment.py +0 -0
  22. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/ds_dataframe.py +0 -0
  23. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/dsapi_json_encoder.py +0 -0
  24. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/edge_config.py +0 -0
  25. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/edge_device.py +0 -0
  26. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/edge_module.py +0 -0
  27. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/evaluation.py +0 -0
  28. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/execution.py +0 -0
  29. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/execution_log.py +0 -0
  30. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/experiment.py +0 -0
  31. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/graylog_log.py +0 -0
  32. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/group_system.py +0 -0
  33. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/ilogger.py +0 -0
  34. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/insight.py +0 -0
  35. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/mlmodel.py +0 -0
  36. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/mobile_asset.py +0 -0
  37. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/model_toolkit.py +0 -0
  38. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/models/__init__.py +0 -0
  39. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/models/common.py +0 -0
  40. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/notification.py +0 -0
  41. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/paged_query_result.py +0 -0
  42. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/pipeline.py +0 -0
  43. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/pipeline_image.py +0 -0
  44. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/plot.py +0 -0
  45. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/plots/__init__.py +0 -0
  46. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/plots/common.py +0 -0
  47. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/plots/theme.py +0 -0
  48. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/request.py +0 -0
  49. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/script.py +0 -0
  50. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/scripts/__init__.py +0 -0
  51. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/scripts/common.py +0 -0
  52. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/search.py +0 -0
  53. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/solution_component.py +0 -0
  54. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/streamlit_utils.py +0 -0
  55. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/template.py +0 -0
  56. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/template_config.py +0 -0
  57. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/trigger.py +0 -0
  58. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/twin.py +0 -0
  59. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/twinregistration.py +0 -0
  60. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/user.py +0 -0
  61. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/wizard_function.py +0 -0
  62. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/wizard_request.py +0 -0
  63. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi/words.py +0 -0
  64. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi.egg-info/SOURCES.txt +0 -0
  65. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi.egg-info/dependency_links.txt +0 -0
  66. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi.egg-info/requires.txt +0 -0
  67. {wizata_dsapi-2.1.0.dev19 → wizata_dsapi-2.1.0.dev20}/wizata_dsapi.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wizata_dsapi
3
- Version: 2.1.0.dev19
3
+ Version: 2.1.0.dev20
4
4
  Summary: Wizata Data Science Toolkit
5
5
  Author: Wizata S.A.
6
6
  Author-email: info@wizata.com
@@ -0,0 +1 @@
1
+ __version__ = "2.1.0.dev20"
@@ -1209,6 +1209,38 @@ class WizataDSAPIClient(ApiInterface, ApiDtoInterface):
1209
1209
  raise ValueError("a pipeline key, UUID or Pipeline is required")
1210
1210
  return urllib.parse.quote(str(reference), safe="")
1211
1211
 
1212
+ def _pipeline_uuid(self, pipeline) -> str:
1213
+ """
1214
+ Path segment for a route that addresses a pipeline by UUID only.
1215
+
1216
+ Distinct from :meth:`_pipeline_ref`, and the difference is not cosmetic: the
1217
+ live-plot route resolves a key OR a UUID (DEV-6027), while the branch, deploy
1218
+ and preview routes parse the segment with ``uuid.UUID(id)`` and answer
1219
+ ``400 badly formed hexadecimal UUID string`` for a key.
1220
+
1221
+ Callers hold keys — that is what a pipeline is called everywhere a person
1222
+ reads one — so the key is resolved here rather than refused.
1223
+
1224
+ :param pipeline: pipeline key, UUID or Pipeline.
1225
+ :return: the pipeline's UUID as a path segment.
1226
+ """
1227
+ if isinstance(pipeline, Pipeline):
1228
+ if pipeline.pipeline_id is not None:
1229
+ return str(pipeline.pipeline_id)
1230
+ pipeline = pipeline.key
1231
+ if pipeline is None:
1232
+ raise ValueError("a pipeline key, UUID or Pipeline is required")
1233
+ if isinstance(pipeline, uuid.UUID):
1234
+ return str(pipeline)
1235
+ try:
1236
+ return str(uuid.UUID(str(pipeline)))
1237
+ except (ValueError, AttributeError, TypeError):
1238
+ pass
1239
+ resolved = self.get(pipeline_key=str(pipeline))
1240
+ if resolved is None or resolved.pipeline_id is None:
1241
+ raise ValueError(f"pipeline {pipeline!r} could not be resolved to an id")
1242
+ return str(resolved.pipeline_id)
1243
+
1212
1244
  def deployed_plots(self, pipeline, twin: str = None) -> list:
1213
1245
  """
1214
1246
  list a deployed pipeline's LIVE plots - what its deployments are currently
@@ -2088,7 +2120,7 @@ class WizataDSAPIClient(ApiInterface, ApiDtoInterface):
2088
2120
  """
2089
2121
  response = self._process_request(
2090
2122
  method="GET",
2091
- route=f"{Pipeline.route()}/{self._pipeline_ref(pipeline)}/branches/"
2123
+ route=f"{Pipeline.route()}/{self._pipeline_uuid(pipeline)}/branches/"
2092
2124
  )
2093
2125
  return response.json()
2094
2126
 
@@ -2109,7 +2141,7 @@ class WizataDSAPIClient(ApiInterface, ApiDtoInterface):
2109
2141
  payload["source"] = source
2110
2142
  response = self._process_request(
2111
2143
  method="POST",
2112
- route=f"{Pipeline.route()}/{self._pipeline_ref(pipeline)}/branches/",
2144
+ route=f"{Pipeline.route()}/{self._pipeline_uuid(pipeline)}/branches/",
2113
2145
  data=json.dumps(payload)
2114
2146
  )
2115
2147
  return Pipeline.from_dict(response.json())
@@ -2127,7 +2159,7 @@ class WizataDSAPIClient(ApiInterface, ApiDtoInterface):
2127
2159
  """
2128
2160
  self._process_request(
2129
2161
  method="DELETE",
2130
- route=f"{Pipeline.route()}/{self._pipeline_ref(pipeline)}/branches/{branch}/"
2162
+ route=f"{Pipeline.route()}/{self._pipeline_uuid(pipeline)}/branches/{branch}/"
2131
2163
  )
2132
2164
 
2133
2165
  def merge_branch(self, pipeline, branch: str) -> dict:
@@ -2140,7 +2172,7 @@ class WizataDSAPIClient(ApiInterface, ApiDtoInterface):
2140
2172
  """
2141
2173
  response = self._process_request(
2142
2174
  method="POST",
2143
- route=f"{Pipeline.route()}/{self._pipeline_ref(pipeline)}/branches/{branch}/merge"
2175
+ route=f"{Pipeline.route()}/{self._pipeline_uuid(pipeline)}/branches/{branch}/merge"
2144
2176
  )
2145
2177
  return response.json()
2146
2178
 
@@ -2154,7 +2186,7 @@ class WizataDSAPIClient(ApiInterface, ApiDtoInterface):
2154
2186
  """
2155
2187
  response = self._process_request(
2156
2188
  method="GET",
2157
- route=f"{Pipeline.route()}/{self._pipeline_ref(pipeline)}/branches/{branch}/"
2189
+ route=f"{Pipeline.route()}/{self._pipeline_uuid(pipeline)}/branches/{branch}/"
2158
2190
  )
2159
2191
  return Pipeline.from_dict(response.json())
2160
2192
 
@@ -2239,7 +2271,7 @@ class WizataDSAPIClient(ApiInterface, ApiDtoInterface):
2239
2271
  payload[name] = value
2240
2272
  response = self._process_request(
2241
2273
  method="POST",
2242
- route=f"{Pipeline.route()}/{self._pipeline_ref(pipeline)}/deploy/",
2274
+ route=f"{Pipeline.route()}/{self._pipeline_uuid(pipeline)}/deploy/",
2243
2275
  data=json.dumps(payload)
2244
2276
  )
2245
2277
  return Deployment.from_dict(response.json())
@@ -2258,7 +2290,7 @@ class WizataDSAPIClient(ApiInterface, ApiDtoInterface):
2258
2290
  payload = {k: v for k, v in kwargs.items() if v is not None}
2259
2291
  response = self._process_request(
2260
2292
  method="POST",
2261
- route=f"{Pipeline.route()}/{self._pipeline_ref(pipeline)}/deploy/preview/",
2293
+ route=f"{Pipeline.route()}/{self._pipeline_uuid(pipeline)}/deploy/preview/",
2262
2294
  data=json.dumps(payload)
2263
2295
  )
2264
2296
  return response.json()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wizata_dsapi
3
- Version: 2.1.0.dev19
3
+ Version: 2.1.0.dev20
4
4
  Summary: Wizata Data Science Toolkit
5
5
  Author: Wizata S.A.
6
6
  Author-email: info@wizata.com
@@ -1 +0,0 @@
1
- __version__ = "2.1.0.dev19"