orca-python 0.7.3__py3-none-any.whl → 0.7.5__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.
orca_python/envs.py CHANGED
@@ -5,18 +5,18 @@ from orca_python.exceptions import MissingDependency
5
5
 
6
6
 
7
7
  def getenvs() -> Tuple[str, ...]:
8
- orcaserver = os.getenv("ORCASERVER", "")
8
+ orcaserver = os.getenv("ORCA_CORE", "")
9
9
  if orcaserver == "":
10
- MissingDependency("ORCASERVER is required")
10
+ raise MissingDependency("ORCA_CORE is required")
11
11
  orcaserver = orcaserver.lstrip("grpc://")
12
12
 
13
- port = os.getenv("PORT", "")
13
+ port = os.getenv("PROCESSOR_PORT", "")
14
14
  if port == "":
15
- MissingDependency("PORT required")
15
+ raise MissingDependency("PROCESSOR_PORT required")
16
16
 
17
- host = os.getenv("HOST", "")
17
+ host = os.getenv("PROCESSOR_ADDRESS", "")
18
18
  if host == "":
19
- MissingDependency("HOST is required")
19
+ raise MissingDependency("PROCESSOR_ADDRESS is required")
20
20
 
21
21
  return orcaserver, port, host
22
22
 
orca_python/main.py CHANGED
@@ -415,61 +415,37 @@ class Processor(OrcaProcessorServicer): # type: ignore
415
415
 
416
416
  algoResult = await loop.run_in_executor(None, algo.exec_fn, params)
417
417
 
418
- # create result based on the return type
419
- current_time = int(time.time()) # Current timestamp in seconds
420
-
421
- if isinstance(algoResult, dict):
422
- # for dictionary results, use struct_value
418
+ # depending on algo result type, map to whatever instance
419
+ if algo.result_type == StructResult: # type: ignore
423
420
  struct_value = struct_pb2.Struct()
424
- json_format.ParseDict(algoResult, struct_value)
421
+ json_format.ParseDict(algoResult.value, struct_value)
425
422
 
426
423
  resultPb = pb.Result(
427
- status=pb.ResultStatus.RESULT_STATUS_SUCEEDED, # Note: Using the actual enum from the proto
424
+ status=pb.ResultStatus.RESULT_STATUS_SUCEEDED,
428
425
  struct_value=struct_value,
429
- timestamp=current_time,
430
426
  )
431
- elif isinstance(algoResult, float) or isinstance(algoResult, int):
427
+
428
+ elif algo.result_type == ValueResult: # type: ignore
432
429
  # for single numeric values
433
430
  resultPb = pb.Result(
434
431
  status=pb.ResultStatus.RESULT_STATUS_SUCEEDED,
435
- single_value=float(algoResult), # Convert to float as per proto
436
- timestamp=current_time,
432
+ single_value=algoResult.value,
437
433
  )
438
- elif isinstance(algoResult, list) and all(
439
- isinstance(x, (int, float)) for x in algoResult
440
- ):
434
+ elif algo.result_type == ArrayResult: # type: ignore
441
435
  # for lists of numeric values
442
436
  float_array = pb.FloatArray(values=algoResult)
443
437
  resultPb = pb.Result(
444
438
  status=pb.ResultStatus.RESULT_STATUS_SUCEEDED,
445
- float_values=float_array,
446
- timestamp=current_time,
439
+ float_values=float_array.values,
447
440
  )
448
441
  else:
449
- # try to convert to struct as a fallback
450
- try:
451
- struct_value = struct_pb2.Struct()
452
- # convert to dict if possible, otherwise use string representation
453
- if hasattr(algoResult, "__dict__"):
454
- result_dict = algoResult.__dict__
455
- else:
456
- result_dict = {"value": str(algoResult)}
457
-
458
- json_format.ParseDict(result_dict, struct_value)
459
- resultPb = pb.Result(
460
- status=pb.ResultStatus.RESULT_STATUS_SUCEEDED,
461
- struct_value=struct_value,
462
- timestamp=current_time,
463
- )
464
- except Exception as conv_error:
465
- LOGGER.error(
466
- f"Failed to convert result to protobuf: {str(conv_error)}"
467
- )
468
- # create a handled failure result
469
- resultPb = pb.Result(
470
- status=pb.ResultStatus.RESULT_STATUS_HANDLED_FAILED,
471
- timestamp=current_time,
472
- )
442
+ LOGGER.error(
443
+ f"Algorithm {algo.name} {algo.version} has unhandled return type {algo.result_type}"
444
+ )
445
+ # create a handled failure result
446
+ resultPb = pb.Result(
447
+ status=pb.ResultStatus.RESULT_STATUS_HANDLED_FAILED,
448
+ )
473
449
 
