layernext-beta 2.0.0b2__tar.gz → 2.0.0b4__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 (45) hide show
  1. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/PKG-INFO +1 -1
  2. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/__init__.py +1 -1
  3. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/__init__.py +89 -59
  4. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext_beta.egg-info/PKG-INFO +1 -1
  5. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext_beta.egg-info/requires.txt +2 -0
  6. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/setup.py +1 -1
  7. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/LICENSE +0 -0
  8. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/README.md +0 -0
  9. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/automatic_analysis/__init__.py +0 -0
  10. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/automatic_analysis/automatic_analysis_interface.py +0 -0
  11. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/automatic_analysis/status_check_inference_collection.py +0 -0
  12. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/automatic_analysis/status_check_inference_population.py +0 -0
  13. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/automatic_analysis/support.py +0 -0
  14. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/annotation.py +0 -0
  15. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/aws_s3_client.py +0 -0
  16. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/azure_client.py +0 -0
  17. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/constants.py +0 -0
  18. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/datalakeinterface.py +0 -0
  19. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/dataset.py +0 -0
  20. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/file_trash.py +0 -0
  21. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/file_upload.py +0 -0
  22. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/gcs_client.py +0 -0
  23. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/ground_truth.py +0 -0
  24. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/keys.py +0 -0
  25. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/label.py +0 -0
  26. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/logger.py +0 -0
  27. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/metadata.py +0 -0
  28. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/model_run.py +0 -0
  29. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/query.py +0 -0
  30. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/storage_client.py +0 -0
  31. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/storage_interface.py +0 -0
  32. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/datalake/storage_upload.py +0 -0
  33. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/dataset/__init__.py +0 -0
  34. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/dataset/dataset.py +0 -0
  35. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/dataset/datasetinterface.py +0 -0
  36. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/dataset/logger.py +0 -0
  37. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/dataset/sync.py +0 -0
  38. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/studio/__init__.py +0 -0
  39. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/studio/logger.py +0 -0
  40. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/studio/project.py +0 -0
  41. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext/studio/studiointerface.py +0 -0
  42. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext_beta.egg-info/SOURCES.txt +0 -0
  43. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext_beta.egg-info/dependency_links.txt +0 -0
  44. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/layernext_beta.egg-info/top_level.txt +0 -0
  45. {layernext-beta-2.0.0b2 → layernext-beta-2.0.0b4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: layernext-beta
3
- Version: 2.0.0b2
3
+ Version: 2.0.0b4
4
4
  Summary: LayerNext Python SDK
5
5
  Home-page: UNKNOWN
6
6
  Author: LayerNext
@@ -5,7 +5,7 @@ from layernext.datalake.constants import (AnnotationUploadType, ItemType,
5
5
  MediaType, ObjectType, SortField,
6
6
  SortFieldName, SortOrder)
7
7
 
8
- __version__ = '2.0.0b2'
8
+ __version__ = '2.0.0b4'
9
9
 
10
10
 
11
11
  class LayerNextClient:
@@ -27,7 +27,8 @@ class DatalakeClient:
27
27
  _datalake_url = f'{layernext_url}/datalake'
28
28
  # _datalake_url = f'{layernext_url}:3000'
29
29
  # _datalake_url = f'{layernext_url}'
30
- self.datalake_interface = DatalakeInterface(encoded_key_secret, _datalake_url)
30
+ self.datalake_interface = DatalakeInterface(
31
+ encoded_key_secret, _datalake_url)
31
32
 
32
33
  def check_sdk_version_compatibility(self, sdk_version: str):
33
34
  """
@@ -37,10 +38,11 @@ class DatalakeClient:
37
38
  if re.compile(r'^(\d+\.)+\d+$').match(sdk_version) is None:
38
39
  raise Exception('sdk_version is invalid format')
39
40
 
40
- if sdk_version is None or sdk_version == '' :
41
+ if sdk_version is None or sdk_version == '':
41
42
  raise Exception('sdk_version is None')
42
-
43
- res = self.datalake_interface.check_sdk_version_compatibility(sdk_version)
43
+
44
+ res = self.datalake_interface.check_sdk_version_compatibility(
45
+ sdk_version)
44
46
 
45
47
  if res["isCompatible"] == False:
46
48
  raise Exception(res["message"])
@@ -70,15 +72,20 @@ class DatalakeClient:
70
72
  f'annotation_geometry={annotation_geometry}')
71
73
  _model = ModelRun(client=self)
72
74
  if annotation_geometry == BOX_ANNOTATION:
73
- _model.upload_modelrun_json(unique_id, model_id, file_path, BOX_ANNOTATION, is_normalized, dest_project_id, version, bucket_name, upload_type)
75
+ _model.upload_modelrun_json(unique_id, model_id, file_path, BOX_ANNOTATION,
76
+ is_normalized, dest_project_id, version, bucket_name, upload_type)
74
77
  elif annotation_geometry == POLYGON_ANNOTATION:
75
- _model.upload_modelrun_json(unique_id, model_id, file_path, POLYGON_ANNOTATION, is_normalized, dest_project_id, version, bucket_name, upload_type)
78
+ _model.upload_modelrun_json(unique_id, model_id, file_path, POLYGON_ANNOTATION,
79
+ is_normalized, dest_project_id, version, bucket_name, upload_type)
76
80
  elif annotation_geometry == LINE_ANNOTATION:
77
- _model.upload_modelrun_json(unique_id, model_id, file_path, LINE_ANNOTATION, is_normalized, dest_project_id, version, bucket_name, upload_type)
81
+ _model.upload_modelrun_json(unique_id, model_id, file_path, LINE_ANNOTATION,
82
+ is_normalized, dest_project_id, version, bucket_name, upload_type)
78
83
  elif annotation_geometry is None:
79
- _model.upload_modelrun_json(unique_id, model_id, file_path, None, is_normalized, dest_project_id, version, bucket_name, upload_type)
84
+ _model.upload_modelrun_json(unique_id, model_id, file_path, None,
85
+ is_normalized, dest_project_id, version, bucket_name, upload_type)
80
86
  else:
81
- datalake_logger.debug(f'unsupported annotation_geometry={annotation_geometry}')
87
+ datalake_logger.debug(
88
+ f'unsupported annotation_geometry={annotation_geometry}')
82
89
 
83
90
  def upload_groundtruth_from_json(
84
91
  self,
@@ -96,19 +103,25 @@ class DatalakeClient:
96
103
  f'annotation_geometry={annotation_geometry}')
97
104
  _groundTruth = GroundTruth(client=self)
98
105
  if annotation_geometry == BOX_ANNOTATION:
99
- _groundTruth.upload_groundtruth_json(unique_id, operation_id, file_path, BOX_ANNOTATION, is_normalized, dest_project_id, version, bucket_name, upload_type)
106
+ _groundTruth.upload_groundtruth_json(
107
+ unique_id, operation_id, file_path, BOX_ANNOTATION, is_normalized, dest_project_id, version, bucket_name, upload_type)
100
108
  elif annotation_geometry == POLYGON_ANNOTATION:
101
- _groundTruth.upload_groundtruth_json(unique_id, operation_id, file_path, POLYGON_ANNOTATION, is_normalized, dest_project_id, version, bucket_name, upload_type)
109
+ _groundTruth.upload_groundtruth_json(
110
+ unique_id, operation_id, file_path, POLYGON_ANNOTATION, is_normalized, dest_project_id, version, bucket_name, upload_type)
102
111
  elif annotation_geometry == LINE_ANNOTATION:
103
- _groundTruth.upload_groundtruth_json(unique_id, operation_id, file_path, LINE_ANNOTATION, is_normalized, dest_project_id, version, bucket_name, upload_type)
112
+ _groundTruth.upload_groundtruth_json(
113
+ unique_id, operation_id, file_path, LINE_ANNOTATION, is_normalized, dest_project_id, version, bucket_name, upload_type)
104
114
  elif annotation_geometry is None:
105
- _groundTruth.upload_groundtruth_json(unique_id, operation_id, file_path, None, is_normalized, dest_project_id, version, bucket_name, upload_type)
115
+ _groundTruth.upload_groundtruth_json(
116
+ unique_id, operation_id, file_path, None, is_normalized, dest_project_id, version, bucket_name, upload_type)
106
117
  else:
107
- datalake_logger.debug(f'unsupported annotation_geometry={annotation_geometry}')
118
+ datalake_logger.debug(
119
+ f'unsupported annotation_geometry={annotation_geometry}')
108
120
 
109
121
  def file_upload(self, path: str, collection_type, collection_name, meta_data_object, application_code, meta_data_override, storage_prefix_path):
110
122
  _upload = FileUpload(client=self, application_code=application_code)
111
- upload_res = _upload.file_upload_initiate(path, collection_type, collection_name, meta_data_object, meta_data_override, storage_prefix_path)
123
+ upload_res = _upload.file_upload_initiate(
124
+ path, collection_type, collection_name, meta_data_object, meta_data_override, storage_prefix_path)
112
125
  return upload_res
113
126
 
114
127
  def get_upload_status(self, collection_name):
@@ -116,40 +129,43 @@ class DatalakeClient:
116
129
  return _upload.get_upload_status(collection_name)
117
130
 
118
131
  def remove_collection_annotations(self, collection_id: str, model_run_id: str):
119
- print(f'annotation delete of collection ={collection_id}', f'model id={model_run_id}')
132
+ print(
133
+ f'annotation delete of collection ={collection_id}', f'model id={model_run_id}')
120
134
  _model = Annotation(client=self)
121
135
  _model.remove_collection_annotations(collection_id, model_run_id)
122
136
 
123
-
124
137
  """
125
138
  get selection id for query, collection id, filter data
126
139
  """
140
+
127
141
  def get_selection_id(self, collection_id, query, filter, object_type, object_list, is_all_selected=True):
128
142
  _query = Query(client=self)
129
- response = _query.get_selection_id(collection_id, query, filter, object_type, object_list, is_all_selected)
143
+ response = _query.get_selection_id(
144
+ collection_id, query, filter, object_type, object_list, is_all_selected)
130
145
  return response
131
146
 
132
-
133
147
  def get_object_type_by_id(self, object_id):
134
148
  response = self.datalake_interface.get_object_type_by_id(object_id)
135
149
  return response
136
150
 
137
- def get_system_labels(self, group_id = None):
151
+ def get_system_labels(self, group_id=None):
138
152
  response = self.datalake_interface.get_all_label_list(group_id)
139
153
  return response
140
154
 
141
155
  def attach_labels_to_group(self, group_id, label_keys):
142
156
  if group_id == '' or len(label_keys) == 0:
143
157
  print('Label group id or label list is empty')
144
- return { "is_success": False}
145
- response = self.datalake_interface.add_labels_to_group(group_id, label_keys)
158
+ return {"is_success": False}
159
+ response = self.datalake_interface.add_labels_to_group(
160
+ group_id, label_keys)
146
161
  return response
147
162
 
148
163
  def detach_labels_from_group(self, group_id, label_keys):
149
164
  if group_id == '' or len(label_keys) == 0:
150
165
  print('Label group id or label list is empty')
151
- return { "is_success": False}
152
- response = self.datalake_interface.remove_labels_from_group(group_id, label_keys)
166
+ return {"is_success": False}
167
+ response = self.datalake_interface.remove_labels_from_group(
168
+ group_id, label_keys)
153
169
  return response
154
170
 
155
171
  def get_all_label_groups(self):
@@ -161,16 +177,16 @@ class DatalakeClient:
161
177
  response = self.datalake_interface.create_system_label(_label_dict)
162
178
  if response is not None:
163
179
  response = {
164
- "label_reference" : response["label"]
180
+ "label_reference": response["label"]
165
181
  }
166
182
  return response
167
183
 
168
-
169
184
  def create_label_group(self, group_name, label_keys):
170
185
  if group_name == '' or len(label_keys) == 0:
171
186
  print('Label group name or label list is empty')
172
187
  return None
173
- response = self.datalake_interface.create_label_group(group_name, label_keys)
188
+ response = self.datalake_interface.create_label_group(
189
+ group_name, label_keys)
174
190
  return response
175
191
 
176
192
  def wait_for_job_complete(self, job_id):
@@ -182,18 +198,18 @@ class DatalakeClient:
182
198
  if job_detils["isSuccess"]:
183
199
  job_status = job_detils["status"]
184
200
  job_progress = job_detils["progress"]
185
- print(f'Job progress: {job_progress}')
201
+ print(f'Job progress: {round(job_progress,2)}%')
186
202
  if job_status == JobStatus.COMPLETED.value:
187
203
  res = {
188
- "is_success" : True,
189
- "job_status" : "COMPLETED"
204
+ "is_success": True,
205
+ "job_status": "COMPLETED"
190
206
  }
191
207
  print(res)
192
208
  return res
193
209
  elif job_status == JobStatus.FAILED.value:
194
210
  res = {
195
- "is_success" : True,
196
- "job_status" : "COMPLETED"
211
+ "is_success": True,
212
+ "job_status": "COMPLETED"
197
213
  }
198
214
  print(res)
199
215
  return res
@@ -214,69 +230,77 @@ class DatalakeClient:
214
230
  }
215
231
  print(res)
216
232
  return res
217
-
233
+
218
234
  """
219
235
  trash selection object
220
236
  """
237
+
221
238
  def trash_datalake_object(self, selection_id):
222
239
  _trash = FileTrash(client=self)
223
240
  return _trash.trash_files(selection_id)
224
241
 
225
242
  def get_file_download_url(self, file_key):
226
243
  return self.datalake_interface.get_file_download_url(file_key)
227
-
244
+
228
245
  """
229
246
  upload metadata by using json file
230
247
  """
248
+
231
249
  def upload_metadata_from_json(
232
250
  self,
233
251
  collection_id: str,
234
252
  file_path: str,
235
253
  ):
236
254
  _metadata = Metadata(client=self)
237
- response = _metadata.upload_metadata_json(file_path, collection_id=collection_id)
255
+ response = _metadata.upload_metadata_json(
256
+ file_path, collection_id=collection_id)
238
257
  # print(response.get("message"))
239
258
  return response
240
-
259
+
241
260
  """
242
261
  upload metadata by using json file with object keys
243
262
  @file_path: json file path
244
263
  """
264
+
245
265
  def upload_metadata_from_unique_name_json(self, file_path: str):
246
266
  _metadata = Metadata(client=self)
247
- response = _metadata.upload_metadata_json(file_path)
267
+ response = _metadata.upload_metadata_json(file_path)
248
268
  # print(response.get("message"))
249
269
  return response
250
-
270
+
251
271
  """
252
272
  upload metadata by using json file with storage path
253
273
  @file_path: json file path
254
274
  @bucket_name: bucket name
255
275
  """
276
+
256
277
  def upload_metadata_from_storage_path_json(self, file_path: str, bucket_name: str):
257
278
  _metadata = Metadata(client=self)
258
279
  if bucket_name == None or bucket_name == "":
259
280
  bucket_name = "DEFAULT"
260
- response = _metadata.upload_metadata_json(file_path, bucket_name=bucket_name)
281
+ response = _metadata.upload_metadata_json(
282
+ file_path, bucket_name=bucket_name)
261
283
  # print(response.get("message"))
262
284
  return response
263
-
285
+
264
286
  """
265
287
  upload metadata by using json file with job id
266
288
  @file_path: json file path
267
289
  @job_id: job id
268
290
  """
291
+
269
292
  def upload_metadata_from_job_id(self, job_id: str, file_path: str):
270
293
  _metadata = Metadata(client=self)
271
294
  if job_id == None or job_id == "":
272
295
  raise Exception("job_id is empty. Please provide valid job id")
273
- response = _metadata.upload_metadata_json(file_path, job_id=job_id)
296
+ response = _metadata.upload_metadata_json(file_path, job_id=job_id)
274
297
  # print(response.get("message"))
275
298
  return response
276
299
 
277
300
  """
278
301
  upload metadata by using meta object
279
302
  """
303
+
280
304
  def upload_metadata_from_metaObject(
281
305
  self,
282
306
  collection_name: str,
@@ -285,10 +309,11 @@ class DatalakeClient:
285
309
  is_apply_to_all_files: bool
286
310
  ):
287
311
  _metadata = Metadata(client=self)
288
- response = _metadata.upload_metadata_object(collection_name,object_type, metadata_object, is_apply_to_all_files)
312
+ response = _metadata.upload_metadata_object(
313
+ collection_name, object_type, metadata_object, is_apply_to_all_files)
289
314
  print(response.get("message"))
290
315
  return response
291
-
316
+
292
317
  """
293
318
  get item list from datalake
294
319
 
@@ -311,7 +336,8 @@ class DatalakeClient:
311
336
  "contentType": item_type_enum,
312
337
  "sortBy": sort_filter
313
338
  }
