opengris-scaler 1.12.13__tar.gz → 1.12.20__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.

Potentially problematic release.


This version of opengris-scaler might be problematic. Click here for more details.

Files changed (374) hide show
  1. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.github/actions/compile-libraries/action.yml +1 -1
  2. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/CMakePresets.json +12 -0
  3. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/PKG-INFO +13 -9
  4. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/README.md +4 -4
  5. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/docs/source/tutorials/development.rst +10 -6
  6. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/docs/source/tutorials/examples.rst +3 -3
  7. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/docs/source/tutorials/features.rst +1 -1
  8. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/docs/source/tutorials/quickstart.rst +5 -5
  9. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/applications/implied_volatility.py +1 -1
  10. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/applications/yfinance_historical_price.py +1 -1
  11. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/cpp/ymq/automated_echo_client.cpp +7 -11
  12. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/cpp/ymq/echo_client.cpp +4 -7
  13. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/cpp/ymq/echo_server.cpp +3 -4
  14. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/cpp/ymq/pingpong.cpp +7 -12
  15. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/cpp/ymq/pub_server.cpp +4 -6
  16. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/cpp/ymq/remove_iosocket.cpp +3 -4
  17. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/cpp/ymq/sub_client.cpp +3 -5
  18. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/cpp/ymq/timestamp.cpp +2 -2
  19. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/task_capabilities.py +1 -1
  20. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/pyproject.toml +12 -6
  21. opengris_scaler-1.12.20/run_worker_adapter_ecs.py +5 -0
  22. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/client/agent/client_agent.py +7 -7
  23. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/client/agent/heartbeat_manager.py +5 -5
  24. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/client/client.py +6 -6
  25. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/cluster/cluster.py +4 -4
  26. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/cluster/combo.py +14 -12
  27. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/cluster/object_storage_server.py +7 -7
  28. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/cluster/scheduler.py +8 -5
  29. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/config/defaults.py +7 -0
  30. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/config/loader.py +1 -1
  31. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/config/section/cluster.py +2 -3
  32. opengris_scaler-1.12.20/scaler/config/section/ecs_worker_adapter.py +85 -0
  33. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/config/section/native_worker_adapter.py +2 -3
  34. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/config/section/object_storage_server.py +1 -0
  35. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/config/section/scheduler.py +8 -7
  36. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/config/section/symphony_worker_adapter.py +3 -3
  37. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/config/section/webui.py +5 -0
  38. opengris_scaler-1.12.20/scaler/config/types/network_backend.py +12 -0
  39. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/config/types/worker.py +1 -1
  40. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/entry_points/cluster.py +3 -3
  41. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/entry_points/scheduler.py +16 -7
  42. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/entry_points/top.py +1 -1
  43. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/entry_points/webui.py +23 -1
  44. opengris_scaler-1.12.20/scaler/entry_points/worker_adapter_ecs.py +191 -0
  45. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/entry_points/worker_adapter_native.py +1 -1
  46. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/entry_points/worker_adapter_symphony.py +5 -9
  47. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/async_binder.py +9 -5
  48. opengris_scaler-1.12.20/scaler/io/async_object_storage_connector.py +225 -0
  49. opengris_scaler-1.12.20/scaler/io/sync_object_storage_connector.py +247 -0
  50. opengris_scaler-1.12.20/scaler/io/utility.py +75 -0
  51. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/bytes.h +1 -1
  52. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/configuration.h +1 -2
  53. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/error.h +3 -3
  54. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/logging.h +2 -4
  55. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/message_connection_tcp.cpp +24 -4
  56. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/message_connection_tcp.h +2 -0
  57. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/pymod_ymq/exception.h +2 -5
  58. opengris_scaler-1.12.20/scaler/io/ymq/pymod_ymq/gil.h +18 -0
  59. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/pymod_ymq/io_context.h +8 -6
  60. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/pymod_ymq/io_socket.h +72 -73
  61. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/pymod_ymq/python.h +7 -3
  62. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/pymod_ymq/ymq.h +6 -10
  63. opengris_scaler-1.12.20/scaler/io/ymq/readme.md +18 -0
  64. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/tcp_client.cpp +2 -2
  65. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/timed_queue.h +30 -33
  66. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/ymq.py +24 -16
  67. opengris_scaler-1.12.13/scaler/io/async_object_storage_connector.py → opengris_scaler-1.12.20/scaler/io/ymq_async_object_storage_connector.py +4 -5
  68. opengris_scaler-1.12.13/scaler/io/sync_object_storage_connector.py → opengris_scaler-1.12.20/scaler/io/ymq_sync_object_storage_connector.py +2 -3
  69. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/object_storage/object_manager.cpp +6 -1
  70. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/object_storage/object_manager.h +3 -0
  71. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/object_storage/object_storage_server.cpp +29 -0
  72. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/object_storage/object_storage_server.h +2 -0
  73. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/protocol/capnp/message.capnp +2 -1
  74. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/protocol/capnp/object_storage.capnp +5 -0
  75. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/protocol/python/message.py +13 -1
  76. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/allocate_policy/capability_allocate_policy.py +1 -1
  77. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/controllers/information_controller.py +1 -1
  78. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/controllers/mixins.py +0 -7
  79. opengris_scaler-1.12.20/scaler/scheduler/controllers/scaling_policies/fixed_elastic.py +145 -0
  80. opengris_scaler-1.12.20/scaler/scheduler/controllers/scaling_policies/mixins.py +10 -0
  81. opengris_scaler-1.12.20/scaler/scheduler/controllers/scaling_policies/null.py +14 -0
  82. opengris_scaler-1.12.20/scaler/scheduler/controllers/scaling_policies/types.py +9 -0
  83. opengris_scaler-1.12.20/scaler/scheduler/controllers/scaling_policies/utility.py +20 -0
  84. opengris_scaler-1.12.13/scaler/scheduler/controllers/scaling_controller.py → opengris_scaler-1.12.20/scaler/scheduler/controllers/scaling_policies/vanilla.py +25 -16
  85. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/controllers/task_controller.py +4 -1
  86. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/scheduler.py +10 -12
  87. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/ui/memory_window.py +10 -13
  88. opengris_scaler-1.12.20/scaler/ui/task_graph.py +862 -0
  89. opengris_scaler-1.12.20/scaler/ui/task_log.py +104 -0
  90. opengris_scaler-1.12.20/scaler/ui/utility.py +67 -0
  91. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/ui/webui.py +14 -2
  92. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/ui/worker_processors.py +11 -4
  93. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/identifiers.py +2 -3
  94. opengris_scaler-1.12.20/scaler/version.txt +1 -0
  95. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker/agent/heartbeat_manager.py +8 -8
  96. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker/agent/mixins.py +2 -2
  97. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker/agent/processor/processor.py +5 -5
  98. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker/agent/processor_holder.py +5 -5
  99. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker/agent/processor_manager.py +4 -3
  100. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker/worker.py +8 -8
  101. opengris_scaler-1.12.20/scaler/worker_adapter/common.py +26 -0
  102. opengris_scaler-1.12.20/scaler/worker_adapter/ecs.py +269 -0
  103. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker_adapter/native.py +17 -16
  104. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker_adapter/symphony/heartbeat_manager.py +7 -7
  105. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker_adapter/symphony/task_manager.py +2 -1
  106. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker_adapter/symphony/worker.py +7 -8
  107. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker_adapter/symphony/worker_adapter.py +12 -15
  108. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/CMakeLists.txt +15 -10
  109. opengris_scaler-1.12.20/tests/cpp/CMakeLists.txt +6 -0
  110. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/cpp/object_storage/test_object_storage_server.cpp +117 -0
  111. opengris_scaler-1.12.20/tests/cpp/ymq/CMakeLists.txt +3 -0
  112. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/cpp/ymq/common.h +48 -22
  113. opengris_scaler-1.12.20/tests/cpp/ymq/py_mitm/__init__.py +0 -0
  114. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/cpp/ymq/py_mitm/main.py +2 -1
  115. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/cpp/ymq/py_mitm/passthrough.py +2 -1
  116. opengris_scaler-1.12.20/tests/cpp/ymq/py_mitm/randomly_drop_packets.py +50 -0
  117. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/cpp/ymq/py_mitm/send_rst_to_client.py +5 -4
  118. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/cpp/ymq/py_mitm/types.py +3 -2
  119. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/cpp/ymq/test_ymq.cpp +224 -30
  120. opengris_scaler-1.12.13/tests/io/ymq/test_logging.cpp → opengris_scaler-1.12.20/tests/cpp/ymq/test_ymq_logging.cpp +4 -0
  121. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_balance.py +1 -1
  122. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_capabilities.py +4 -12
  123. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_client.py +1 -1
  124. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_cluster.py +4 -2
  125. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_cluster_disconnect.py +1 -1
  126. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_death_timeout.py +4 -4
  127. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_scaling.py +8 -6
  128. opengris_scaler-1.12.13/scaler/io/utility.py +0 -31
  129. opengris_scaler-1.12.13/scaler/io/ymq/pymod_ymq/gil.h +0 -15
  130. opengris_scaler-1.12.13/scaler/io/ymq/readme.md +0 -114
  131. opengris_scaler-1.12.13/scaler/ui/task_graph.py +0 -370
  132. opengris_scaler-1.12.13/scaler/ui/task_log.py +0 -83
  133. opengris_scaler-1.12.13/scaler/ui/utility.py +0 -35
  134. opengris_scaler-1.12.13/scaler/version.txt +0 -1
  135. opengris_scaler-1.12.13/tests/cpp/CMakeLists.txt +0 -3
  136. opengris_scaler-1.12.13/tests/cpp/ymq/CMakeLists.txt +0 -1
  137. opengris_scaler-1.12.13/tests/cpp/ymq/py_mitm/randomly_drop_packets.py +0 -29
  138. opengris_scaler-1.12.13/tests/io/ymq/CMakeLists.txt +0 -1
  139. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.clang-format +0 -0
  140. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.github/actions/3rd-party-libraries-compile/action.yml +0 -0
  141. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.github/actions/3rd-party-libraries-download/action.yml +0 -0
  142. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.github/actions/3rd-party-libraries-install/action.yml +0 -0
  143. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.github/actions/create-artifacts/action.yml +0 -0
  144. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.github/actions/harden-check/action.yml +0 -0
  145. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.github/actions/publish-doc/action.yml +0 -0
  146. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.github/actions/run-linter/action.yml +0 -0
  147. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.github/actions/run-test/action.yml +0 -0
  148. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.github/actions/setup-env/action.yml +0 -0
  149. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.github/dependabot.yml +0 -0
  150. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.github/workflows/build-and-test.yml +0 -0
  151. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.github/workflows/codeql.yml +0 -0
  152. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.github/workflows/dependency-review.yml +0 -0
  153. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.github/workflows/publish-artifact.yml +0 -0
  154. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.github/workflows/publish-documentation.yml +0 -0
  155. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.github/workflows/scorecard.yml +0 -0
  156. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/.gitignore +0 -0
  157. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/CMakeLists.txt +0 -0
  158. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/CONTRIBUTING.md +0 -0
  159. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/LICENSE +0 -0
  160. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/LICENSE.spdx +0 -0
  161. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/NOTICE +0 -0
  162. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/benchmarks/dask_local_test.py +0 -0
  163. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/benchmarks/dask_remote_test.py +0 -0
  164. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/benchmarks/scaler_test.py +0 -0
  165. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/docs/.gitignore +0 -0
  166. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/docs/Makefile +0 -0
  167. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/docs/make.bat +0 -0
  168. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/docs/requirements_docs.txt +0 -0
  169. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/docs/source/_static/style.css +0 -0
  170. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/docs/source/_templates/layout.html +0 -0
  171. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/docs/source/conf.py +0 -0
  172. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/docs/source/index.rst +0 -0
  173. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/docs/source/tutorials/configuration.rst +0 -0
  174. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/docs/source/tutorials/images/architecture.png +0 -0
  175. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/downloaded/capnproto-c++-1.1.0.tar.gz +0 -0
  176. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/CMakeLists.txt +0 -0
  177. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/applications/downloaded_data.csv +0 -0
  178. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/applications/pillow.py +0 -0
  179. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/applications/requirements_applications.txt +0 -0
  180. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/applications/timeseries.py +0 -0
  181. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/cpp/CMakeLists.txt +0 -0
  182. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/cpp/ymq/CMakeLists.txt +0 -0
  183. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/disconnect_client.py +0 -0
  184. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/graphtask_client.py +0 -0
  185. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/graphtask_nested_client.py +0 -0
  186. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/images/cat_1.jpg +0 -0
  187. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/images/cat_2.jpg +0 -0
  188. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/map_client.py +0 -0
  189. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/nested_client.py +0 -0
  190. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/readme.md +0 -0
  191. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/send_object_client.py +0 -0
  192. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/examples/simple_client.py +0 -0
  193. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/renovate.json +0 -0
  194. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/run_cluster.py +0 -0
  195. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/run_object_storage_server.py +0 -0
  196. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/run_scheduler.py +0 -0
  197. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/run_top.py +0 -0
  198. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/run_webui.py +0 -0
  199. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/run_worker_adapter_native.py +0 -0
  200. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/run_worker_adapter_symphony.py +0 -0
  201. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/CMakeLists.txt +0 -0
  202. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/__init__.py +0 -0
  203. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/about.py +0 -0
  204. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/client/__init__.py +0 -0
  205. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/client/agent/__init__.py +0 -0
  206. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/client/agent/disconnect_manager.py +0 -0
  207. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/client/agent/future_manager.py +0 -0
  208. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/client/agent/mixins.py +0 -0
  209. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/client/agent/object_manager.py +0 -0
  210. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/client/agent/task_manager.py +0 -0
  211. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/client/future.py +0 -0
  212. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/client/object_buffer.py +0 -0
  213. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/client/object_reference.py +0 -0
  214. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/client/serializer/__init__.py +0 -0
  215. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/client/serializer/default.py +0 -0
  216. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/client/serializer/mixins.py +0 -0
  217. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/cluster/__init__.py +0 -0
  218. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/config/__init__.py +0 -0
  219. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/config/mixins.py +0 -0
  220. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/config/section/__init__.py +0 -0
  221. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/config/section/top.py +0 -0
  222. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/config/types/__init__.py +0 -0
  223. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/config/types/object_storage_server.py +0 -0
  224. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/config/types/zmq.py +0 -0
  225. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/entry_points/__init__.py +0 -0
  226. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/entry_points/object_storage_server.py +0 -0
  227. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/__init__.py +0 -0
  228. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/async_connector.py +1 -1
  229. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/mixins.py +0 -0
  230. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/sync_connector.py +1 -1
  231. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/sync_subscriber.py +1 -1
  232. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/CMakeLists.txt +0 -0
  233. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/__init__.py +0 -0
  234. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/_ymq.pyi +0 -0
  235. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/common.h +0 -0
  236. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/epoll_context.cpp +0 -0
  237. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/epoll_context.h +0 -0
  238. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/event_loop.h +0 -0
  239. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/event_loop_thread.cpp +0 -0
  240. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/event_loop_thread.h +0 -0
  241. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/event_manager.h +0 -0
  242. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/interruptive_concurrent_queue.h +0 -0
  243. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/io_context.cpp +0 -0
  244. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/io_context.h +0 -0
  245. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/io_socket.cpp +0 -0
  246. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/io_socket.h +0 -0
  247. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/iocp_context.cpp +0 -0
  248. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/iocp_context.h +0 -0
  249. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/message.h +0 -0
  250. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/message_connection.h +0 -0
  251. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/network_utils.h +0 -0
  252. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/pymod_ymq/bytes.h +0 -0
  253. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/pymod_ymq/message.h +0 -0
  254. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/pymod_ymq/ymq.cpp +0 -0
  255. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/simple_interface.cpp +0 -0
  256. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/simple_interface.h +0 -0
  257. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/tcp_client.h +0 -0
  258. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/tcp_operations.h +0 -0
  259. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/tcp_server.cpp +0 -0
  260. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/tcp_server.h +0 -0
  261. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/third_party/concurrentqueue.h +0 -0
  262. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/timestamp.h +0 -0
  263. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/typedefs.h +0 -0
  264. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/io/ymq/utils.h +0 -0
  265. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/object_storage/CMakeLists.txt +0 -0
  266. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/object_storage/__init__.py +0 -0
  267. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/object_storage/constants.h +0 -0
  268. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/object_storage/defs.h +0 -0
  269. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/object_storage/io_helper.cpp +0 -0
  270. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/object_storage/io_helper.h +0 -0
  271. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/object_storage/message.cpp +0 -0
  272. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/object_storage/message.h +0 -0
  273. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/object_storage/pymod_object_storage_server.cpp +0 -0
  274. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/protocol/__init__.py +0 -0
  275. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/protocol/capnp/__init__.py +0 -0
  276. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/protocol/capnp/_python.py +0 -0
  277. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/protocol/capnp/common.capnp +0 -0
  278. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/protocol/capnp/status.capnp +0 -0
  279. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/protocol/introduction.md +0 -0
  280. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/protocol/python/__init__.py +0 -0
  281. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/protocol/python/common.py +0 -0
  282. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/protocol/python/mixins.py +0 -0
  283. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/protocol/python/object_storage.py +0 -0
  284. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/protocol/python/status.py +0 -0
  285. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/protocol/worker.md +0 -0
  286. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/__init__.py +0 -0
  287. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/allocate_policy/__init__.py +0 -0
  288. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/allocate_policy/allocate_policy.py +0 -0
  289. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/allocate_policy/even_load_allocate_policy.py +0 -0
  290. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/allocate_policy/mixins.py +0 -0
  291. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/controllers/__init__.py +0 -0
  292. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/controllers/balance_controller.py +0 -0
  293. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/controllers/client_controller.py +0 -0
  294. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/controllers/config_controller.py +0 -0
  295. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/controllers/graph_controller.py +0 -0
  296. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/controllers/object_controller.py +0 -0
  297. {opengris_scaler-1.12.13/scaler/scheduler/object_usage → opengris_scaler-1.12.20/scaler/scheduler/controllers/scaling_policies}/__init__.py +0 -0
  298. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/controllers/worker_controller.py +0 -0
  299. {opengris_scaler-1.12.13/scaler/scheduler/task → opengris_scaler-1.12.20/scaler/scheduler/object_usage}/__init__.py +0 -0
  300. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/object_usage/object_tracker.py +0 -0
  301. {opengris_scaler-1.12.13/scaler/ui → opengris_scaler-1.12.20/scaler/scheduler/task}/__init__.py +0 -0
  302. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/task/task_state_machine.py +0 -0
  303. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/scheduler/task/task_state_manager.py +0 -0
  304. {opengris_scaler-1.12.13/scaler/utility → opengris_scaler-1.12.20/scaler/ui}/__init__.py +0 -0
  305. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/ui/constants.py +0 -0
  306. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/ui/live_display.py +0 -0
  307. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/ui/setting_page.py +0 -0
  308. {opengris_scaler-1.12.13/scaler/utility/graph → opengris_scaler-1.12.20/scaler/utility}/__init__.py +0 -0
  309. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/debug.py +0 -0
  310. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/event_list.py +0 -0
  311. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/event_loop.py +0 -0
  312. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/exceptions.py +0 -0
  313. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/formatter.py +0 -0
  314. {opengris_scaler-1.12.13/scaler/utility/logging → opengris_scaler-1.12.20/scaler/utility/graph}/__init__.py +0 -0
  315. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/graph/optimization.py +0 -0
  316. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/graph/topological_sorter.py +0 -0
  317. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/graph/topological_sorter_graphblas.py +0 -0
  318. {opengris_scaler-1.12.13/scaler/utility/metadata → opengris_scaler-1.12.20/scaler/utility/logging}/__init__.py +0 -0
  319. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/logging/decorators.py +0 -0
  320. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/logging/scoped_logger.py +0 -0
  321. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/logging/utility.py +0 -0
  322. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/many_to_many_dict.py +0 -0
  323. {opengris_scaler-1.12.13/scaler/utility/queues → opengris_scaler-1.12.20/scaler/utility/metadata}/__init__.py +0 -0
  324. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/metadata/profile_result.py +0 -0
  325. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/metadata/task_flags.py +0 -0
  326. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/mixins.py +0 -0
  327. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/network_util.py +0 -0
  328. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/one_to_many_dict.py +0 -0
  329. {opengris_scaler-1.12.13/scaler/worker → opengris_scaler-1.12.20/scaler/utility/queues}/__init__.py +0 -0
  330. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/queues/async_indexed_queue.py +0 -0
  331. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/queues/async_priority_queue.py +0 -0
  332. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/queues/async_sorted_priority_queue.py +0 -0
  333. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/queues/indexed_queue.py +0 -0
  334. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/utility/serialization.py +0 -0
  335. {opengris_scaler-1.12.13/scaler/worker/agent → opengris_scaler-1.12.20/scaler/worker}/__init__.py +0 -0
  336. {opengris_scaler-1.12.13/scaler/worker/agent/processor → opengris_scaler-1.12.20/scaler/worker/agent}/__init__.py +0 -0
  337. {opengris_scaler-1.12.13/scaler/worker_adapter → opengris_scaler-1.12.20/scaler/worker/agent/processor}/__init__.py +0 -0
  338. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker/agent/processor/object_cache.py +0 -0
  339. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker/agent/processor/streaming_buffer.py +0 -0
  340. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker/agent/profiling_manager.py +0 -0
  341. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker/agent/task_manager.py +0 -0
  342. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker/agent/timeout_manager.py +0 -0
  343. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker/preload.py +0 -0
  344. {opengris_scaler-1.12.13/scaler/worker_adapter/symphony → opengris_scaler-1.12.20/scaler/worker_adapter}/__init__.py +0 -0
  345. {opengris_scaler-1.12.13/tests → opengris_scaler-1.12.20/scaler/worker_adapter/symphony}/__init__.py +0 -0
  346. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker_adapter/symphony/callback.py +0 -0
  347. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scaler/worker_adapter/symphony/message.py +0 -0
  348. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scripts/build.sh +0 -0
  349. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scripts/library_tool.ps1 +0 -0
  350. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scripts/library_tool.sh +0 -0
  351. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/scripts/test.sh +0 -0
  352. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/slides/Effortless Distributed Computing in Python - FOSDEM 2025.pdf +0 -0
  353. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/slides/OSFF 2025 London.pdf +0 -0
  354. {opengris_scaler-1.12.13/tests/cpp/ymq/py_mitm → opengris_scaler-1.12.20/tests}/__init__.py +0 -0
  355. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/cpp/object_storage/CMakeLists.txt +0 -0
  356. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/cpp/object_storage/test_object_manager.cpp +0 -0
  357. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_async_indexed_queue.py +0 -0
  358. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_async_priority_queue.py +0 -0
  359. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_async_sorted_priority_queue.py +0 -0
  360. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_capability_allocate_policy.py +0 -0
  361. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_cluster_config.py +0 -0
  362. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_config_types.py +0 -0
  363. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_future.py +0 -0
  364. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_graph.py +0 -0
  365. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_indexed_queue.py +0 -0
  366. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_nested_task.py +0 -0
  367. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_object_usage.py +0 -0
  368. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_profiling.py +0 -0
  369. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_protected.py +0 -0
  370. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_scheduler_config.py +0 -0
  371. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_serializer.py +0 -0
  372. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/test_ui.py +0 -0
  373. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/tests/utility.py +0 -0
  374. {opengris_scaler-1.12.13 → opengris_scaler-1.12.20}/version.h.in +0 -0