474
450
  # create the algorithm result
475
451
  algoResultPb = pb.AlgorithmResult(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: orca-python
3
- Version: 0.7.3
3
+ Version: 0.7.5
4
4
  Summary: Python SDK for the Predixus Orca product
5
5
  Author: Frederick Mannings
6
6
  Author-email: contact@predixus.com
@@ -81,10 +81,10 @@ proc.Start()
81
81
  Then run your python file to register it with orca-core:
82
82
 
83
83
  ```bash
84
- ORCASERVER=grpc://localhost:32770 HOST=172.18.0.1 python main.py
84
+ ORCA_CORE=grpc://localhost:32770 PROCESSOR_ADDRESS=172.18.0.1 PROCESSOR_PORT=8080 python main.py
85
85
  ```
86
86
 
87
- Replace the contents of `ORCASERVER` and `HOST` with the output of `orca status`.
87
+ Replace the contents of `ORCA_CORE`, `PROCESSOR_ADDRESS` and `PROCESSOR_PORT` with the output of `orca status`.
88
88
 
89
89
  6. Emit a window to orcacore
90
90
  TBD
@@ -7,11 +7,11 @@ vendor/validate_pb2.py,sha256=lyYYFtGDzHjs9ZHMUnQLcE_G5qYWfOluts0gm6m1D88,149437
7
7
  vendor/validate_pb2.pyi,sha256=Qyebm_XUdrvo8As3XovHu7vVsHXYJtTdP3bYUmQEecs,30245
8
8
  vendor/validate_pb2_grpc.py,sha256=qIlTS0MGHE7myQ7tCMbS-pPqA9FMZl_Hn9Mh_uq2o9o,896
9
9
  orca_python/__init__.py,sha256=tHVOEF69iiLzbymMTuEKdbGSqeaAzpc-BiZY7VY1Gz4,362
10
- orca_python/envs.py,sha256=zSuukNSpEw78VpSSIDAA9KRAurWedQMwx1qyQg9f8pk,560
10
+ orca_python/envs.py,sha256=bygIIGn-cBVeA-nKue5k17zNBkfGfRuMZhOPmtZ3Qzs,622
11
11
  orca_python/exceptions.py,sha256=el7a5VUd21nNCTSTgVn5T9gyULncrQgKyFQghWmApnw,629
12
- orca_python/main.py,sha256=F6LWHkv2fnH0OOLmcCHbwdnjdZSF2cMFuwUrUwRjQeA,30469
12
+ orca_python/main.py,sha256=BJvV_xOxzJzcsAp3UKvckqLFyV8mCPfDh0tpk3Jwp0A,29264
13
13
  orca_python/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- orca_python-0.7.3.dist-info/LICENSE,sha256=sxb8X8qhbZ_JaCBFmoIriJzA-jelKmh86sAKQsIRN_I,1062
15
- orca_python-0.7.3.dist-info/METADATA,sha256=4E3cKPM6bdILzQ6YsjKdFNfpC7Nlb90dbPIlpdRvcXE,3019
16
- orca_python-0.7.3.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
17
- orca_python-0.7.3.dist-info/RECORD,,
14
+ orca_python-0.7.5.dist-info/LICENSE,sha256=sxb8X8qhbZ_JaCBFmoIriJzA-jelKmh86sAKQsIRN_I,1062
15
+ orca_python-0.7.5.dist-info/METADATA,sha256=Cu6W2-ffZjobEhbB1gg2VoNKkNu2H-ETsiAZKiV9gww,3081
16
+ orca_python-0.7.5.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
17
+ orca_python-0.7.5.dist-info/RECORD,,