314
- item_list = self.datalake_interface.get_item_list_from_datalake(payload)
339
+ item_list = self.datalake_interface.get_item_list_from_datalake(
340
+ payload)
315
341
 
316
342
  return item_list
317
343
 
@@ -350,7 +376,8 @@ class DatalakeClient:
350
376
  "contentType": item_type_enum,
351
377
  "sortBy": sort_filter
352
378
  }
353
- item_list = self.datalake_interface.get_item_list_from_collection(payload, collection_id)
379
+ item_list = self.datalake_interface.get_item_list_from_collection(
380
+ payload, collection_id)
354
381
 
355
382
  return item_list
356
383
 
@@ -359,17 +386,18 @@ class DatalakeClient:
359
386
  @param unique_name: unique file name
360
387
  @param filter: filter to get required meta data
361
388
  """
362
- def get_item_details(self, unique_name : str, filter: dict):
389
+
390
+ def get_item_details(self, unique_name: str, filter: dict):
363
391
 
364
392
  if unique_name == None or unique_name == "":
365
393
  raise Exception("unique_name is empty")
366
-
394
+
367
395
  if filter == None:
368
396
  filter = {}
369
397
 
370
398
  payload = {
371
399
  "uniqueFileName": unique_name,
372
- "requiredMetaObj": filter
400
+ "requiredMetaObj": filter
373
401
  }
374
402
 
375
403
  res = self.datalake_interface.get_item_details(payload)
@@ -378,23 +406,24 @@ class DatalakeClient:
378
406
  raise Exception(res["message"])
379
407
  else:
380
408
  return res["itemDetails"]
381
-
409
+
382
410
  """