@@ -13,7 +13,7 @@ runs:
13
13
  if: inputs.os == 'Linux'
14
14
  shell: bash
15
15
  run: |
16
- CXX=$(which g++-14) ./scripts/build.sh
16
+ ./scripts/build.sh
17
17
 
18
18
  - name: Build and test C++ Components (Windows)
19
19
  if: inputs.os == 'Windows'
@@ -116,6 +116,18 @@
116
116
  "lhs": "${hostSystemName}",
117
117
  "rhs": "Linux"
118
118
  }
119
+ },
120
+ {
121
+ "name": "windows-x64",
122
+ "configurePreset": "windows-x64",
123
+ "output": {
124
+ "outputOnFailure": true
125
+ },
126
+ "condition": {
127
+ "type": "equals",
128
+ "lhs": "${hostSystemName}",
129
+ "rhs": "Windows"
130
+ }
119
131
  }
120
132
  ]
121
133
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: opengris-scaler
3
- Version: 1.12.13
3
+ Version: 1.12.20
4
4
  Summary: OpenGRIS Scaler Distribution Framework
5
5
  Author-Email: Citi <opensource@citi.com>
6
6
  License: Apache 2.0
@@ -9,11 +9,11 @@ Classifier: License :: OSI Approved :: Apache Software License
9
9
  Classifier: Intended Audience :: Developers
