opengris-scaler 1.12.7__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 (348) hide show
  1. opengris_scaler-1.12.7/.clang-format +76 -0
  2. opengris_scaler-1.12.7/.github/actions/3rd-party-libraries-compile/action.yml +30 -0
  3. opengris_scaler-1.12.7/.github/actions/3rd-party-libraries-download/action.yml +30 -0
  4. opengris_scaler-1.12.7/.github/actions/3rd-party-libraries-install/action.yml +22 -0
  5. opengris_scaler-1.12.7/.github/actions/compile-libraries/action.yml +24 -0
  6. opengris_scaler-1.12.7/.github/actions/create-artifacts/action.yml +28 -0
  7. opengris_scaler-1.12.7/.github/actions/harden-check/action.yml +12 -0
  8. opengris_scaler-1.12.7/.github/actions/publish-doc/action.yml +24 -0
  9. opengris_scaler-1.12.7/.github/actions/run-linter/action.yml +34 -0
  10. opengris_scaler-1.12.7/.github/actions/run-test/action.yml +46 -0
  11. opengris_scaler-1.12.7/.github/actions/setup-env/action.yml +30 -0
  12. opengris_scaler-1.12.7/.github/dependabot.yml +11 -0
  13. opengris_scaler-1.12.7/.github/workflows/build-and-test.yml +55 -0
  14. opengris_scaler-1.12.7/.github/workflows/codeql.yml +48 -0
  15. opengris_scaler-1.12.7/.github/workflows/dependency-review.yml +26 -0
  16. opengris_scaler-1.12.7/.github/workflows/publish-artifact.yml +44 -0
  17. opengris_scaler-1.12.7/.github/workflows/publish-documentation.yml +30 -0
  18. opengris_scaler-1.12.7/.github/workflows/scorecard.yml +58 -0
  19. opengris_scaler-1.12.7/.gitignore +34 -0
  20. opengris_scaler-1.12.7/CMakeLists.txt +115 -0
  21. opengris_scaler-1.12.7/CMakePresets.json +121 -0
  22. opengris_scaler-1.12.7/CONTRIBUTING.md +106 -0
  23. opengris_scaler-1.12.7/LICENSE +201 -0
  24. opengris_scaler-1.12.7/LICENSE.spdx +7 -0
  25. opengris_scaler-1.12.7/NOTICE +8 -0
  26. opengris_scaler-1.12.7/PKG-INFO +729 -0
  27. opengris_scaler-1.12.7/README.md +686 -0
  28. opengris_scaler-1.12.7/benchmarks/dask_local_test.py +30 -0
  29. opengris_scaler-1.12.7/benchmarks/dask_remote_test.py +30 -0
  30. opengris_scaler-1.12.7/benchmarks/scaler_test.py +36 -0
  31. opengris_scaler-1.12.7/docs/.gitignore +1 -0
  32. opengris_scaler-1.12.7/docs/Makefile +20 -0
  33. opengris_scaler-1.12.7/docs/make.bat +35 -0
  34. opengris_scaler-1.12.7/docs/requirements_docs.txt +3 -0
  35. opengris_scaler-1.12.7/docs/source/_static/style.css +19 -0
  36. opengris_scaler-1.12.7/docs/source/_templates/layout.html +14 -0
  37. opengris_scaler-1.12.7/docs/source/conf.py +75 -0
  38. opengris_scaler-1.12.7/docs/source/index.rst +30 -0
  39. opengris_scaler-1.12.7/docs/source/tutorials/configuration.rst +242 -0
  40. opengris_scaler-1.12.7/docs/source/tutorials/examples.rst +106 -0
  41. opengris_scaler-1.12.7/docs/source/tutorials/features.rst +244 -0
  42. opengris_scaler-1.12.7/docs/source/tutorials/images/architecture.png +0 -0
  43. opengris_scaler-1.12.7/docs/source/tutorials/quickstart.rst +173 -0
  44. opengris_scaler-1.12.7/downloaded/capnproto-c++-1.1.0.tar.gz +0 -0
  45. opengris_scaler-1.12.7/examples/CMakeLists.txt +1 -0
  46. opengris_scaler-1.12.7/examples/applications/downloaded_data.csv +16 -0
  47. opengris_scaler-1.12.7/examples/applications/implied_volatility.py +94 -0
  48. opengris_scaler-1.12.7/examples/applications/pillow.py +57 -0
  49. opengris_scaler-1.12.7/examples/applications/requirements_applications.txt +10 -0
  50. opengris_scaler-1.12.7/examples/applications/timeseries.py +62 -0
  51. opengris_scaler-1.12.7/examples/applications/yfinance_historical_price.py +100 -0
  52. opengris_scaler-1.12.7/examples/cpp/CMakeLists.txt +1 -0
  53. opengris_scaler-1.12.7/examples/cpp/ymq/CMakeLists.txt +24 -0
  54. opengris_scaler-1.12.7/examples/cpp/ymq/automated_echo_client.cpp +84 -0
  55. opengris_scaler-1.12.7/examples/cpp/ymq/echo_client.cpp +71 -0
  56. opengris_scaler-1.12.7/examples/cpp/ymq/echo_server.cpp +39 -0
  57. opengris_scaler-1.12.7/examples/cpp/ymq/pingpong.cpp +73 -0
  58. opengris_scaler-1.12.7/examples/cpp/ymq/pub_server.cpp +46 -0
  59. opengris_scaler-1.12.7/examples/cpp/ymq/remove_iosocket.cpp +24 -0
  60. opengris_scaler-1.12.7/examples/cpp/ymq/sub_client.cpp +54 -0
  61. opengris_scaler-1.12.7/examples/cpp/ymq/timestamp.cpp +19 -0
  62. opengris_scaler-1.12.7/examples/disconnect_client.py +27 -0
  63. opengris_scaler-1.12.7/examples/graphtask_client.py +53 -0
  64. opengris_scaler-1.12.7/examples/graphtask_nested_client.py +43 -0
  65. opengris_scaler-1.12.7/examples/images/cat_1.jpg +0 -0
  66. opengris_scaler-1.12.7/examples/images/cat_2.jpg +0 -0
  67. opengris_scaler-1.12.7/examples/map_client.py +33 -0
  68. opengris_scaler-1.12.7/examples/nested_client.py +32 -0
  69. opengris_scaler-1.12.7/examples/readme.md +21 -0
  70. opengris_scaler-1.12.7/examples/send_object_client.py +41 -0
  71. opengris_scaler-1.12.7/examples/simple_client.py +51 -0
  72. opengris_scaler-1.12.7/examples/task_capabilities.py +76 -0
  73. opengris_scaler-1.12.7/pyproject.toml +161 -0
  74. opengris_scaler-1.12.7/renovate.json +22 -0
  75. opengris_scaler-1.12.7/run_cluster.py +4 -0
  76. opengris_scaler-1.12.7/run_object_storage_server.py +4 -0
  77. opengris_scaler-1.12.7/run_scheduler.py +5 -0
  78. opengris_scaler-1.12.7/run_top.py +5 -0
  79. opengris_scaler-1.12.7/run_webui.py +4 -0
  80. opengris_scaler-1.12.7/run_worker_adapter_native.py +5 -0
  81. opengris_scaler-1.12.7/run_worker_adapter_symphony.py +5 -0
  82. opengris_scaler-1.12.7/scaler/CMakeLists.txt +11 -0
  83. opengris_scaler-1.12.7/scaler/__init__.py +14 -0
  84. opengris_scaler-1.12.7/scaler/about.py +5 -0
  85. opengris_scaler-1.12.7/scaler/client/__init__.py +0 -0
  86. opengris_scaler-1.12.7/scaler/client/agent/__init__.py +0 -0
  87. opengris_scaler-1.12.7/scaler/client/agent/client_agent.py +210 -0
  88. opengris_scaler-1.12.7/scaler/client/agent/disconnect_manager.py +27 -0
  89. opengris_scaler-1.12.7/scaler/client/agent/future_manager.py +112 -0
  90. opengris_scaler-1.12.7/scaler/client/agent/heartbeat_manager.py +74 -0
  91. opengris_scaler-1.12.7/scaler/client/agent/mixins.py +89 -0
  92. opengris_scaler-1.12.7/scaler/client/agent/object_manager.py +98 -0
  93. opengris_scaler-1.12.7/scaler/client/agent/task_manager.py +64 -0
  94. opengris_scaler-1.12.7/scaler/client/client.py +635 -0
  95. opengris_scaler-1.12.7/scaler/client/future.py +252 -0
  96. opengris_scaler-1.12.7/scaler/client/object_buffer.py +129 -0
  97. opengris_scaler-1.12.7/scaler/client/object_reference.py +25 -0
  98. opengris_scaler-1.12.7/scaler/client/serializer/__init__.py +0 -0
  99. opengris_scaler-1.12.7/scaler/client/serializer/default.py +16 -0
  100. opengris_scaler-1.12.7/scaler/client/serializer/mixins.py +38 -0
  101. opengris_scaler-1.12.7/scaler/cluster/__init__.py +0 -0
  102. opengris_scaler-1.12.7/scaler/cluster/cluster.py +115 -0
  103. opengris_scaler-1.12.7/scaler/cluster/combo.py +148 -0
  104. opengris_scaler-1.12.7/scaler/cluster/object_storage_server.py +45 -0
  105. opengris_scaler-1.12.7/scaler/cluster/scheduler.py +83 -0
  106. opengris_scaler-1.12.7/scaler/config/__init__.py +0 -0
  107. opengris_scaler-1.12.7/scaler/config/defaults.py +87 -0
  108. opengris_scaler-1.12.7/scaler/config/loader.py +95 -0
  109. opengris_scaler-1.12.7/scaler/config/mixins.py +15 -0
  110. opengris_scaler-1.12.7/scaler/config/section/__init__.py +0 -0
  111. opengris_scaler-1.12.7/scaler/config/section/cluster.py +56 -0
  112. opengris_scaler-1.12.7/scaler/config/section/native_worker_adapter.py +44 -0
  113. opengris_scaler-1.12.7/scaler/config/section/object_storage_server.py +7 -0
  114. opengris_scaler-1.12.7/scaler/config/section/scheduler.py +53 -0
  115. opengris_scaler-1.12.7/scaler/config/section/symphony_worker_adapter.py +47 -0
  116. opengris_scaler-1.12.7/scaler/config/section/top.py +13 -0
  117. opengris_scaler-1.12.7/scaler/config/section/webui.py +16 -0
  118. opengris_scaler-1.12.7/scaler/config/types/__init__.py +0 -0
  119. opengris_scaler-1.12.7/scaler/config/types/object_storage_server.py +45 -0
  120. opengris_scaler-1.12.7/scaler/config/types/worker.py +57 -0
  121. opengris_scaler-1.12.7/scaler/config/types/zmq.py +79 -0
  122. opengris_scaler-1.12.7/scaler/entry_points/__init__.py +0 -0
  123. opengris_scaler-1.12.7/scaler/entry_points/cluster.py +133 -0
  124. opengris_scaler-1.12.7/scaler/entry_points/object_storage_server.py +41 -0
  125. opengris_scaler-1.12.7/scaler/entry_points/scheduler.py +135 -0
  126. opengris_scaler-1.12.7/scaler/entry_points/top.py +286 -0
  127. opengris_scaler-1.12.7/scaler/entry_points/webui.py +26 -0
  128. opengris_scaler-1.12.7/scaler/entry_points/worker_adapter_native.py +137 -0
  129. opengris_scaler-1.12.7/scaler/entry_points/worker_adapter_symphony.py +102 -0
  130. opengris_scaler-1.12.7/scaler/io/__init__.py +0 -0
  131. opengris_scaler-1.12.7/scaler/io/async_binder.py +85 -0
  132. opengris_scaler-1.12.7/scaler/io/async_connector.py +95 -0
  133. opengris_scaler-1.12.7/scaler/io/async_object_storage_connector.py +185 -0
  134. opengris_scaler-1.12.7/scaler/io/mixins.py +154 -0
  135. opengris_scaler-1.12.7/scaler/io/sync_connector.py +68 -0
  136. opengris_scaler-1.12.7/scaler/io/sync_object_storage_connector.py +185 -0
  137. opengris_scaler-1.12.7/scaler/io/sync_subscriber.py +83 -0
  138. opengris_scaler-1.12.7/scaler/io/utility.py +31 -0
  139. opengris_scaler-1.12.7/scaler/io/ymq/CMakeLists.txt +98 -0
  140. opengris_scaler-1.12.7/scaler/io/ymq/__init__.py +0 -0
  141. opengris_scaler-1.12.7/scaler/io/ymq/_ymq.pyi +96 -0
  142. opengris_scaler-1.12.7/scaler/io/ymq/bytes.h +114 -0
  143. opengris_scaler-1.12.7/scaler/io/ymq/common.h +29 -0
  144. opengris_scaler-1.12.7/scaler/io/ymq/configuration.h +60 -0
  145. opengris_scaler-1.12.7/scaler/io/ymq/epoll_context.cpp +185 -0
  146. opengris_scaler-1.12.7/scaler/io/ymq/epoll_context.h +85 -0
  147. opengris_scaler-1.12.7/scaler/io/ymq/error.h +132 -0
  148. opengris_scaler-1.12.7/scaler/io/ymq/event_loop.h +55 -0
  149. opengris_scaler-1.12.7/scaler/io/ymq/event_loop_thread.cpp +64 -0
  150. opengris_scaler-1.12.7/scaler/io/ymq/event_loop_thread.h +46 -0
  151. opengris_scaler-1.12.7/scaler/io/ymq/event_manager.h +81 -0
  152. opengris_scaler-1.12.7/scaler/io/ymq/file_descriptor.h +203 -0
  153. opengris_scaler-1.12.7/scaler/io/ymq/interruptive_concurrent_queue.h +169 -0
  154. opengris_scaler-1.12.7/scaler/io/ymq/io_context.cpp +98 -0
  155. opengris_scaler-1.12.7/scaler/io/ymq/io_context.h +44 -0
  156. opengris_scaler-1.12.7/scaler/io/ymq/io_socket.cpp +299 -0
  157. opengris_scaler-1.12.7/scaler/io/ymq/io_socket.h +121 -0
  158. opengris_scaler-1.12.7/scaler/io/ymq/iocp_context.cpp +102 -0
  159. opengris_scaler-1.12.7/scaler/io/ymq/iocp_context.h +83 -0
  160. opengris_scaler-1.12.7/scaler/io/ymq/logging.h +163 -0
  161. opengris_scaler-1.12.7/scaler/io/ymq/message.h +15 -0
  162. opengris_scaler-1.12.7/scaler/io/ymq/message_connection.h +16 -0
  163. opengris_scaler-1.12.7/scaler/io/ymq/message_connection_tcp.cpp +672 -0
  164. opengris_scaler-1.12.7/scaler/io/ymq/message_connection_tcp.h +96 -0
  165. opengris_scaler-1.12.7/scaler/io/ymq/network_utils.h +179 -0
  166. opengris_scaler-1.12.7/scaler/io/ymq/pymod_ymq/bytes.h +113 -0
  167. opengris_scaler-1.12.7/scaler/io/ymq/pymod_ymq/exception.h +124 -0
  168. opengris_scaler-1.12.7/scaler/io/ymq/pymod_ymq/gil.h +15 -0
  169. opengris_scaler-1.12.7/scaler/io/ymq/pymod_ymq/io_context.h +166 -0
  170. opengris_scaler-1.12.7/scaler/io/ymq/pymod_ymq/io_socket.h +285 -0
  171. opengris_scaler-1.12.7/scaler/io/ymq/pymod_ymq/message.h +99 -0
  172. opengris_scaler-1.12.7/scaler/io/ymq/pymod_ymq/python.h +153 -0
  173. opengris_scaler-1.12.7/scaler/io/ymq/pymod_ymq/ymq.cpp +23 -0
  174. opengris_scaler-1.12.7/scaler/io/ymq/pymod_ymq/ymq.h +357 -0
  175. opengris_scaler-1.12.7/scaler/io/ymq/readme.md +114 -0
  176. opengris_scaler-1.12.7/scaler/io/ymq/simple_interface.cpp +80 -0
  177. opengris_scaler-1.12.7/scaler/io/ymq/simple_interface.h +24 -0
  178. opengris_scaler-1.12.7/scaler/io/ymq/tcp_client.cpp +367 -0
  179. opengris_scaler-1.12.7/scaler/io/ymq/tcp_client.h +75 -0
  180. opengris_scaler-1.12.7/scaler/io/ymq/tcp_operations.h +41 -0
  181. opengris_scaler-1.12.7/scaler/io/ymq/tcp_server.cpp +410 -0
  182. opengris_scaler-1.12.7/scaler/io/ymq/tcp_server.h +79 -0
  183. opengris_scaler-1.12.7/scaler/io/ymq/third_party/concurrentqueue.h +3747 -0
  184. opengris_scaler-1.12.7/scaler/io/ymq/timed_queue.h +272 -0
  185. opengris_scaler-1.12.7/scaler/io/ymq/timestamp.h +102 -0
  186. opengris_scaler-1.12.7/scaler/io/ymq/typedefs.h +20 -0
  187. opengris_scaler-1.12.7/scaler/io/ymq/utils.h +34 -0
  188. opengris_scaler-1.12.7/scaler/io/ymq/ymq.py +130 -0
  189. opengris_scaler-1.12.7/scaler/object_storage/CMakeLists.txt +50 -0
  190. opengris_scaler-1.12.7/scaler/object_storage/__init__.py +0 -0
  191. opengris_scaler-1.12.7/scaler/object_storage/constants.h +11 -0
  192. opengris_scaler-1.12.7/scaler/object_storage/defs.h +14 -0
  193. opengris_scaler-1.12.7/scaler/object_storage/io_helper.cpp +44 -0
  194. opengris_scaler-1.12.7/scaler/object_storage/io_helper.h +9 -0
  195. opengris_scaler-1.12.7/scaler/object_storage/message.cpp +56 -0
  196. opengris_scaler-1.12.7/scaler/object_storage/message.h +130 -0
  197. opengris_scaler-1.12.7/scaler/object_storage/object_manager.cpp +126 -0
  198. opengris_scaler-1.12.7/scaler/object_storage/object_manager.h +52 -0
  199. opengris_scaler-1.12.7/scaler/object_storage/object_storage_server.cpp +359 -0
  200. opengris_scaler-1.12.7/scaler/object_storage/object_storage_server.h +126 -0
  201. opengris_scaler-1.12.7/scaler/object_storage/pymod_object_storage_server.cpp +104 -0
  202. opengris_scaler-1.12.7/scaler/protocol/__init__.py +0 -0
  203. opengris_scaler-1.12.7/scaler/protocol/capnp/__init__.py +0 -0
  204. opengris_scaler-1.12.7/scaler/protocol/capnp/_python.py +6 -0
  205. opengris_scaler-1.12.7/scaler/protocol/capnp/common.capnp +63 -0
  206. opengris_scaler-1.12.7/scaler/protocol/capnp/message.capnp +216 -0
  207. opengris_scaler-1.12.7/scaler/protocol/capnp/object_storage.capnp +52 -0
  208. opengris_scaler-1.12.7/scaler/protocol/capnp/status.capnp +73 -0
  209. opengris_scaler-1.12.7/scaler/protocol/introduction.md +105 -0
  210. opengris_scaler-1.12.7/scaler/protocol/python/__init__.py +0 -0
  211. opengris_scaler-1.12.7/scaler/protocol/python/common.py +135 -0
  212. opengris_scaler-1.12.7/scaler/protocol/python/message.py +726 -0
  213. opengris_scaler-1.12.7/scaler/protocol/python/mixins.py +13 -0
  214. opengris_scaler-1.12.7/scaler/protocol/python/object_storage.py +118 -0
  215. opengris_scaler-1.12.7/scaler/protocol/python/status.py +279 -0
  216. opengris_scaler-1.12.7/scaler/protocol/worker.md +228 -0
  217. opengris_scaler-1.12.7/scaler/scheduler/__init__.py +0 -0
  218. opengris_scaler-1.12.7/scaler/scheduler/allocate_policy/__init__.py +0 -0
  219. opengris_scaler-1.12.7/scaler/scheduler/allocate_policy/allocate_policy.py +9 -0
  220. opengris_scaler-1.12.7/scaler/scheduler/allocate_policy/capability_allocate_policy.py +280 -0
  221. opengris_scaler-1.12.7/scaler/scheduler/allocate_policy/even_load_allocate_policy.py +159 -0
  222. opengris_scaler-1.12.7/scaler/scheduler/allocate_policy/mixins.py +55 -0
  223. opengris_scaler-1.12.7/scaler/scheduler/controllers/__init__.py +0 -0
  224. opengris_scaler-1.12.7/scaler/scheduler/controllers/balance_controller.py +65 -0
  225. opengris_scaler-1.12.7/scaler/scheduler/controllers/client_controller.py +131 -0
  226. opengris_scaler-1.12.7/scaler/scheduler/controllers/config_controller.py +31 -0
  227. opengris_scaler-1.12.7/scaler/scheduler/controllers/graph_controller.py +424 -0
  228. opengris_scaler-1.12.7/scaler/scheduler/controllers/information_controller.py +81 -0
  229. opengris_scaler-1.12.7/scaler/scheduler/controllers/mixins.py +201 -0
  230. opengris_scaler-1.12.7/scaler/scheduler/controllers/object_controller.py +147 -0
  231. opengris_scaler-1.12.7/scaler/scheduler/controllers/scaling_controller.py +86 -0
  232. opengris_scaler-1.12.7/scaler/scheduler/controllers/task_controller.py +373 -0
  233. opengris_scaler-1.12.7/scaler/scheduler/controllers/worker_controller.py +168 -0
  234. opengris_scaler-1.12.7/scaler/scheduler/object_usage/__init__.py +0 -0
  235. opengris_scaler-1.12.7/scaler/scheduler/object_usage/object_tracker.py +131 -0
  236. opengris_scaler-1.12.7/scaler/scheduler/scheduler.py +253 -0
  237. opengris_scaler-1.12.7/scaler/scheduler/task/__init__.py +0 -0
  238. opengris_scaler-1.12.7/scaler/scheduler/task/task_state_machine.py +92 -0
  239. opengris_scaler-1.12.7/scaler/scheduler/task/task_state_manager.py +61 -0
  240. opengris_scaler-1.12.7/scaler/ui/__init__.py +0 -0
  241. opengris_scaler-1.12.7/scaler/ui/constants.py +9 -0
  242. opengris_scaler-1.12.7/scaler/ui/live_display.py +118 -0
  243. opengris_scaler-1.12.7/scaler/ui/memory_window.py +146 -0
  244. opengris_scaler-1.12.7/scaler/ui/setting_page.py +47 -0
  245. opengris_scaler-1.12.7/scaler/ui/task_graph.py +370 -0
  246. opengris_scaler-1.12.7/scaler/ui/task_log.py +83 -0
  247. opengris_scaler-1.12.7/scaler/ui/utility.py +35 -0
  248. opengris_scaler-1.12.7/scaler/ui/webui.py +125 -0
  249. opengris_scaler-1.12.7/scaler/ui/worker_processors.py +85 -0
  250. opengris_scaler-1.12.7/scaler/utility/__init__.py +0 -0
  251. opengris_scaler-1.12.7/scaler/utility/debug.py +19 -0
  252. opengris_scaler-1.12.7/scaler/utility/event_list.py +63 -0
  253. opengris_scaler-1.12.7/scaler/utility/event_loop.py +58 -0
  254. opengris_scaler-1.12.7/scaler/utility/exceptions.py +42 -0
  255. opengris_scaler-1.12.7/scaler/utility/formatter.py +44 -0
  256. opengris_scaler-1.12.7/scaler/utility/graph/__init__.py +0 -0
  257. opengris_scaler-1.12.7/scaler/utility/graph/optimization.py +27 -0
  258. opengris_scaler-1.12.7/scaler/utility/graph/topological_sorter.py +11 -0
  259. opengris_scaler-1.12.7/scaler/utility/graph/topological_sorter_graphblas.py +174 -0
  260. opengris_scaler-1.12.7/scaler/utility/identifiers.py +105 -0
  261. opengris_scaler-1.12.7/scaler/utility/logging/__init__.py +0 -0
  262. opengris_scaler-1.12.7/scaler/utility/logging/decorators.py +25 -0
  263. opengris_scaler-1.12.7/scaler/utility/logging/scoped_logger.py +33 -0
  264. opengris_scaler-1.12.7/scaler/utility/logging/utility.py +183 -0
  265. opengris_scaler-1.12.7/scaler/utility/many_to_many_dict.py +123 -0
  266. opengris_scaler-1.12.7/scaler/utility/metadata/__init__.py +0 -0
  267. opengris_scaler-1.12.7/scaler/utility/metadata/profile_result.py +31 -0
  268. opengris_scaler-1.12.7/scaler/utility/metadata/task_flags.py +30 -0
  269. opengris_scaler-1.12.7/scaler/utility/mixins.py +13 -0
  270. opengris_scaler-1.12.7/scaler/utility/network_util.py +7 -0
  271. opengris_scaler-1.12.7/scaler/utility/one_to_many_dict.py +72 -0
  272. opengris_scaler-1.12.7/scaler/utility/queues/__init__.py +0 -0
  273. opengris_scaler-1.12.7/scaler/utility/queues/async_indexed_queue.py +37 -0
  274. opengris_scaler-1.12.7/scaler/utility/queues/async_priority_queue.py +70 -0
  275. opengris_scaler-1.12.7/scaler/utility/queues/async_sorted_priority_queue.py +45 -0
  276. opengris_scaler-1.12.7/scaler/utility/queues/indexed_queue.py +114 -0
  277. opengris_scaler-1.12.7/scaler/utility/serialization.py +9 -0
  278. opengris_scaler-1.12.7/scaler/version.txt +1 -0
  279. opengris_scaler-1.12.7/scaler/worker/__init__.py +0 -0
  280. opengris_scaler-1.12.7/scaler/worker/agent/__init__.py +0 -0
  281. opengris_scaler-1.12.7/scaler/worker/agent/heartbeat_manager.py +107 -0
  282. opengris_scaler-1.12.7/scaler/worker/agent/mixins.py +137 -0
  283. opengris_scaler-1.12.7/scaler/worker/agent/processor/__init__.py +0 -0
  284. opengris_scaler-1.12.7/scaler/worker/agent/processor/object_cache.py +107 -0
  285. opengris_scaler-1.12.7/scaler/worker/agent/processor/processor.py +279 -0
  286. opengris_scaler-1.12.7/scaler/worker/agent/processor/streaming_buffer.py +28 -0
  287. opengris_scaler-1.12.7/scaler/worker/agent/processor_holder.py +145 -0
  288. opengris_scaler-1.12.7/scaler/worker/agent/processor_manager.py +365 -0
  289. opengris_scaler-1.12.7/scaler/worker/agent/profiling_manager.py +109 -0
  290. opengris_scaler-1.12.7/scaler/worker/agent/task_manager.py +150 -0
  291. opengris_scaler-1.12.7/scaler/worker/agent/timeout_manager.py +19 -0
  292. opengris_scaler-1.12.7/scaler/worker/preload.py +84 -0
  293. opengris_scaler-1.12.7/scaler/worker/worker.py +264 -0
  294. opengris_scaler-1.12.7/scaler/worker_adapter/__init__.py +0 -0
  295. opengris_scaler-1.12.7/scaler/worker_adapter/native.py +154 -0
  296. opengris_scaler-1.12.7/scaler/worker_adapter/symphony/__init__.py +0 -0
  297. opengris_scaler-1.12.7/scaler/worker_adapter/symphony/callback.py +45 -0
  298. opengris_scaler-1.12.7/scaler/worker_adapter/symphony/heartbeat_manager.py +79 -0
  299. opengris_scaler-1.12.7/scaler/worker_adapter/symphony/message.py +24 -0
  300. opengris_scaler-1.12.7/scaler/worker_adapter/symphony/task_manager.py +288 -0
  301. opengris_scaler-1.12.7/scaler/worker_adapter/symphony/worker.py +205 -0
  302. opengris_scaler-1.12.7/scaler/worker_adapter/symphony/worker_adapter.py +142 -0
  303. opengris_scaler-1.12.7/scripts/build.sh +27 -0
  304. opengris_scaler-1.12.7/scripts/library_tool.ps1 +100 -0
  305. opengris_scaler-1.12.7/scripts/library_tool.sh +90 -0
  306. opengris_scaler-1.12.7/scripts/test.sh +15 -0
  307. opengris_scaler-1.12.7/slides/Effortless Distributed Computing in Python - FOSDEM 2025.pdf +0 -0
  308. opengris_scaler-1.12.7/slides/OSFF 2025 London.pdf +0 -0
  309. opengris_scaler-1.12.7/tests/CMakeLists.txt +43 -0
  310. opengris_scaler-1.12.7/tests/__init__.py +0 -0
  311. opengris_scaler-1.12.7/tests/cpp/CMakeLists.txt +3 -0
  312. opengris_scaler-1.12.7/tests/cpp/object_storage/CMakeLists.txt +2 -0
  313. opengris_scaler-1.12.7/tests/cpp/object_storage/test_object_manager.cpp +120 -0
  314. opengris_scaler-1.12.7/tests/cpp/object_storage/test_object_storage_server.cpp +642 -0
  315. opengris_scaler-1.12.7/tests/cpp/ymq/CMakeLists.txt +1 -0
  316. opengris_scaler-1.12.7/tests/cpp/ymq/common.h +555 -0
  317. opengris_scaler-1.12.7/tests/cpp/ymq/py_mitm/__init__.py +0 -0
  318. opengris_scaler-1.12.7/tests/cpp/ymq/py_mitm/main.py +177 -0
  319. opengris_scaler-1.12.7/tests/cpp/ymq/py_mitm/passthrough.py +25 -0
  320. opengris_scaler-1.12.7/tests/cpp/ymq/py_mitm/randomly_drop_packets.py +29 -0
  321. opengris_scaler-1.12.7/tests/cpp/ymq/py_mitm/send_rst_to_client.py +38 -0
  322. opengris_scaler-1.12.7/tests/cpp/ymq/py_mitm/types.py +56 -0
  323. opengris_scaler-1.12.7/tests/cpp/ymq/test_ymq.cpp +654 -0
  324. opengris_scaler-1.12.7/tests/io/ymq/CMakeLists.txt +1 -0
  325. opengris_scaler-1.12.7/tests/io/ymq/test_logging.cpp +139 -0
  326. opengris_scaler-1.12.7/tests/test_async_indexed_queue.py +45 -0
  327. opengris_scaler-1.12.7/tests/test_async_priority_queue.py +40 -0
  328. opengris_scaler-1.12.7/tests/test_async_sorted_priority_queue.py +39 -0
  329. opengris_scaler-1.12.7/tests/test_balance.py +73 -0
  330. opengris_scaler-1.12.7/tests/test_capabilities.py +106 -0
  331. opengris_scaler-1.12.7/tests/test_capability_allocate_policy.py +174 -0
  332. opengris_scaler-1.12.7/tests/test_client.py +429 -0
  333. opengris_scaler-1.12.7/tests/test_cluster.py +26 -0
  334. opengris_scaler-1.12.7/tests/test_cluster_disconnect.py +58 -0
  335. opengris_scaler-1.12.7/tests/test_config.py +179 -0
  336. opengris_scaler-1.12.7/tests/test_death_timeout.py +99 -0
  337. opengris_scaler-1.12.7/tests/test_future.py +303 -0
  338. opengris_scaler-1.12.7/tests/test_graph.py +208 -0
  339. opengris_scaler-1.12.7/tests/test_indexed_queue.py +35 -0
  340. opengris_scaler-1.12.7/tests/test_nested_task.py +62 -0
  341. opengris_scaler-1.12.7/tests/test_object_usage.py +48 -0
  342. opengris_scaler-1.12.7/tests/test_profiling.py +65 -0
  343. opengris_scaler-1.12.7/tests/test_protected.py +45 -0
  344. opengris_scaler-1.12.7/tests/test_scaling.py +114 -0
  345. opengris_scaler-1.12.7/tests/test_serializer.py +86 -0
  346. opengris_scaler-1.12.7/tests/test_ui.py +78 -0
  347. opengris_scaler-1.12.7/tests/utility.py +26 -0
  348. opengris_scaler-1.12.7/version.h.in +7 -0