383
411
  get metadata by using filter
384
412
  @param unique_file_name: unique file name
385
413
  @param filter: filter to get required meta data
386
414
  """
387
- def get_collection_details(self, collection_id : str, filter: dict):
415
+
416
+ def get_collection_details(self, collection_id: str, filter: dict):
388
417
 
389
418
  if collection_id == None or collection_id == "":
390
419
  raise Exception("collection_id is empty")
391
-
420
+
392
421
  if filter == None:
393
422
  filter = {}
394
423
 
395
424
  payload = {
396
425
  "collectionId": collection_id,
397
- "requiredMetaObj": filter
426
+ "requiredMetaObj": filter
398
427
  }
399
428
 
400
429
  res = self.datalake_interface.get_collection_details(payload)
@@ -403,16 +432,17 @@ class DatalakeClient:
403
432
  raise Exception(res["message"])
404
433
  else:
405
434
  return res["itemDetails"]
406
-
435
+
407
436
  """
408
437
  get collection id by using collection name
409
438
  @param collection_name: collection name
410
439
  @param collection_type: collection type
411
440
  """
412
- def get_collection_id_by_name(self, collection_name:str, collection_type:MediaType):
441
+
442
+ def get_collection_id_by_name(self, collection_name: str, collection_type: MediaType):
413
443
  if collection_name == None or collection_name == "":
414
444
  raise Exception("collection_name is empty")
415
-
445
+
416
446
  if collection_type == None or collection_type == "":
417
447
  raise Exception("collection_type is empty")
418
448
 
@@ -427,13 +457,14 @@ class DatalakeClient:
427
457
  raise Exception(res["message"])
428
458
  else:
429
459
  return res["collectionId"]
430
-
460
+
431
461
  """