10
10
  Classifier: Operating System :: OS Independent
11
11
  Classifier: Topic :: System :: Distributed Computing
12
- Project-URL: Home, https://github.com/Citi/scaler
12
+ Project-URL: Home, https://github.com/finos/opengris-scaler
13
13
  Requires-Python: >=3.8
14
14
  Requires-Dist: bidict
15
15
  Requires-Dist: cloudpickle
16
- Requires-Dist: psutil==7.1.0
16
+ Requires-Dist: psutil==7.1.1
17
17
  Requires-Dist: pycapnp==2.1.0
18
18
  Requires-Dist: pyzmq
19
19
  Requires-Dist: sortedcontainers==2.4.0
@@ -21,24 +21,28 @@ Requires-Dist: tblib
21
21
  Requires-Dist: aiohttp
22
22
  Requires-Dist: graphlib-backport; python_version < "3.9"
23
23
  Requires-Dist: typing-extensions>=4.0; python_version < "3.10"
24
+ Requires-Dist: tomli; python_version < "3.11"
24
25
  Provides-Extra: uvloop
25
26
  Requires-Dist: uvloop; platform_system != "Windows" and extra == "uvloop"
26
27
  Provides-Extra: gui
27
28
  Requires-Dist: nicegui[plotly]==2.24.2; python_version == "3.8" and extra == "gui"
