orca-sdk 0.1.8__py3-none-any.whl → 0.1.10__py3-none-any.whl

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.
@@ -856,7 +856,8 @@ def test_insert_memories(writable_memoryset: LabeledMemoryset):
856
856
  [
857
857
  dict(value="tomato soup is my favorite", label=0),
858
858
  dict(value="cats are fun to play with", label=1),
859
- ]
859
+ ],
860
+ batch_size=1,
860
861
  )
861
862
  writable_memoryset.refresh()
862
863
  assert writable_memoryset.length == prev_length + 2
@@ -897,7 +898,8 @@ def test_update_memories(writable_memoryset: LabeledMemoryset, hf_dataset: Datas
897
898
  [
898
899
  dict(memory_id=memory_ids[0], value="i love soup so much"),
899
900
  dict(memory_id=memory_ids[1], value="cats are so cute"),
900
- ]
901
+ ],
902
+ batch_size=1,
901
903
  )
902
904
  assert updated_memories[0].value == "i love soup so much"
903
905
  assert updated_memories[1].value == "cats are so cute"
@@ -916,7 +918,7 @@ def test_delete_memories(writable_memoryset: LabeledMemoryset):
916
918
 
917
919
  # test deleting multiple memories
918
920
  prev_length = writable_memoryset.length
919
- writable_memoryset.delete([writable_memoryset[0].memory_id, writable_memoryset[1].memory_id])
921
+ writable_memoryset.delete([writable_memoryset[0].memory_id, writable_memoryset[1].memory_id], batch_size=1)
920
922
  assert writable_memoryset.length == prev_length - 2
921
923
 
922
924
 
@@ -10,6 +10,7 @@ from datasets import Dataset
10
10
  from ._shared.metrics import RegressionMetrics, calculate_regression_metrics
11
11
  from ._utils.common import UNSET, CreateMode, DropMode
12
12
  from .client import (
13
+ ListPredictionsRequest,
13
14
  OrcaClient,
14
15
  PredictiveModelUpdate,
15
16
  RARHeadType,
@@ -295,6 +296,7 @@ class RegressionModel:
295
296
  "ignore_partitions", "include_global", "exclude_global", "only_global"
296
297
  ] = "include_global",
297
298
  use_gpu: bool = True,
299
+ batch_size: int = 100,
298
300
  ) -> RegressionPrediction: ...
299
301
 
300
302
  @overload
@@ -313,6 +315,7 @@ class RegressionModel:
313
315
  "ignore_partitions", "include_global", "exclude_global", "only_global"
314
316
  ] = "include_global",
315
317
  use_gpu: bool = True,
318
+ batch_size: int = 100,
316
319
  ) -> list[RegressionPrediction]: ...
317
320
 
318
321
  # TODO: add filter support
@@ -331,6 +334,7 @@ class RegressionModel:
331
334
  "ignore_partitions", "include_global", "exclude_global", "only_global"
332
335
  ] = "include_global",
333
336
  use_gpu: bool = True,
337
+ batch_size: int = 100,
334
338
  ) -> RegressionPrediction | list[RegressionPrediction]:
335
339
  """
336
340
  Make predictions using the regression model.
@@ -355,6 +359,7 @@ class RegressionModel:
355
359
  * `"exclude_global"`: Exclude global memories
356
360
  * `"only_global"`: Only include global memories
357
361
  use_gpu: Whether to use GPU for the prediction (defaults to True)
362
+ batch_size: Number of values to process in a single API call
358
363
 
359
364
  Returns:
360
365
  Single RegressionPrediction or list of RegressionPrediction objects
@@ -366,6 +371,8 @@ class RegressionModel:
366
371
  """
367
372
  if timeout_seconds <= 0:
368
373
  raise ValueError("timeout_seconds must be a positive integer")
374
+ if batch_size <= 0 or batch_size > 500:
375
+ raise ValueError("batch_size must be between 1 and 500")
369
376
 
370
377
  if use_gpu:
371
378
  endpoint = "/gpu/regression_model/{name_or_id}/prediction"
@@ -374,75 +381,98 @@ class RegressionModel:
374
381
 
375
382
  telemetry_on, telemetry_sync = _get_telemetry_config(save_telemetry)
376
383
  client = OrcaClient._resolve_client()