@@ -0,0 +1,76 @@
1
+ ---
2
+ BasedOnStyle: Chromium
3
+ AccessModifierOffset: '-4'
4
+ AlignAfterOpenBracket: AlwaysBreak
5
+ AlignConsecutiveMacros: 'true'
6
+ AlignConsecutiveAssignments: 'true'
7
+ AlignConsecutiveDeclarations: 'false'
8
+ AlignEscapedNewlines: Left
9
+ AlignOperands: 'true'
10
+ AlignTrailingComments: 'true'
11
+ AllowAllArgumentsOnNextLine: 'true'
12
+ AllowAllConstructorInitializersOnNextLine: 'true'
13
+ AllowShortBlocksOnASingleLine: 'true'
14
+ AllowShortCaseLabelsOnASingleLine: 'true'
15
+ AllowShortIfStatementsOnASingleLine: Never
16
+ AllowShortLambdasOnASingleLine: All
17
+ AllowShortLoopsOnASingleLine: 'false'
18
+ AlwaysBreakAfterReturnType: None
19
+ AlwaysBreakBeforeMultilineStrings: 'true'
20
+ AlwaysBreakTemplateDeclarations: 'Yes'
21
+ BinPackArguments: 'false'
22
+ BreakBeforeBinaryOperators: None
23
+ BreakBeforeTernaryOperators: 'false'
24
+ BreakConstructorInitializers: BeforeComma
25
+ BreakInheritanceList: BeforeColon
26
+ BreakStringLiterals: 'true'
27
+ ColumnLimit: '120'
28
+ CompactNamespaces: 'false'
29
+ ConstructorInitializerAllOnOneLineOrOnePerLine: 'true'
30
+ ConstructorInitializerIndentWidth: '4'
31
+ ContinuationIndentWidth: '4'
32
+ Cpp11BracedListStyle: 'true'
33
+ FixNamespaceComments: 'true'
34
+ IncludeBlocks: Regroup
35
+ IndentCaseLabels: 'true'
36
+ IndentPPDirectives: None
37
+ IndentWidth: '4'
38
+ IndentWrappedFunctionNames: 'false'
39
+ Language: Cpp
40
+ NamespaceIndentation: None
41
+ PointerAlignment: Left
42
+ SpaceBeforeAssignmentOperators: 'true'
43
+ SpaceBeforeCpp11BracedList: 'true'
44
+ SpaceBeforeCtorInitializerColon: 'false'
45
+ SpaceBeforeInheritanceColon: 'false'
46
+ SpaceBeforeParens: ControlStatements
47
+ SpaceBeforeRangeBasedForLoopColon: 'false'
48
+ SpaceInEmptyParentheses: 'false'
49
+ SpacesInAngles: 'false'
50
+ SpacesInCStyleCastParentheses: 'false'
51
+ SpacesInContainerLiterals: 'false'
52
+ SpacesInParentheses: 'false'
53
+ SpacesInSquareBrackets: 'false'
54
+ Standard: Cpp11
55
+ TabWidth: '4'
56
+ UseTab: Never
57
+
58
+ # control function declaration/definition
59
+ AllowShortFunctionsOnASingleLine: InlineOnly
60
+ AllowAllParametersOfDeclarationOnNextLine: true
61
+ BinPackParameters: OnePerLine
62
+
63
+ # control behavior of {, only detach for function body
64
+ BreakBeforeBraces: Custom
65
+ BraceWrapping:
66
+ AfterFunction: true
67
+ AfterClass: false
68
+ AfterControlStatement: false
69
+ AfterEnum: false
70
+ AfterNamespace: false
71
+ AfterStruct: false
72
+ AfterUnion: false
73
+ BeforeCatch: false
74
+ BeforeElse: false
75
+ IndentBraces: false
76
+ ...
@@ -0,0 +1,30 @@
1
+ name: "3rd Party Libraries Compile"
2
+ description: "3rd Party Libraries Compile"
3
+
4
+ inputs:
5
+ os:
6
+ description: "operating system"
7
+ required: true
8
+
9
+ runs:
10
+ using: "composite"
11
+ steps:
12
+ - name: Cache Library Compile
13
+ uses: actions/cache@v4
14
+ id: compiled-libraries
15
+ with:
16
+ path: |
17
+ capnproto-*
18
+ key: compiled-libraries-${{ inputs.os }}-${{ hashFiles('scripts/library_tool.*') }}
19
+
20
+ - name: Compile Libraries (Linux)
21
+ shell: bash
22
+ if: (inputs.os == 'Linux') && (steps.compiled-libraries.outputs.cache-hit != 'true')
23
+ run: |
24
+ ./scripts/library_tool.sh capnp compile
25
+
26
+ - name: Compile Libraries (Windows)
27
+ shell: pwsh
28
+ if: (inputs.os == 'Windows') && (steps.compiled-libraries.outputs.cache-hit != 'true')
29
+ run: |
30
+ ./scripts/library_tool.ps1 capnp compile
@@ -0,0 +1,30 @@
1
+ name: "3rd Party Libraries Download"
2
+ description: "3rd Party Libraries Download"
3
+
4
+ inputs:
5
+ os:
6
+ description: "operating system"
7
+ required: true
8
+
9
+ runs:
10
+ using: "composite"
11
+ steps:
12
+ - name: Cache Library Download
13
+ uses: actions/cache@v4
14
+ id: download-libraries
15
+ with:
16
+ path: |
17
+ downloaded
18
+ key: download-libraries-${{ inputs.os }}-${{ hashFiles('scripts/library_tool.*') }}
19
+
20
+ - name: Download Libraries (Linux)
21
+ shell: bash
22
+ if: (inputs.os == 'Linux') && (steps.download-libraries.outputs.cache-hit != 'true')
23
+ run: |
24
+ ./scripts/library_tool.sh capnp download
25
+
26
+ - name: Download Libraries (Windows)
27
+ shell: pwsh
28
+ if: (inputs.os == 'Windows') && (steps.download-libraries.outputs.cache-hit != 'true')
29
+ run: |
30
+ ./scripts/library_tool.ps1 capnp download
@@ -0,0 +1,22 @@
1
+ name: "3rd Party Libraries Install"
2
+ description: "3rd Party Libraries Install"
3
+
4
+ inputs:
5
+ os:
6
+ description: "operating system"
7
+ required: true
8
+
9
+ runs:
10
+ using: "composite"
11
+ steps:
12
+ - name: Install Libraries (Linux)
13
+ shell: bash
14
+ if: inputs.os == 'Linux'
15
+ run: |
16
+ sudo ./scripts/library_tool.sh capnp install
17
+
18
+ - name: Install Libraries (Windows)
19
+ shell: pwsh
20
+ if: inputs.os == 'Windows'
21
+ run: |
22
+ ./scripts/library_tool.ps1 capnp install
@@ -0,0 +1,24 @@
1
+ name: 'Compile Libraries'
2
+ description: 'Compile Libraries'
3
+
4
+ inputs:
5
+ os:
6
+ description: "operating system"
7
+ required: true
8
+
9
+ runs:
10
+ using: "composite"
11
+ steps:
12
+ - name: Build C++ Components (Linux)
13
+ if: inputs.os == 'Linux'
14
+ shell: bash
15
+ run: |
16
+ CXX=$(which g++-14) ./scripts/build.sh
17
+
18
+ - name: Build and test C++ Components (Windows)
19
+ if: inputs.os == 'Windows'
20
+ shell: pwsh
21
+ run: |
22
+ cmake --preset windows-x64
23
+ cmake --build --preset windows-x64 --config Debug
24
+ cmake --install build_windows_x64 --config Debug
@@ -0,0 +1,28 @@
1
+ name: create-artifacts
2
+ description: Build Artifacts
3
+
4
+ inputs:
5
+ os:
6
+ description: "operating system"
7
+ required: true
8
+
9
+ runs:
10
+ using: "composite"
11
+ steps:
12
+ - name: Install Python Packages
13
+ if: inputs.os == 'Linux'
14
+ shell: bash
15
+ run: |
16
+ uv pip install --system --upgrade build cibuildwheel twine
17
+ rm -rf dist
18
+
19
+ - name: Build Sdist
20
+ if: inputs.os == 'Linux'
21
+ shell: bash
22
+ run: |
23
+ python -m build --sdist
24
+
25
+ - name: Build Wheel (Linux)
26
+ if: inputs.os == 'Linux'
27
+ shell: bash
28
+ run: python -m cibuildwheel --output-dir dist
@@ -0,0 +1,12 @@
1
+ name: checkout
2
+ description: checkout
3
+
4
+ runs:
5
+ using: "composite"
6
+ steps:
7
+ - name: Harden the runner (Audit all outbound calls)
8
+ uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
9
+ with:
10
+ egress-policy: audit
11
+
12
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
@@ -0,0 +1,24 @@
1
+ name: 'Build Documentation'
2
+ description: 'Build Documentation'
3
+
4
+ runs:
5
+ using: 'composite'
6
+ steps:
7
+ - name: Install dependencies
8
+ shell: bash
9
+ run: |
10
+ uv pip install --system -r pyproject.toml
11
+ uv pip install --system -r docs/requirements_docs.txt
12
+
13
+ - name: Build documentation
14
+ shell: bash
15
+ run: cd docs && make html
16
+
17
+ - name: Upload Pages artifact
18
+ uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3.0.1
19
+ with:
20
+ path: './docs/build/html'
21
+
22
+ - name: Deploy to GitHub Pages
23
+ id: deployment
24
+ uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5
@@ -0,0 +1,34 @@
1
+ name: 'Run Linter'
2
+ description: 'Run Linter'
3
+
4
+ inputs:
5
+ os:
6
+ description: "operating system"
7
+ required: true
8
+
9
+ runs:
10
+ using: 'composite'
11
+ steps:
12
+ - name: Install Python Packages (Linux)
13
+ if: inputs.os == 'Linux'
14
+ shell: bash
15
+ run: |
16
+ uv pip install --system flake8 pyproject-flake8 mypy
17
+ uv pip install --system -r pyproject.toml --all-extras
18
+
19
+ - name: Install Python Packages (Windows)
20
+ if: inputs.os == 'Windows'
21
+ shell: bash
22
+ run: |
23
+ uv pip install --system flake8 pyproject-flake8 mypy
24
+ uv pip install --system -r pyproject.toml --extra graphblas --extra gui
25
+
26
+ - name: Lint With flake8
27
+ shell: bash
28
+ run: |
29
+ pflake8 .
30
+
31
+ - name: Lint With MyPy
32
+ shell: bash
33
+ run: |
34
+ mypy --install-types --non-interactive .
@@ -0,0 +1,46 @@
1
+ name: 'Run Tests With Wheel Installed'
2
+ description: 'Run Unit Tests And Examples With Wheel Installed'
3
+
4
+ inputs:
5
+ os:
6
+ description: "operating system"
7
+ required: true
8
+
9
+ runs:
10
+ using: "composite"
11
+ steps:
12
+ - name: Install dependencies for MITM tests
13
+ if: inputs.os == 'Linux'
14
+ shell: bash
15
+ run: uv pip install --system scapy==2.*
16
+
17
+ - name: Run C++ Tests (Linux)
18
+ if: inputs.os == 'Linux'
19
+ shell: bash
20
+ run: sudo ./scripts/test.sh
21
+
22
+ # TODO: build wheel first, then run the test
23
+ - name: Run Unittests
24
+ shell: bash
25
+ run: |
26
+ python -m unittest discover -v tests
27
+
28
+ - name: Run Examples
29
+ shell: bash
30
+ run: |
31
+ uv pip install --system -r examples/applications/requirements_applications.txt
32
+ for example in "./examples"/*.py; do
33
+ echo "Running $example"
34
+ PYTHONPATH=. python $example
35
+ done
36
+ for example in "./examples/applications"/*.py; do
37
+ if python -c 'import sys; sys.exit(not sys.version_info <= (3, 10))'; then
38
+ if [ "$example" = "./examples/applications/yfinance_historical_price.py" ]; then
39
+ echo "Skipping $example"
40
+ continue;
41
+ fi
42
+ fi
43
+
44
+ echo "Running $example"
45
+ PYTHONPATH=. python $example
46
+ done
@@ -0,0 +1,30 @@
1
+ name: 'Setup Environment'
2
+ description: 'Setup Environment'
3
+
4
+ inputs:
5
+ os:
6
+ description: "operating system"
7
+ required: true
8
+
9
+ runs:
10
+ using: 'composite'
11
+ steps:
12
+ - name: Set up Python
13
+ uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
14
+ with:
15
+ python-version: "3.8"
16
+
17
+ - name: Update System (Linux)
18
+ shell: bash
19
+ if: inputs.os == 'Linux'
20
+ run: |
21
+ sudo apt update -y
22
+ sudo apt install -y build-essential tzdata cmake clang curl pkg-config g++-14
23
+ sudo chmod 755 ./scripts/library_tool.sh
24
+ sudo chmod 755 ./scripts/build.sh
25
+
26
+ - name: Install Python Base Packages
27
+ shell: bash
28
+ run: |
29
+ pip install uv
30
+ uv pip install --system --upgrade pip
@@ -0,0 +1,11 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "pip" # See documentation for possible values
9
+ directory: "/" # Location of package manifests
10
+ schedule:
11
+ interval: "daily"
@@ -0,0 +1,55 @@
1
+ name: "Build And Test"
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main" ]
6
+ pull_request:
7
+ branches: [ "main" ]
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ build:
14
+ name: Build And Test
15
+ runs-on: ${{ matrix.os }}
16
+ strategy:
17
+ matrix:
18
+ os: [ ubuntu-latest ] # , windows-latest ] , macos-latest ]
19
+
20
+ steps:
21
+ - name: Harden the runner (Audit all outbound calls)
22
+ uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
23
+ with:
24
+ egress-policy: audit
25
+
26
+ - name: 'Checkout Repository'
27
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
28
+
29
+ - uses: ./.github/actions/setup-env
30
+ with:
31
+ os: ${{ runner.os }}
32
+
33
+ - uses: ./.github/actions/3rd-party-libraries-download
34
+ with:
35
+ os: ${{ runner.os }}
36
+
37
+ - uses: ./.github/actions/3rd-party-libraries-compile
38
+ with:
39
+ os: ${{ runner.os }}
40
+
41
+ - uses: ./.github/actions/3rd-party-libraries-install
42
+ with:
43
+ os: ${{ runner.os }}
44
+
45
+ - uses: ./.github/actions/compile-libraries
46
+ with:
47
+ os: ${{ runner.os }}
48
+
49
+ - uses: ./.github/actions/run-linter
50
+ with:
51
+ os: ${{ runner.os }}
52
+
53
+ - uses: ./.github/actions/run-test
54
+ with:
55
+ os: ${{ runner.os }}
@@ -0,0 +1,48 @@
1
+ name: "CodeQL"
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main" ]
6
+ pull_request:
7
+ branches: [ "main" ]
8
+ schedule:
9
+ - cron: '34 1 * * 6'
10
+
11
+ permissions:
12
+ contents: read
13
+
14
+ jobs:
15
+ analyze:
16
+ name: Analyze (${{ matrix.language }})
17
+ runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
18
+ timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
19
+ permissions:
20
+ # required for all workflows
21
+ security-events: write
22
+
23
+ strategy:
24
+ fail-fast: false
25
+ matrix:
26
+ include:
27
+ - language: python
28
+ build-mode: none
29
+ steps:
30
+ - name: Harden the runner (Audit all outbound calls)
31
+ uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
32
+ with:
33
+ egress-policy: audit
34
+
35
+ - name: Checkout repository
36
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
37
+
38
+ # Initializes the CodeQL tools for scanning.
39
+ - name: Initialize CodeQL
40
+ uses: github/codeql-action/init@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
41
+ with:
42
+ languages: ${{ matrix.language }}
43
+ build-mode: ${{ matrix.build-mode }}
44
+
45
+ - name: Perform CodeQL Analysis
46
+ uses: github/codeql-action/analyze@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
47
+ with:
48
+ category: "/language:${{matrix.language}}"
@@ -0,0 +1,26 @@
1
+ name: 'Dependency Review'
2
+ on: [ pull_request ]
3
+
4
+ permissions:
5
+ contents: read
6
+ pull-requests: write
7
+
8
+ jobs:
9
+ dependency-review:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - name: Harden the runner (Audit all outbound calls)
13
+ uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
14
+ with:
15
+ egress-policy: audit
16
+
17
+ - name: 'Checkout Repository'
18
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
19
+
20
+ - name: Dependency Review
21
+ uses: actions/dependency-review-action@da24556b548a50705dd671f47852072ea4c105d9 # v4.7.1
22
+ with:
23
+ comment-summary-in-pr: always
24
+ fail-on-severity: high
25
+ allow-licenses: MIT, Apache-2.0, BSD-3-Clause, ISC, BSD-2-Clause, Unlicense, CC0-1.0, 0BSD, X11, MPL-2.0, MPL-1.0, MPL-1.1, MPL-2.0
26
+ fail-on-scopes: development, runtime
@@ -0,0 +1,44 @@
1
+ name: Publish Python package to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [ created ]
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ jobs:
11
+ deploy:
12
+ name: Build wheels on ${{ matrix.os }}
13
+ runs-on: ${{ matrix.os }}
14
+ environment: release
15
+ strategy:
16
+ matrix:
17
+ os: [ ubuntu-latest ]
18
+ permissions:
19
+ id-token: write
20
+ steps:
21
+ - name: Harden the runner (Audit all outbound calls)
22
+ uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
23
+ with:
24
+ egress-policy: audit
25
+
26
+ - name: 'Checkout Repository'
27
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
28
+
29
+ - uses: ./.github/actions/setup-env
30
+ with:
31
+ os: ${{ runner.os }}
32
+
33
+ - uses: ./.github/actions/3rd-party-libraries-download
34
+ with:
35
+ os: ${{ runner.os }}
36
+
37
+ - uses: ./.github/actions/create-artifacts
38
+ with:
39
+ os: ${{ runner.os }}
40
+
41
+ - name: Publish to PyPI
42
+ uses: pypa/gh-action-pypi-publish@release/v1
43
+ with:
44
+ packages-dir: ./dist/
@@ -0,0 +1,30 @@
1
+ name: Publish documentation to GitHub Pages
2
+
3
+ on:
4
+ release:
5
+ types: [ created ]
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ contents: read
10
+ pages: write
11
+ id-token: write
12
+
13
+ jobs:
14
+ deploy:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ # - uses: ./.github/actions/checkout
18
+ - name: Harden the runner (Audit all outbound calls)
19
+ uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
20
+ with:
21
+ egress-policy: audit
22
+
23
+ - name: 'Checkout Repository'
24
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
25
+
26
+ - uses: ./.github/actions/setup-env
27
+ with:
28
+ os: ${{ runner.os }}
29
+
30
+ - uses: ./.github/actions/publish-doc
@@ -0,0 +1,58 @@
1
+ name: Scorecard supply-chain security
2
+ on:
3
+ # For Branch-Protection check. Only the default branch is supported. See
4
+ # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
5
+ branch_protection_rule:
6
+ # To guarantee Maintained check is occasionally updated. See
7
+ # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
8
+ schedule:
9
+ - cron: '26 18 * * 0'
10
+ push:
11
+ branches: [ "main" ]
12
+
13
+ # Declare default permissions as read only.
14
+ permissions: read-all
15
+
16
+ jobs:
17
+ analysis:
18
+ name: Scorecard analysis
19
+ runs-on: ubuntu-latest
20
+ permissions:
21
+ # Needed to upload the results to code-scanning dashboard.
22
+ security-events: write
23
+ # Needed to publish results and get a badge (see publish_results below).
24
+ id-token: write
25
+ # Uncomment the permissions below if installing in a private repository.
26
+ # contents: read
27
+ # actions: read
28
+
29
+ steps:
30
+ - name: Harden Runner
31
+ uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
32
+ with:
33
+ egress-policy: audit
34
+
35
+ - name: "Checkout code"
36
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
37
+ with:
38
+ persist-credentials: false
39
+
40
+ - name: "Run analysis"
41
+ uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1
42
+ with:
43
+ results_file: results.sarif
44
+ results_format: sarif
45
+ # (Optional) "write" PAT token. Uncomment the `repo_token` line below if:
46
+ # - you want to enable the Branch-Protection check on a *public* repository, or
47
+ # - you are installing Scorecard on a *private* repository
48
+ # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat.
49
+ # repo_token: ${{ secrets.SCORECARD_TOKEN }}
50
+
51
+ # Public repositories:
52
+ # - Publish results to OpenSSF REST API for easy access by consumers
53
+ # - Allows the repository to include the Scorecard badge.
54
+ # - See https://github.com/ossf/scorecard-action#publishing-results.
55
+ # For private repositories:
56
+ # - `publish_results` will always be set to `false`, regardless
57
+ # of the value entered here.
58
+ publish_results: true
@@ -0,0 +1,34 @@
1
+ __pychace__/
2
+ *.py[cod]
3
+ *$py.class
4
+ *.so
5
+
6
+ dist/
7
+ sdist/
8
+ wheels/
9
+ eggs/
10
+ .eggs/
11
+ .idea/
12
+ *.egg-info/
13
+ *.egg
14
+ .mypy_cache/
15
+ .cache
16
+
17
+ .venv/
18
+ venv*/
19
+ .vscode/
20
+
21
+ dask-worker-space/*
22
+ .pre-commit-config.yaml
23
+
24
+ .DS_Store
25
+
26
+ .clangd
27
+ .python-version
28
+
29
+ build*/
30
+ CMakeUserPresets.json
31
+ CMakeFiles/
32
+ .vs/
33
+ scaler/protocol/capnp/*.c++
34
+ scaler/protocol/capnp/*.h