28
- Requires-Dist: nicegui[plotly]==3.0.4; python_version >= "3.9" and extra == "gui"
29
+ Requires-Dist: nicegui[plotly]==3.1.0; python_version >= "3.9" and extra == "gui"
29
30
  Provides-Extra: graphblas
30
31
  Requires-Dist: python-graphblas; extra == "graphblas"
31
32
  Requires-Dist: numpy==1.24.4; python_version == "3.8" and extra == "graphblas"
32
33
  Requires-Dist: numpy==2.0.2; python_version == "3.9" and extra == "graphblas"
33
34
  Requires-Dist: numpy==2.2.6; python_version >= "3.10" and extra == "graphblas"
35
+ Provides-Extra: aws
36
+ Requires-Dist: boto3; extra == "aws"
34
37
  Provides-Extra: all
35
38
  Requires-Dist: nicegui[plotly]==2.24.2; python_version == "3.8" and extra == "all"
36
- Requires-Dist: nicegui[plotly]==3.0.4; python_version >= "3.9" and extra == "all"
39
+ Requires-Dist: nicegui[plotly]==3.1.0; python_version >= "3.9" and extra == "all"
37
40
  Requires-Dist: python-graphblas; extra == "all"
38
41
  Requires-Dist: numpy==1.24.4; python_version == "3.8" and extra == "all"