432
462
  use to create collection head
433
463
  @param collection_name: collection name
434
464
  @param collection_type: collection type
435
465
  @param custom_meta_object: custom meta object
436
466
  """
467
+
437
468
  def create_collection_head(self, collection_name: str, collection_type: MediaType, custom_meta_object: dict):
438
469
  payload = {
439
470
  "collectionName": collection_name,
@@ -447,15 +478,14 @@ class DatalakeClient:
447
478
  raise Exception(res["message"])
448
479
  else:
449
480
  return res
450
-
451
-
481
+
452
482
  def insert_embeddings_batch(self, batch_data):
453
483
  # if embedding_model_name == None or embedding_model_name == "":
454
484
  # raise Exception("embedding_model_name is empty")
455
485
 
456
486
  payload = {
457
487
  "embeddingModelName": None,
458
- "data": batch_data
488
+ "data": batch_data
459
489
  }
460
490
 
461
491
  res = self.datalake_interface.insert_embeddings_batch(payload)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: layernext-beta
3
- Version: 2.0.0b2
3
+ Version: 2.0.0b4
4
4
  Summary: LayerNext Python SDK
5
5
  Home-page: UNKNOWN
6
6
  Author: LayerNext
@@ -2,3 +2,5 @@ requests
2
2
  uuid
3
3
  python-dotenv
4
4
  azure-storage-blob
5
+ tqdm
6
+ PyYAML
@@ -38,7 +38,7 @@ setup(
38
38
  long_description=long_description,
39
39
  packages=find_packages(
40
40
  include=['layernext', 'layernext.datalake', 'layernext.dataset', 'layernext.studio','layernext.automatic_analysis']),
41
- install_requires=['requests', 'uuid', 'python-dotenv', 'azure-storage-blob'],
41
+ install_requires=['requests', 'uuid', 'python-dotenv', 'azure-storage-blob', 'tqdm', 'PyYAML'],
42
42
  keywords=['python', 'datalake', 'datasetsync', 'ai',
43
43
  'annotation', 'layernext', 'layernext', 'machine learning'],
44
44
  classifiers=[