377
- request_json: RegressionPredictionRequest = {
378
- "input_values": value if isinstance(value, list) else [value],
379
- "memoryset_override_name_or_id": self._memoryset_override_id,
380
- "expected_scores": (
381
- expected_scores
382
- if isinstance(expected_scores, list)
383
- else [expected_scores] if expected_scores is not None else None
384
- ),
385
- "tags": list(tags or set()),
386
- "save_telemetry": telemetry_on,
387
- "save_telemetry_synchronously": telemetry_sync,
388
- "prompt": prompt,
389
- "use_lookup_cache": use_lookup_cache,
390
- "ignore_unlabeled": ignore_unlabeled,
391
- "partition_filter_mode": partition_filter_mode,
392
- }
393
- # Don't send partition_ids when partition_filter_mode is "ignore_partitions"
394
- if partition_filter_mode != "ignore_partitions":
395
- request_json["partition_ids"] = partition_id
396
- response = client.POST(
397
- endpoint,
398
- params={"name_or_id": self.id},
399
- json=request_json,
400
- timeout=timeout_seconds,
401
- )
402
384
 
403
- if telemetry_on and any(p["prediction_id"] is None for p in response):
404
- raise RuntimeError("Failed to save prediction to database.")
385
+ # Convert to list for batching
386
+ values = value if isinstance(value, list) else [value]
387
+ if isinstance(expected_scores, list) and len(expected_scores) != len(values):
388
+ raise ValueError("Invalid input: \n\texpected_scores must be the same length as values")
389
+ if isinstance(partition_id, list) and len(partition_id) != len(values):
390
+ raise ValueError("Invalid input: \n\tpartition_id must be the same length as values")
391
+
392
+ if isinstance(expected_scores, list):
393
+ expected_scores = expected_scores
394
+ elif expected_scores is not None:
395
+ expected_scores = [float(expected_scores)] * len(values)
396
+
397
+ predictions: list[RegressionPrediction] = []
398
+ for i in range(0, len(values), batch_size):
399
+ batch_values = values[i : i + batch_size]
400
+ batch_expected_scores = expected_scores[i : i + batch_size] if expected_scores else None
401
+
402
+ request_json: RegressionPredictionRequest = {
403
+ "input_values": batch_values,
404
+ "memoryset_override_name_or_id": self._memoryset_override_id,
405
+ "expected_scores": batch_expected_scores,
406
+ "tags": list(tags or set()),
407
+ "save_telemetry": telemetry_on,
408
+ "save_telemetry_synchronously": telemetry_sync,
409
+ "prompt": prompt,
410
+ "use_lookup_cache": use_lookup_cache,
411
+ "ignore_unlabeled": ignore_unlabeled,
412
+ "partition_filter_mode": partition_filter_mode,
413
+ }
414
+ if partition_filter_mode != "ignore_partitions":
415
+ request_json["partition_ids"] = (
416
+ partition_id[i : i + batch_size] if isinstance(partition_id, list) else partition_id
417
+ )
418
+
419
+ response = client.POST(
420
+ endpoint,
421
+ params={"name_or_id": self.id},
422
+ json=request_json,
423
+ timeout=timeout_seconds,
424
+ )
405
425
 