39
42
  Requires-Dist: numpy==2.0.2; python_version == "3.9" and extra == "all"
40
43
  Requires-Dist: numpy==2.2.6; python_version >= "3.10" and extra == "all"
41
44
  Requires-Dist: uvloop; platform_system != "Windows" and extra == "all"
45
+ Requires-Dist: boto3; extra == "all"
42
46
  Description-Content-Type: text/markdown
43
47
 
44
48
  <div align="center">
@@ -58,12 +62,12 @@ Description-Content-Type: text/markdown
58
62
  <img src="https://img.shields.io/badge/Documentation-0f1632">
59
63
  </a>
60
64
  <a href="./LICENSE">
61
- <img src="https://img.shields.io/github/license/citi/scaler?label=license&colorA=0f1632&colorB=255be3">
65
+ <img src="https://img.shields.io/github/license/finos/opengris-scaler?label=license&colorA=0f1632&colorB=255be3">
62
66
  </a>
63
- <a href="https://pypi.org/project/scaler">
64
- <img alt="PyPI - Version" src="https://img.shields.io/pypi/v/scaler?colorA=0f1632&colorB=255be3">
67
+ <a href="https://pypi.org/project/opengris-scaler">
68
+ <img alt="PyPI - Version" src="https://img.shields.io/pypi/v/opengris-scaler?colorA=0f1632&colorB=255be3">
65
69
  </a>
66
- <img src="https://api.securityscorecards.dev/projects/github.com/Citi/scaler/badge">
70
+ <img src="https://api.securityscorecards.dev/projects/github.com/finos/opengris-scaler/badge">
67
71
  </p>
68
72
  </div>
69
73
 
@@ -15,12 +15,12 @@
15
15
  <img src="https://img.shields.io/badge/Documentation-0f1632">
16
16
  </a>
17
17
  <a href="./LICENSE">
18
- <img src="https://img.shields.io/github/license/citi/scaler?label=license&colorA=0f1632&colorB=255be3">
18
+ <img src="https://img.shields.io/github/license/finos/opengris-scaler?label=license&colorA=0f1632&colorB=255be3">
19
19
  </a>
20
- <a href="https://pypi.org/project/scaler">
21
- <img alt="PyPI - Version" src="https://img.shields.io/pypi/v/scaler?colorA=0f1632&colorB=255be3">
20
+ <a href="https://pypi.org/project/opengris-scaler">
21
+ <img alt="PyPI - Version" src="https://img.shields.io/pypi/v/opengris-scaler?colorA=0f1632&colorB=255be3">
22
22
  </a>
23
- <img src="https://api.securityscorecards.dev/projects/github.com/Citi/scaler/badge">
23
+ <img src="https://api.securityscorecards.dev/projects/github.com/finos/opengris-scaler/badge">
24
24
  </p>
25
25
  </div>
26
26
 
@@ -79,26 +79,30 @@ Test Cases
79
79
  C++ Guidelines
80
80
  --------------
81
81
 
82
- Naming
83
- ~~~~~~
82
+ C++ Naming
83
+ ~~~~~~~~~~
84
84
 
85
85
  Please use PascalCase for namespaces and classes. Capitalize the first character, for example:
86
+
86
87
  * SomeClass
87
88
  * LongNameClass
88
89
 
89
- Use all capital letters for global variables or macros. System or third-party library definitions are exempt from this
90
- rule:
90
+ Use all capital letters for global variables or macros. System or third-party library definitions are exempt from this rule:
91
+
91
92
  * GLOBAL_VARIABLE
92
93
 
93
94
  Use camelCase for variable and function names, with the first character lower case:
95
+
94
96
  * addSomeValue
95
97
  * deleteSomeValue
96
98
 
97
99
  Keep abbreviations uppercase, for example:
100
+
98
101
  * TCPAcceptor instead of TcpAcceptor
99
102
  * IOSocket instead of IoSocket
100
103
 
101
104
  File names should use snake_case. Use the `.h` extension for headers and `.cpp` for source files:
105
+
102
106
  * header files: message_connection.h
103
107
  * source files: message_connection.cpp
104
108
 
@@ -118,12 +122,12 @@ Includes
118
122
 
119
123
  * Remove include files when none of their symbols are used.
120
124
  * Always include the header that defines the symbols you rely on; avoid depending on transitive includes. For example:
125
+
121
126
  * There are files `common.h`, `some_module.h`, and `application.cpp`.
122
127
  * At the top of `common.h`, there is `#include <cstring>`.
123
128
  * At the top of `some_module.h`, there is `#include "common.h"`.
124
129
  * At the top of `application.cpp`, there is `#include "some_module.h"`.
125
- * Even though `application.cpp` compiles because `<cstring>` is indirectly included through `common.h`, explicitly
126
- include `<cstring>` in `application.cpp`.
130
+ * Even though `application.cpp` compiles because `<cstring>` is indirectly included through `common.h`, explicitly include `<cstring>` in `application.cpp`.
127
131
 
128
132
  Struct/Class
129
133
  ~~~~~~~~~~~~
@@ -58,12 +58,12 @@ Shows how to disconnect a client from scheduler
58
58
  .. literalinclude:: ../../../examples/disconnect_client.py
59
59
  :language: python
60
60
 
61
- Capability Allocation
62
- ~~~~~~~~~~~~~~~~~~~~~
61
+ Capability Allocation Example
62
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
63
63
 
64
64
  Shows how to use capabilities for task routing
65
65
 
66
- .. literalinclude:: ../../../examples/capabilities_client.py
66
+ .. literalinclude:: ../../../examples/task_capabilities.py
67
67
  :language: python
68
68
 
69
69
  Applications
@@ -154,7 +154,7 @@ Capability Allocation
154
154
  Scaler provides an *experimental* task routing and capability management, allowing you to specify capability
155
155
  requirements for tasks and allocate them to workers supporting these.
156
156
 
157
- .. literalinclude:: ../../../examples/capabilities_client.py
157
+ .. literalinclude:: ../../../examples/task_capabilities.py
158
158
  :language: python
159
159
 
160
160
  Client Disconnect and Shutdown
@@ -128,11 +128,11 @@ Here we use localhost addresses for demonstration, however the scheduler and wor
128
128
 
129
129
  .. code:: console
130
130
 
131
- [INFO]2025-06-06 13:30:05+0200: logging to ('/dev/stdout',)
132
- [INFO]2025-06-06 13:30:05+0200: use event loop: builtin
133
- [INFO]2025-06-06 13:30:05+0200: Scheduler: listen to scheduler address tcp://127.0.0.1:8516
134
- [INFO]2025-06-06 13:30:05+0200: Scheduler: connect to object storage server tcp://127.0.0.1:8517
135
- [INFO]2025-06-06 13:30:05+0200: Scheduler: listen to scheduler monitor address tcp://127.0.0.1:8518
131
+ [INFO]2025-06-06 13:30:05+0200: logging to ('/dev/stdout',)
132
+ [INFO]2025-06-06 13:30:05+0200: use event loop: builtin
133
+ [INFO]2025-06-06 13:30:05+0200: Scheduler: listen to scheduler address tcp://127.0.0.1:8516
134
+ [INFO]2025-06-06 13:30:05+0200: Scheduler: connect to object storage server tcp://127.0.0.1:8517
135
+ [INFO]2025-06-06 13:30:05+0200: Scheduler: listen to scheduler monitor address tcp://127.0.0.1:8518
136
136
 
137
137
 
138
138
  .. code:: bash
@@ -5,7 +5,7 @@ This program is revised based on
5
5
  https://stackoverflow.com/questions/61289020/fast-implied-volatility-calculation-in-python
6
6
 
7
7
  Usage:
8
- $ git clone https://github.com/Citi/scaler && cd scaler
8
+ $ git clone https://github.com/finos/opengris-scaler && cd opengris-scaler
9
9
  $ pip install -r examples/applications/requirements_applications.txt
10
10
  $ python -m examples.applications.implied_volatility
11
11
  """
@@ -3,7 +3,7 @@ This program gets closing price of a given ticker and start dates. This program
3
3
  https://stackoverflow.com/a/77342764
4
4
 
5
5
  Usage:
6
- $ git clone https://github.com/Citi/scaler && cd scaler
6
+ $ git clone https://github.com/finos/opengris-scaler && cd opengris-scaler
7
7
  $ pip install -r examples/applications/requirements_applications.txt
8
8
  $ python -m examples.applications.yfinance_historical_price
9
9
  """
@@ -1,9 +1,6 @@
1
1
 
2
-
3
- // C++
4
- #include <stdio.h>
5
-
6
2
  #include <future>
3
+ #include <iostream>
7
4
  #include <memory>
8
5
  #include <string>
9
6
 
@@ -25,7 +22,7 @@ int main()
25
22
  longStr += "1234567890";
26
23
 
27
24
  auto clientSocket = syncCreateSocket(context, IOSocketType::Connector, "ClientSocket");
28
- printf("Successfully created socket.\n");
25
+ std::cout << "Successfully created socket.\n";
29
26
 
30
27
  constexpr size_t msgCnt = 100'000;
31
28
 
@@ -34,9 +31,8 @@ int main()
34
31
  std::vector<std::promise<std::pair<Message, Error>>> recvPromises;
35
32
  recvPromises.reserve(msgCnt + 10);
36
33
 
37
- // syncConnectSocket(clientSocket, "tcp://51.15.214.200:32912");
38
34
  syncConnectSocket(clientSocket, "tcp://127.0.0.1:8080");
39
- printf("Connected to server.\n");
35
+ std::cout << "Connected to server.\n";
40
36
 
41
37
  const std::string_view line = longStr;
42
38
 
@@ -64,19 +60,19 @@ int main()
64
60
  auto future = x.get_future();
65
61
  future.wait();
66
62
  }
67
- printf("send completes\n");
63
+ std::cout << "Send completes.\n";
68
64
 
69
65
  for (auto&& x: recvPromises) {
70
66
  auto future = x.get_future();
71
67
  Message msg = future.get().first;
72
68
  if (msg.payload.as_string() != longStr) {
73
- printf("Checksum failed, %s\n", msg.payload.as_string()->c_str());
69
+ std::cerr << "Checksum failed, " << *msg.payload.as_string() << std::endl;
74
70
  exit(1);
75
71
  }
76
72
  }
77
- printf("recv completes\n");
73
+ std::cout << "Recv completes.\n";
78
74
 
79
- printf("Send and recv %lu messages, checksum fits, exiting.\n", msgCnt);
75
+ std::cout << "Send and recv " << msgCnt << " messages, checksum fits, exiting.\n";
80
76
 
81
77
  context.removeIOSocket(clientSocket);
82
78
 
@@ -1,7 +1,4 @@
1
1
 
2
- // C++
3
- #include <stdio.h>
4
-
5
2
  #include <future>
6
3
  #include <iostream>
7
4
  #include <memory>
@@ -21,10 +18,10 @@ int main()
21
18
  IOContext context;
22
19
 
23
20
  auto clientSocket = syncCreateSocket(context, IOSocketType::Connector, "ClientSocket");
24
- printf("Successfully created socket.\n");
21
+ std::cout << "Successfully created socket.\n";
25
22
 
26
23
  syncConnectSocket(clientSocket, "tcp://127.0.0.1:8080");
27
- printf("Connected to server.\n");
24
+ std::cout << "Connected to server.\n";
28
25
 
29
26
  for (int cnt = 0; cnt < 10; ++cnt) {
30
27
  std::string line;
@@ -48,7 +45,7 @@ int main()
48
45
  std::move(message), [&send_promise](std::expected<void, Error>) { send_promise.set_value({}); });
49
46
 
50
47
  send_future.wait();
51
- printf("Message sent, waiting for response...\n");
48
+ std::cout << "Message sent, waiting for response...\n";
52
49
 
53
50
  auto recv_promise = std::promise<std::pair<Message, Error>>();
54
51
  auto recv_future = recv_promise.get_future();
@@ -58,7 +55,7 @@ int main()
58
55
 
59
56
  Message reply = recv_future.get().first;
60
57
  std::string reply_str(reply.payload.data(), reply.payload.data() + reply.payload.len());
61
- printf("Received echo: '%s'\n", reply_str.c_str());
58
+ std::cout << "Received echo: '" << reply_str << "'.\n";
62
59
  }
63
60
 
64
61
  // TODO: remove IOSocket also needs a future
@@ -1,7 +1,6 @@
1
1
 
2
- #include <stdio.h>
3
-
4
2
  #include <future>
3
+ #include <iostream>
5
4
  #include <memory>
6
5
 
7
6
  #include "scaler/io/ymq/error.h"
@@ -16,10 +15,10 @@ int main()
16
15
  IOContext context;
17
16
 
18
17
  auto socket = syncCreateSocket(context, IOSocketType::Binder, "ServerSocket");
19
- printf("Successfully created socket.\n");
18
+ std::cout << "Successfully created socket." << std::endl;
20
19
 
21
20
  syncBindSocket(socket, "tcp://127.0.0.1:8080");
22
- printf("Successfully bound socket\n");
21
+ std::cout << "Successfully bound socket." << std::endl;
23
22
 