406
- predictions = [
407
- RegressionPrediction(
408
- prediction_id=prediction["prediction_id"],
409
- label=None,
410
- label_name=None,
411
- score=prediction["score"],
412
- confidence=prediction["confidence"],
413
- anomaly_score=prediction["anomaly_score"],
414
- memoryset=self.memoryset,
415
- model=self,
416
- logits=None,
417
- input_value=input_value,
426
+ if telemetry_on and any(p["prediction_id"] is None for p in response):
427
+ raise RuntimeError("Failed to save prediction to database.")
428
+
429
+ predictions.extend(
430
+ RegressionPrediction(
431
+ prediction_id=prediction["prediction_id"],
432
+ label=None,
433
+ label_name=None,
434
+ score=prediction["score"],
435
+ confidence=prediction["confidence"],
436
+ anomaly_score=prediction["anomaly_score"],
437
+ memoryset=self.memoryset,
438
+ model=self,
439
+ logits=None,
440
+ input_value=input_value,
441
+ )
442
+ for prediction, input_value in zip(response, batch_values)
418
443
  )
419
- for prediction, input_value in zip(response, value if isinstance(value, list) else [value])
420
- ]
444
+
421
445
  self._last_prediction_was_batch = isinstance(value, list)
422
446
  self._last_prediction = predictions[-1]
423
447
  return predictions if isinstance(value, list) else predictions[0]
424
448
 
425
449
  def predictions(
426
450
  self,
427
- limit: int = 100,
451
+ limit: int | None = None,
428
452
  offset: int = 0,
429
453
  tag: str | None = None,
430
454
  sort: list[tuple[Literal["anomaly_score", "confidence", "timestamp"], Literal["asc", "desc"]]] = [],
455
+ batch_size: int = 100,
431
456
  ) -> list[RegressionPrediction]:
432
457
  """
433
458
  Get a list of predictions made by this model
434
459
 
435
460
  Params:
436
- limit: Optional maximum number of predictions to return
461
+ limit: Maximum number of predictions to return. If `None`, returns all predictions
462
+ by automatically paginating through results.
437
463
  offset: Optional offset of the first prediction to return
438
464
  tag: Optional tag to filter predictions by
439
465
  sort: Optional list of columns and directions to sort the predictions by.
440
466
  Predictions can be sorted by `created_at`, `confidence`, `anomaly_score`, or `score`.
467
+ batch_size: Number of predictions to fetch in a single API call
441
468
 
442
469
  Returns:
443
470
  List of score predictions
444
471
 
445
472
  Examples:
473
+ Get all predictions with a specific tag:
474
+ >>> predictions = model.predictions(tag="evaluation")
475
+
446
476
  Get the last 3 predictions:
447
477
  >>> predictions = model.predictions(limit=3, sort=[("created_at", "desc")])
448
478
  [
@@ -455,34 +485,61 @@ class RegressionModel:
455
485
  >>> predictions = model.predictions(sort=[("confidence", "desc")], offset=1, limit=1)
456
486
  [RegressionPrediction({score: 4.2, confidence: 0.90, anomaly_score: 0.1, input_value: 'Good service'})]
457
487
  """
488
+ if batch_size <= 0 or batch_size > 500:
489
+ raise ValueError("batch_size must be between 1 and 500")
490
+ if limit == 0:
491
+ return []
492
+
458
493
  client = OrcaClient._resolve_client()
459
- predictions = client.POST(
460
- "/telemetry/prediction",
461
- json={
494
+ all_predictions: list[RegressionPrediction] = []
495
+
496
+ if limit is not None and limit < batch_size:
497
+ pages = [(offset, limit)]
498
+ else:
499
+ # automatically paginate the requests if necessary
500
+ total = client.POST(
501
+ "/telemetry/prediction/count",
502
+ json={
503
+ "model_id": self.id,
504
+ "tag": tag,
505
+ },
506
+ )
507
+ max_limit = max(total - offset, 0)
508
+ limit = min(limit, max_limit) if limit is not None else max_limit
509
+ pages = [(o, min(batch_size, limit - (o - offset))) for o in range(offset, offset + limit, batch_size)]
510
+
511
+ for current_offset, current_limit in pages:
512
+ request_json: ListPredictionsRequest = {
462
513
  "model_id": self.id,
463
- "limit": limit,
464
- "offset": offset,
465
- "sort": [list(sort_item) for sort_item in sort],
514
+ "limit": current_limit,
515
+ "offset": current_offset,
466
516
  "tag": tag,
467
- },
468
- )
469
- return [
470
- RegressionPrediction(
471
- prediction_id=prediction["prediction_id"],
472
- label=None,
473
- label_name=None,
474
- score=prediction["score"],
475
- confidence=prediction["confidence"],
476
- anomaly_score=prediction["anomaly_score"],
477
- memoryset=self.memoryset,
478
- model=self,
479
- telemetry=prediction,
480
- logits=None,
481
- input_value=None,
517
+ }
518
+ if sort:
519
+ request_json["sort"] = sort
520
+ response = client.POST(
521
+ "/telemetry/prediction",
522
+ json=request_json,
482
523
  )
483
- for prediction in predictions
484
- if "score" in prediction
485
- ]
524
+ all_predictions.extend(
525
+ RegressionPrediction(
526
+ prediction_id=prediction["prediction_id"],
527
+ label=None,
528
+ label_name=None,
529
+ score=prediction["score"],
530
+ confidence=prediction["confidence"],
531
+ anomaly_score=prediction["anomaly_score"],
532
+ memoryset=self.memoryset,
533
+ model=self,
534
+ telemetry=prediction,
535
+ logits=None,
536
+ input_value=None,
537
+ )
538
+ for prediction in response
539
+ if "score" in prediction
540
+ )
541
+
542
+ return all_predictions
486
543
 
487
544
  def _evaluate_datasource(
488
545
  self,
@@ -183,14 +183,18 @@ def test_evaluate_dataset_with_nones_raises_error(regression_model: RegressionMo
183
183
 
184
184
 
185
185
  def test_evaluate_with_telemetry(regression_model, eval_dataset: Dataset):
186
- result = regression_model.evaluate(eval_dataset, record_predictions=True, tags={"test"})
186
+ result = regression_model.evaluate(eval_dataset, record_predictions=True, tags={"test"}, batch_size=2)
187
187
  assert result is not None
188
188
  assert isinstance(result, RegressionMetrics)
189
- predictions = regression_model.predictions(tag="test")
189
+ predictions = regression_model.predictions(tag="test", batch_size=100, sort=[("timestamp", "asc")])
190
190
  assert len(predictions) == 4
191
191
  assert all(p.tags == {"test"} for p in predictions)
192
192
  assert all(p.expected_score is not None for p in predictions)
193
- assert all(np.allclose(p.expected_score, s) for p, s in zip(predictions, eval_dataset["score"]))
193
+ prediction_expected_scores = [p.expected_score for p in predictions]
194
+ eval_expected_scores = list(eval_dataset["score"])
195
+ assert all(
196
+ np.allclose(p, s, atol=1e-3) for p, s in zip(prediction_expected_scores, eval_expected_scores)
197
+ ), f"Prediction expected scores: {prediction_expected_scores} do not match eval expected scores: {eval_expected_scores}"
194
198
 
195
199
 
196
200
  def test_evaluate_with_partition_column_dataset(partitioned_regression_model: RegressionModel):
@@ -328,7 +332,7 @@ def test_evaluate_with_partition_column_datasource(partitioned_regression_model:
328
332
 
329
333
 
330
334
  def test_predict(regression_model: RegressionModel):
331
- predictions = regression_model.predict(["Do you love soup?", "Are cats cute?"])
335
+ predictions = regression_model.predict(["Do you love soup?", "Are cats cute?"], batch_size=1)
332
336
  assert len(predictions) == 2
333
337
  assert predictions[0].prediction_id is not None
334
338
  assert predictions[1].prediction_id is not None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orca_sdk
3
- Version: 0.1.8
3
+ Version: 0.1.10
4
4
  Summary: SDK for interacting with Orca Services
5
5
  License-Expression: Apache-2.0
6
6
  Author: Orca DB Inc.
@@ -11,13 +11,13 @@ Classifier: Programming Language :: Python :: 3.11
11
11
  Classifier: Programming Language :: Python :: 3.12
12
12
  Classifier: Programming Language :: Python :: 3.13
13
13
  Classifier: Programming Language :: Python :: 3.14
14
- Requires-Dist: datasets (>=3.1.0,<4)
15
- Requires-Dist: gradio (>=5.44.1,<6)
14
+ Requires-Dist: datasets (>=4.4.0,<5)
15
+ Requires-Dist: gradio (>=6.0.0,<7)
16
16
  Requires-Dist: httpx (>=0.28.1)
17
17
  Requires-Dist: httpx-retries (>=0.4.3,<0.5.0)
18
18
  Requires-Dist: numpy (>=2.1.0,<3)
19
19
  Requires-Dist: pandas (>=2.2.3,<3)
20
- Requires-Dist: pyarrow (>=18.0.0,<19)
20
+ Requires-Dist: pyarrow (>=22.0.0,<23)
21
21
  Requires-Dist: python-dotenv (>=1.1.0)
22
22
  Requires-Dist: scikit-learn (>=1.6.1,<2)
23
23
  Requires-Dist: torch (>=2.8.0,<3)
@@ -3,13 +3,13 @@ orca_sdk/_shared/__init__.py,sha256=3Kt0Hu3QLI5FEp9nqGTxqAm3hAoBJKcagfaGQZ-lbJQ,
3
3
  orca_sdk/_shared/metrics.py,sha256=faeL1B1ftmns1ikfKrIlU3xOn6j0iAGLNUupxvAFza8,24968
4
4
  orca_sdk/_shared/metrics_test.py,sha256=vDIXoj8EuuLcdPJz_7EiVPgQ-FXiVT81JG30jxsg9HM,20752
5
5
  orca_sdk/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- orca_sdk/_utils/analysis_ui.py,sha256=nT-M_YcNRCVPQzvuqYNFKnNHhYkADYBvq1GlIUePrWw,9232
6
+ orca_sdk/_utils/analysis_ui.py,sha256=R0xc4RyJKyBHJEEF_ztI4Dm5w8Y1uF0Wpkn4LQgXqBE,9258
7
7
  orca_sdk/_utils/analysis_ui_style.css,sha256=q_ba_-_KtgztepHg829zLzypaxKayl7ySC1-oYDzV3k,836
8
8
  orca_sdk/_utils/auth.py,sha256=nC252O171_3_wn4KBAN7kg8GNvoZFiQ5Xtzkrm5dWDo,2645
9
9
  orca_sdk/_utils/auth_test.py,sha256=ygVWv1Ex53LaxIP7p2hzPHl8l9qYyBD5IGmEFJMps6s,1056
10
10
  orca_sdk/_utils/common.py,sha256=wUm2pNDWytEecC5WiDWd02-yCZw3Akx0bIutG4lHsFA,805
11
- orca_sdk/_utils/data_parsing.py,sha256=gkAwWEC8qRt3vRUObe7n7Pr0azOayNwc2yFY04WFp7E,5220
12
- orca_sdk/_utils/data_parsing_test.py,sha256=mJIPDOfs9fTsrQO_oMGonVAtNCA3_gcw_3qSmOX5Q4g,8978
11
+ orca_sdk/_utils/data_parsing.py,sha256=5vaTpvUOS-ldlcgnSARYw7s9mce-imzkU7kA48-pdIM,5396
12
+ orca_sdk/_utils/data_parsing_test.py,sha256=u7BEjxtsU9gMs3tAZI0lJ--vOLlwKwH3hemdCedzxA0,8826
13
13
  orca_sdk/_utils/pagination.py,sha256=986z0QPZixrZeurJWorF6eMgnTRdDF84AagEA6qNbMw,4245
14
14
  orca_sdk/_utils/pagination_test.py,sha256=BUylCrcHnwoKEBmMUzVr0lwLpA35ivcCwdBK4rMw9y8,4887
15
15
  orca_sdk/_utils/prediction_result_ui.css,sha256=sqBlkRLnovb5X5EcUDdB6iGpH63nVRlTW4uAmXuD0WM,258
@@ -17,25 +17,25 @@ orca_sdk/_utils/prediction_result_ui.py,sha256=Ur_FY7dz3oWNmtPiP3Wl3yRlEMgK8q9Uf
17
17
  orca_sdk/_utils/tqdm_file_reader.py,sha256=Lw7Cg1UgNuRUoN6jjqZb-IlV00H-kbRcrZLdudr1GxE,324
18
18
  orca_sdk/_utils/value_parser.py,sha256=c3qMABCCDQcIjn9N1orYYnlRwDW9JWdGwW_2TDZPLdI,1286
19
19
  orca_sdk/_utils/value_parser_test.py,sha256=OybsiC-Obi32RRi9NIuwrVBRAnlyPMV1xVAaevSrb7M,1079
20
- orca_sdk/async_client.py,sha256=U7B8yLbeB5STPr3dkeTTwPkDHou2nBCJ9CLBPulrXVY,134893
21
- orca_sdk/classification_model.py,sha256=jy8h5Kb4cesFqm1sat4JuxAs9uH53rUvOrlqKID-mwA,46294
22
- orca_sdk/classification_model_test.py,sha256=vBn7KBb9-ACuJEdzW50n54Fn6Mh9iEYbn1197lE8-yI,36997
23
- orca_sdk/client.py,sha256=9AaEYrfK7HZEpsSSih8mRuTUiaQ4yk2n0jU92oLusGY,133942
20
+ orca_sdk/async_client.py,sha256=PM7N-ggmtucfcUF1vQGtTZOCJpSNTOgd7l3LDNF5kP4,137192
21
+ orca_sdk/classification_model.py,sha256=C58euWnNvwXnthR9RtVVCOcgPEbxCjjp3sHMb86V6YA,50197
22
+ orca_sdk/classification_model_test.py,sha256=ElqxtR6gNwwk8dNXwfwAhpT7l0ZIP3H4pHmOyFXyTWk,37370
23
+ orca_sdk/client.py,sha256=SKZv3zGG6OwLe_FlB5wL2cxltOLPCcHvoo2CbMwyKgA,136241
24
24
  orca_sdk/conftest.py,sha256=0O1VY-SPKNAvi9fBLdY1RMnYVgZvMjP92y99bNAqqiw,12461
25
- orca_sdk/credentials.py,sha256=80_1r8n5jruEvN_E629SaRrRhKvF_NhWUEZyZzPXkqQ,6620
25
+ orca_sdk/credentials.py,sha256=2SwC3tq5akP-F_u2s4xMZDp8mlsKMUT1T5T9Z99-eSY,6588
26
26
  orca_sdk/credentials_test.py,sha256=TLbXJMz3IlThvtSrHeLM7jRsKnrncA_ahOTpHg15Ei4,4089
27
- orca_sdk/datasource.py,sha256=6QaccghiyFEUSFcqnwjIJzpgIh9Id0snJk2EqViqPsU,22356
27
+ orca_sdk/datasource.py,sha256=Qn5QloE84UXeyPk2wcy1lWe5wmh1iDBS044eWnxck_E,22371
28
28
  orca_sdk/datasource_test.py,sha256=sCk3IcQJbDut5oN4Wf7PXhTxyMwalxMuCXJekSxy9wk,16665
29
29
  orca_sdk/embedding_model.py,sha256=vLGnlO9I-cN1lklNBl_LxZ8m9oK3vkegFOpvYYw8u8g,28038
30
30
  orca_sdk/embedding_model_test.py,sha256=Lc6fZ0ifT0hh6ldkUfjwMPcP6OgN0Umlzu8XDLs7UO4,8144
31
31
  orca_sdk/job.py,sha256=wHwVt-s7i-v8udhLGybB-90Kp4dwOLrY806bE4Tam5Q,13092
32
32
  orca_sdk/job_test.py,sha256=nRSWxd_1UIfrj9oMVvrXjt6OBkBpddYAjb2y6P-DTUg,4327
33
- orca_sdk/memoryset.py,sha256=-bTQJLzr8Fdt3LIaCEliO2jT_LxcaoaqxETY42vH0mA,156070
34
- orca_sdk/memoryset_test.py,sha256=X-gAOz-BA4ByXAitI19GQsktnL2xRGcLus8AHj5mL48,51218
35
- orca_sdk/regression_model.py,sha256=Ga0TZLm1Qe_bQXoP90BrMiyvZ8bsJ33Z9I6RgT86t2c,31339
36
- orca_sdk/regression_model_test.py,sha256=DfWLkqxB835jjwM-sj1uxQ6Yz_ZBMnt8EHjdfnHsRnU,25103
33
+ orca_sdk/memoryset.py,sha256=06v34fHabpkEaOv9VCKc0NhpMi_mNZGbQP_9GiW_nuE,157157
34
+ orca_sdk/memoryset_test.py,sha256=O2o42XETtffXtZy0kbLk2b8cUDXU-w2ZAzXLi5-vDPQ,51278
35
+ orca_sdk/regression_model.py,sha256=AXRzJG15sDJQSiDCDfRdcLnZDNkJWORYjhHqKyyL-Fc,33960
36
+ orca_sdk/regression_model_test.py,sha256=90EyrhaMk1kTf87RFkMNz1PTItmeUISs6AvHmyp08DU,25447
37
37
  orca_sdk/telemetry.py,sha256=ZyCMiyyo_SchjadWZH55TlLrC4Ucq5S316NbW26LL4Y,27834
38
38
  orca_sdk/telemetry_test.py,sha256=eT66C5lFdNg-pQdo2I__BP7Tn5fTc9aTkVo9ZhWwhU0,5519
39
- orca_sdk-0.1.8.dist-info/METADATA,sha256=EIDzSzxtf7D5LEuAdakH5rIy1XHqeEC1HhqsrF_oT5c,3710
40
- orca_sdk-0.1.8.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
41
- orca_sdk-0.1.8.dist-info/RECORD,,
39
+ orca_sdk-0.1.10.dist-info/METADATA,sha256=j_TIalbL8oztP39lnXjyAI6Aosvb6rnJKUc3gcuxD0k,3710
40
+ orca_sdk-0.1.10.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
41
+ orca_sdk-0.1.10.dist-info/RECORD,,