24
23
  while (true) {
25
24
  auto recv_promise = std::promise<std::pair<Message, Error>>();
@@ -1,12 +1,7 @@
1
-
2
-
3
- // C++
4
- #include <stdio.h>
5
-
6
1
  #include <chrono>
7
2
  #include <future>
3
+ #include <iostream>
8
4
  #include <memory>
9
- #include <print>
10
5
  #include <string>
11
6
  #include <thread>
12
7
 
@@ -23,7 +18,7 @@ using namespace std::chrono_literals;
23
18
  int main(int argc, char* argv[])
24
19
  {
25
20
  if (argc != 5) {
26
- printf("Usage: %s <Identity> <MessageSize> <MessageCount> <AddressString>\n", argv[0]);
21
+ std::cout << "Usage: " << argv[0] << " <Identity> <MessageSize> <MessageCount> <AddressString>\n";
27
22
  exit(1);
28
23
  }
29
24
  const std::string identity(argv[1]);
@@ -34,10 +29,10 @@ int main(int argc, char* argv[])
34
29
  IOContext context;
35
30
 
36
31
  auto clientSocket = syncCreateSocket(context, IOSocketType::Connector, identity);
37
- printf("Successfully created socket.\n");
32
+ std::cout << "Successfully created socket.\n";
38
33
 
39
34
  syncConnectSocket(clientSocket, address);
40
- printf("Connected to server.\n");
35
+ std::cout << "Connected to server.\n";
41
36
 
42
37
  const std::string_view line = longStr;
43
38
 
@@ -62,10 +57,10 @@ int main(int argc, char* argv[])
62
57
 
63
58
  time_point<system_clock> end = system_clock::now();
64
59
 
65
- printf("Send and recv %lu messages with %lu bytes.\n", msgCnt, longStr.size());
60
+ std::cout << "Send and recv " << msgCnt << " messages with " << longStr.size() << " bytes.\n";
66
61
  auto milli = duration_cast<milliseconds>(end - start);
67
- std::print("Spend {}\n", milli);
68
- std::print("Throughput {} Bpms\n", msgCnt * (longStr.size()) * 1.0 / milli.count());
62
+ std::cout << "Spend " << milli.count() << "ms.\n";
63
+ std::cout << "Throughput " << msgCnt * (longStr.size()) * 1.0 / milli.count() << " Bpms.\n";
69
64
 
70
65
  context.removeIOSocket(clientSocket);
71
66
 
@@ -1,8 +1,6 @@
1
-
2
- #include <stdio.h>
3
-
4
1
  #include <chrono>
5
2
  #include <future>
3
+ #include <iostream>
6
4
  #include <memory>
7
5
  #include <thread>
8
6
 
@@ -18,10 +16,10 @@ int main()
18
16
  IOContext context;
19
17
 
20
18
  auto socket = syncCreateSocket(context, IOSocketType::Multicast, "ServerSocket");
21
- printf("Successfully created socket.\n");
19
+ std::cout << "Successfully created socket.\n";
22
20
 
23
21
  syncBindSocket(socket, "tcp://127.0.0.1:8080");
24
- printf("Successfully bound socket\n");
22
+ std::cout << "Successfully bound socket.\n";
25
23
 
26
24
  while (true) {
27
25
  std::string address("");
@@ -37,7 +35,7 @@ int main()
37
35
  std::move(publishContent), [&send_promise](std::expected<void, Error>) { send_promise.set_value({}); });
38
36
  send_future.wait();
39
37
 
40
- printf("One message published, sleep for 10 sec\n");
38
+ std::cout << "One message published, sleep for 10 sec.\n";
41
39
  using namespace std::chrono_literals;
42
40
  std::this_thread::sleep_for(10s);
43
41
  }
@@ -1,5 +1,4 @@
1
- #include <stdio.h>
2
-
1
+ #include <iostream>
3
2
  #include <memory>
4
3
  #include <string>
5
4
 
@@ -13,10 +12,10 @@ int main()
13
12
  {
14
13
  IOContext context;
15
14
  auto clientSocket = syncCreateSocket(context, IOSocketType::Connector, "ServerSocket");
16
- printf("Successfully created socket.\n");
15
+ std::cout << "Successfully created socket.\n";
17
16
 
18
17
  syncConnectSocket(clientSocket, "tcp://127.0.0.1:8080");
19
- printf("Connected to server.\n");
18
+ std::cout << "Connected to server.\n";
20
19
 
21
20
  context.removeIOSocket(clientSocket);
22
21
 
@@ -1,5 +1,3 @@
1
- #include <stdio.h>
2
-
3
1
  #include <future>
4
2
  #include <iostream>
5
3
  #include <memory>
@@ -19,7 +17,7 @@ int main()
19
17
  IOContext context;
20
18
  auto clientSocket1 = syncCreateSocket(context, IOSocketType::Unicast, "ClientSocket1");
21
19
  auto clientSocket2 = syncCreateSocket(context, IOSocketType::Unicast, "ClientSocket2");
22
- printf("Successfully created sockets.\n");
20
+ std::cout << "Successfully created sockets.\n";
23
21
 
24
22
  syncConnectSocket(clientSocket1, "tcp://127.0.0.1:8080");
25
23
  syncConnectSocket(clientSocket2, "tcp://127.0.0.1:8080");
@@ -33,7 +31,7 @@ int main()
33
31
 
34
32
  Message reply = recv_future.get().first;
35
33
  std::string reply_str(reply.payload.data(), reply.payload.data() + reply.payload.len());
36
- printf("clientSocket1 Received from publisher: '%s'\n", reply_str.c_str());
34
+ std::cout << "clientSocket1 Received from publisher: '" << reply_str << "'.\n";
37
35
 
38
36
  auto recv_promise2 = std::promise<std::pair<Message, Error>>();
39
37
  auto recv_future2 = recv_promise2.get_future();
@@ -43,7 +41,7 @@ int main()
43
41
 
44
42
  Message reply2 = recv_future2.get().first;
45
43
  std::string reply_str2(reply2.payload.data(), reply2.payload.data() + reply2.payload.len());
46
- printf("clientSocket2 Received from publisher: '%s'\n", reply_str2.c_str());
44
+ std::cout << "clientSocket2 Received from publisher: '" << reply_str2 << "'.\n";
47
45
  }
48
46
 
49
47
  // TODO: remove IOSocket also needs a future
@@ -11,9 +11,9 @@ int main()
11
11
  std::cout << ts.timestamp << std::endl;
12
12
  Timestamp three_seconds_later_than_ts = ts.createTimestampByOffsetDuration(3s);
13
13
  std::cout << three_seconds_later_than_ts.timestamp << std::endl;
14
- printf("%s\n", stringifyTimestamp(ts).c_str());
14
+ std::cout << stringifyTimestamp(ts) << std::endl;
15
15
  // a timestamp is smaller iff it is closer to the beginning of the world
16
16
  if (ts < three_seconds_later_than_ts) {
17
- printf("ts happen before than three_seconds_later_than_ts\n");
17
+ std::cout << "ts happen before than three_seconds_later_than_ts.\n";
18
18
  }
19
19
  }
@@ -33,7 +33,7 @@ def main():
33
33
  base_cluster = cluster._cluster
34
34
  regular_cluster = Cluster(
35
35
  address=base_cluster._address,
36
- storage_address=None,
36
+ object_storage_address=None,
37
37
  preload=None,
38
38
  worker_io_threads=1,
39
39
  worker_names=["gpu_worker"],
@@ -20,14 +20,15 @@ dynamic = ["version"]
20
20
  dependencies = [
21
21
  "bidict",
22
22
  "cloudpickle",
23
- "psutil==7.1.0",
23
+ "psutil==7.1.1",
24
24
  "pycapnp==2.1.0",
25
25
  "pyzmq",
26
26
  "sortedcontainers==2.4.0",
27
27
  "tblib",
28
28
  "aiohttp",
29
29
  "graphlib-backport; python_version < '3.9'",
30
- "typing-extensions>=4.0; python_version < '3.10'"
30
+ "typing-extensions>=4.0; python_version < '3.10'",
31
+ "tomli; python_version < '3.11'",
31
32
  ]
32
33
 
33
34
  [project.optional-dependencies]
@@ -36,22 +37,26 @@ uvloop = [
36
37
  ]
37
38
  gui = [
38
39
  "nicegui[plotly]==2.24.2; python_version == '3.8'",
39
- "nicegui[plotly]==3.0.4; python_version >= '3.9'",
40
+ "nicegui[plotly]==3.1.0; python_version >= '3.9'",
40
41
  ]
41
42
  graphblas = [
42
43
  "python-graphblas",
43
44
  "numpy==1.24.4; python_version == '3.8'",
44
45
  "numpy==2.0.2; python_version == '3.9'",
45
- "numpy==2.2.6; python_version >= '3.10'"
46
+ "numpy==2.2.6; python_version >= '3.10'",
47
+ ]
48
+ aws = [
49
+ "boto3",
46
50
  ]
47
51
  all = [
48
52
  "nicegui[plotly]==2.24.2; python_version == '3.8'",
49
- "nicegui[plotly]==3.0.4; python_version >= '3.9'",
53
+ "nicegui[plotly]==3.1.0; python_version >= '3.9'",
50
54
  "python-graphblas",
51
55
  "numpy==1.24.4; python_version == '3.8'",
52
56
  "numpy==2.0.2; python_version == '3.9'",
53
57
  "numpy==2.2.6; python_version >= '3.10'",
54
58
  "uvloop; platform_system != 'Windows'",
59
+ "boto3",
55
60
  ]
56
61
 
57
62
  [dependency-groups]
@@ -68,7 +73,7 @@ regex = '(?P<value>\d+\.\d+\.\d+(\.[1-9]\d*)?)'
68
73
  input = "./scaler/version.txt"
69
74
 
70
75
  [project.urls]
71
- Home = "https://github.com/Citi/scaler"
76
+ Home = "https://github.com/finos/opengris-scaler"
72
77
 
73
78
  [project.scripts]
74
79
  scaler_scheduler = "scaler.entry_points.scheduler:main"
@@ -78,6 +83,7 @@ scaler_ui = "scaler.entry_points.webui:main"
78
83
  scaler_object_storage_server = "scaler.entry_points.object_storage_server:main"
79
84
  scaler_worker_adapter_native = "scaler.entry_points.worker_adapter_native:main"
80
85
  scaler_worker_adapter_symphony = "scaler.entry_points.worker_adapter_symphony:main"
86
+ scaler_worker_adapter_ecs = "scaler.entry_points.worker_adapter_ecs:main"
81
87
 
82
88
  [tool.scikit-build]
83
89
  cmake.source-dir = "."
@@ -0,0 +1,5 @@
1
+ from scaler.entry_points.worker_adapter_ecs import main
2
+ from scaler.utility.debug import pdb_wrapped
3
+
4
+ if __name__ == "__main__":
5
+ pdb_wrapped(main)()
@@ -13,6 +13,7 @@ from scaler.client.agent.heartbeat_manager import ClientHeartbeatManager
13
13
  from scaler.client.agent.object_manager import ClientObjectManager
14
14
  from scaler.client.agent.task_manager import ClientTaskManager
15
15
  from scaler.client.serializer.mixins import Serializer
16
+ from scaler.config.types.zmq import ZMQConfig
16
17
  from scaler.io.async_connector import ZMQAsyncConnector
17
18
  from scaler.io.mixins import AsyncConnector
18
19
  from scaler.protocol.python.common import ObjectStorageAddress
@@ -32,7 +33,6 @@ from scaler.protocol.python.mixins import Message
32
33
  from scaler.utility.event_loop import create_async_loop_routine
33
34
  from scaler.utility.exceptions import ClientCancelledException, ClientQuitException, ClientShutdownException
34
35
  from scaler.utility.identifiers import ClientID
35
- from scaler.config.types.zmq import ZMQConfig
36
36
 
37
37
 
38
38
  class ClientAgent(threading.Thread):
@@ -59,7 +59,7 @@ class ClientAgent(threading.Thread):
59
59
  self._client_agent_address = client_agent_address
60
60
  self._scheduler_address = scheduler_address
61
61
  self._context = context
62
- self._storage_address: Future[ObjectStorageAddress] = Future()
62
+ self._object_storage_address: Future[ObjectStorageAddress] = Future()
63
63
 
64
64
  self._future_manager = future_manager
65
65
 
@@ -89,7 +89,7 @@ class ClientAgent(threading.Thread):
89
89
  def __initialize(self):
90
90
  self._disconnect_manager = ClientDisconnectManager()
91
91
  self._heartbeat_manager = ClientHeartbeatManager(
92
- death_timeout_seconds=self._timeout_seconds, storage_address_future=self._storage_address
92
+ death_timeout_seconds=self._timeout_seconds, storage_address_future=self._object_storage_address
93
93
  )
94
94
  self._object_manager = ClientObjectManager(identity=self._identity)
95
95
  self._task_manager = ClientTaskManager()
@@ -118,9 +118,9 @@ class ClientAgent(threading.Thread):
118
118
  self.__initialize()
119
119
  self.__run_loop()
120
120
 
121
- def get_storage_address(self) -> ObjectStorageAddress:
121
+ def get_object_storage_address(self) -> ObjectStorageAddress:
122
122
  """Returns the object storage address, or block until it receives it."""
123
- return self._storage_address.result()
123
+ return self._object_storage_address.result()
124
124
 
125
125
  async def __on_receive_from_client(self, message: Message):
126
126
  if isinstance(message, ClientDisconnect):
@@ -194,8 +194,8 @@ class ClientAgent(threading.Thread):
194
194
  if exception is None:
195
195
  return
196
196
 
197
- if not self._storage_address.done():
198
- self._storage_address.set_exception(exception)
197
+ if not self._object_storage_address.done():
198
+ self._object_storage_address.set_exception(exception)
199
199
 
200
200
  if isinstance(exception, asyncio.CancelledError):
201
201
  logging.error("ClientAgent: async. loop cancelled")