opengris-scaler 1.12.7__tar.gz → 1.12.9__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.
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/CMakeLists.txt +12 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/PKG-INFO +1 -1
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/cpp/ymq/automated_echo_client.cpp +1 -1
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/cpp/ymq/pingpong.cpp +1 -1
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/config/loader.py +3 -2
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/config/mixins.py +6 -1
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/config/types/worker.py +6 -1
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/config/types/zmq.py +5 -1
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/CMakeLists.txt +0 -1
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/epoll_context.h +0 -1
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/object_storage/CMakeLists.txt +0 -2
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/object_storage/object_storage_server.cpp +11 -4
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/object_storage/object_storage_server.h +3 -2
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/object_storage/pymod_object_storage_server.cpp +13 -2
- opengris_scaler-1.12.9/scaler/version.txt +1 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/cpp/ymq/common.h +15 -4
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/cpp/ymq/py_mitm/main.py +0 -1
- opengris_scaler-1.12.9/tests/test_cluster_config.py +49 -0
- opengris_scaler-1.12.9/tests/test_config_types.py +50 -0
- opengris_scaler-1.12.7/tests/test_config.py → opengris_scaler-1.12.9/tests/test_scheduler_config.py +1 -85
- opengris_scaler-1.12.7/scaler/io/ymq/file_descriptor.h +0 -203
- opengris_scaler-1.12.7/scaler/version.txt +0 -1
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.clang-format +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.github/actions/3rd-party-libraries-compile/action.yml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.github/actions/3rd-party-libraries-download/action.yml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.github/actions/3rd-party-libraries-install/action.yml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.github/actions/compile-libraries/action.yml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.github/actions/create-artifacts/action.yml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.github/actions/harden-check/action.yml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.github/actions/publish-doc/action.yml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.github/actions/run-linter/action.yml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.github/actions/run-test/action.yml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.github/actions/setup-env/action.yml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.github/dependabot.yml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.github/workflows/build-and-test.yml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.github/workflows/codeql.yml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.github/workflows/dependency-review.yml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.github/workflows/publish-artifact.yml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.github/workflows/publish-documentation.yml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.github/workflows/scorecard.yml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/.gitignore +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/CMakePresets.json +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/CONTRIBUTING.md +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/LICENSE +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/LICENSE.spdx +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/NOTICE +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/README.md +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/benchmarks/dask_local_test.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/benchmarks/dask_remote_test.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/benchmarks/scaler_test.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/docs/.gitignore +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/docs/Makefile +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/docs/make.bat +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/docs/requirements_docs.txt +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/docs/source/_static/style.css +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/docs/source/_templates/layout.html +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/docs/source/conf.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/docs/source/index.rst +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/docs/source/tutorials/configuration.rst +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/docs/source/tutorials/examples.rst +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/docs/source/tutorials/features.rst +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/docs/source/tutorials/images/architecture.png +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/docs/source/tutorials/quickstart.rst +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/downloaded/capnproto-c++-1.1.0.tar.gz +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/applications/downloaded_data.csv +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/applications/implied_volatility.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/applications/pillow.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/applications/requirements_applications.txt +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/applications/timeseries.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/applications/yfinance_historical_price.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/cpp/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/cpp/ymq/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/cpp/ymq/echo_client.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/cpp/ymq/echo_server.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/cpp/ymq/pub_server.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/cpp/ymq/remove_iosocket.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/cpp/ymq/sub_client.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/cpp/ymq/timestamp.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/disconnect_client.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/graphtask_client.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/graphtask_nested_client.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/images/cat_1.jpg +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/images/cat_2.jpg +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/map_client.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/nested_client.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/readme.md +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/send_object_client.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/simple_client.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/examples/task_capabilities.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/pyproject.toml +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/renovate.json +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/run_cluster.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/run_object_storage_server.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/run_scheduler.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/run_top.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/run_webui.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/run_worker_adapter_native.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/run_worker_adapter_symphony.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/about.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/client/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/client/agent/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/client/agent/client_agent.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/client/agent/disconnect_manager.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/client/agent/future_manager.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/client/agent/heartbeat_manager.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/client/agent/mixins.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/client/agent/object_manager.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/client/agent/task_manager.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/client/client.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/client/future.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/client/object_buffer.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/client/object_reference.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/client/serializer/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/client/serializer/default.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/client/serializer/mixins.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/cluster/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/cluster/cluster.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/cluster/combo.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/cluster/object_storage_server.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/cluster/scheduler.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/config/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/config/defaults.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/config/section/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/config/section/cluster.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/config/section/native_worker_adapter.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/config/section/object_storage_server.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/config/section/scheduler.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/config/section/symphony_worker_adapter.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/config/section/top.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/config/section/webui.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/config/types/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/config/types/object_storage_server.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/entry_points/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/entry_points/cluster.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/entry_points/object_storage_server.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/entry_points/scheduler.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/entry_points/top.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/entry_points/webui.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/entry_points/worker_adapter_native.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/entry_points/worker_adapter_symphony.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/async_binder.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/async_connector.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/async_object_storage_connector.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/mixins.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/sync_connector.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/sync_object_storage_connector.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/sync_subscriber.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/utility.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/_ymq.pyi +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/bytes.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/common.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/configuration.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/epoll_context.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/error.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/event_loop.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/event_loop_thread.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/event_loop_thread.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/event_manager.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/interruptive_concurrent_queue.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/io_context.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/io_context.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/io_socket.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/io_socket.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/iocp_context.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/iocp_context.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/logging.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/message.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/message_connection.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/message_connection_tcp.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/message_connection_tcp.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/network_utils.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/bytes.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/exception.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/gil.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/io_context.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/io_socket.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/message.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/python.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/ymq.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/pymod_ymq/ymq.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/readme.md +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/simple_interface.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/simple_interface.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/tcp_client.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/tcp_client.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/tcp_operations.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/tcp_server.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/tcp_server.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/third_party/concurrentqueue.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/timed_queue.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/timestamp.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/typedefs.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/utils.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/io/ymq/ymq.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/object_storage/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/object_storage/constants.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/object_storage/defs.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/object_storage/io_helper.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/object_storage/io_helper.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/object_storage/message.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/object_storage/message.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/object_storage/object_manager.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/object_storage/object_manager.h +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/protocol/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/protocol/capnp/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/protocol/capnp/_python.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/protocol/capnp/common.capnp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/protocol/capnp/message.capnp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/protocol/capnp/object_storage.capnp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/protocol/capnp/status.capnp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/protocol/introduction.md +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/protocol/python/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/protocol/python/common.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/protocol/python/message.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/protocol/python/mixins.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/protocol/python/object_storage.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/protocol/python/status.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/protocol/worker.md +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/allocate_policy/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/allocate_policy/allocate_policy.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/allocate_policy/capability_allocate_policy.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/allocate_policy/even_load_allocate_policy.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/allocate_policy/mixins.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/balance_controller.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/client_controller.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/config_controller.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/graph_controller.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/information_controller.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/mixins.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/object_controller.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/scaling_controller.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/task_controller.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/controllers/worker_controller.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/object_usage/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/object_usage/object_tracker.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/scheduler.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/task/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/task/task_state_machine.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/scheduler/task/task_state_manager.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/ui/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/ui/constants.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/ui/live_display.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/ui/memory_window.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/ui/setting_page.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/ui/task_graph.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/ui/task_log.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/ui/utility.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/ui/webui.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/ui/worker_processors.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/debug.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/event_list.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/event_loop.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/exceptions.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/formatter.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/graph/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/graph/optimization.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/graph/topological_sorter.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/graph/topological_sorter_graphblas.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/identifiers.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/logging/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/logging/decorators.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/logging/scoped_logger.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/logging/utility.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/many_to_many_dict.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/metadata/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/metadata/profile_result.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/metadata/task_flags.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/mixins.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/network_util.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/one_to_many_dict.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/queues/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/queues/async_indexed_queue.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/queues/async_priority_queue.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/queues/async_sorted_priority_queue.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/queues/indexed_queue.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/utility/serialization.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker/agent/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker/agent/heartbeat_manager.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker/agent/mixins.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker/agent/processor/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker/agent/processor/object_cache.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker/agent/processor/processor.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker/agent/processor/streaming_buffer.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker/agent/processor_holder.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker/agent/processor_manager.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker/agent/profiling_manager.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker/agent/task_manager.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker/agent/timeout_manager.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker/preload.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker/worker.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker_adapter/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker_adapter/native.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker_adapter/symphony/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker_adapter/symphony/callback.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker_adapter/symphony/heartbeat_manager.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker_adapter/symphony/message.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker_adapter/symphony/task_manager.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker_adapter/symphony/worker.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/worker_adapter/symphony/worker_adapter.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scripts/build.sh +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scripts/library_tool.ps1 +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scripts/library_tool.sh +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scripts/test.sh +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/slides/Effortless Distributed Computing in Python - FOSDEM 2025.pdf +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/slides/OSFF 2025 London.pdf +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/cpp/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/cpp/object_storage/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/cpp/object_storage/test_object_manager.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/cpp/object_storage/test_object_storage_server.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/cpp/ymq/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/cpp/ymq/py_mitm/__init__.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/cpp/ymq/py_mitm/passthrough.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/cpp/ymq/py_mitm/randomly_drop_packets.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/cpp/ymq/py_mitm/send_rst_to_client.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/cpp/ymq/py_mitm/types.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/cpp/ymq/test_ymq.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/io/ymq/CMakeLists.txt +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/io/ymq/test_logging.cpp +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_async_indexed_queue.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_async_priority_queue.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_async_sorted_priority_queue.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_balance.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_capabilities.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_capability_allocate_policy.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_client.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_cluster.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_cluster_disconnect.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_death_timeout.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_future.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_graph.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_indexed_queue.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_nested_task.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_object_usage.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_profiling.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_protected.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_scaling.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_serializer.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/test_ui.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/tests/utility.py +0 -0
- {opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/version.h.in +0 -0
|
@@ -103,6 +103,18 @@ find_package(CapnProto CONFIG REQUIRED)
|
|
|
103
103
|
get_target_property(CAPNP_INCLUDE_DIRS CapnProto::capnp INTERFACE_INCLUDE_DIRECTORIES)
|
|
104
104
|
message(STATUS "Found Capnp includes in ${CAPNP_INCLUDE_DIRS}")
|
|
105
105
|
|
|
106
|
+
execute_process(
|
|
107
|
+
COMMAND python3-config --prefix
|
|
108
|
+
OUTPUT_VARIABLE PYTHON_PREFIX
|
|
109
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
110
|
+
)
|
|
111
|
+
set(Python3_ROOT_DIR "${PYTHON_PREFIX}")
|
|
112
|
+
|
|
113
|
+
find_package(Python3 REQUIRED COMPONENTS Development.Module)
|
|
114
|
+
message(STATUS "Python version: ${Python3_VERSION}")
|
|
115
|
+
message(STATUS "Python include dirs: ${Python3_INCLUDE_DIRS}")
|
|
116
|
+
message(STATUS "Python ABI: ${Python3_SOABI}")
|
|
117
|
+
|
|
106
118
|
# Make LSP happy
|
|
107
119
|
include_directories(${CAPNP_INCLUDE_DIRS})
|
|
108
120
|
include_directories(${PROJECT_SOURCE_DIR})
|
|
@@ -42,7 +42,7 @@ int main(int argc, char* argv[])
|
|
|
42
42
|
const std::string_view line = longStr;
|
|
43
43
|
|
|
44
44
|
time_point<system_clock> start = system_clock::now();
|
|
45
|
-
for (
|
|
45
|
+
for (size_t cnt = 0; cnt < msgCnt; ++cnt) {
|
|
46
46
|
Message message {};
|
|
47
47
|
message.payload = Bytes {const_cast<char*>(line.data()), line.size()};
|
|
48
48
|
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import argparse
|
|
2
2
|
import dataclasses
|
|
3
3
|
import enum
|
|
4
|
+
import sys
|
|
4
5
|
from typing import Any, cast, Dict, Optional, Type, TypeVar, Union, get_args, get_origin
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
if sys.version_info >= (3, 11):
|
|
7
8
|
import tomllib
|
|
8
|
-
|
|
9
|
+
else:
|
|
9
10
|
import tomli as tomllib
|
|
10
11
|
|
|
11
12
|
from scaler.config.mixins import ConfigType
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import dataclasses
|
|
2
|
+
import sys
|
|
2
3
|
from typing import List, Dict
|
|
3
|
-
|
|
4
|
+
|
|
5
|
+
if sys.version_info >= (3, 11):
|
|
6
|
+
from typing import Self
|
|
7
|
+
else:
|
|
8
|
+
from typing_extensions import Self
|
|
4
9
|
|
|
5
10
|
from scaler.config.mixins import ConfigType
|
|
6
11
|
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import dataclasses
|
|
2
2
|
import enum
|
|
3
|
+
import sys
|
|
3
4
|
from typing import Optional
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
if sys.version_info >= (3, 11):
|
|
7
|
+
from typing import Self
|
|
8
|
+
else:
|
|
9
|
+
from typing_extensions import Self
|
|
6
10
|
from scaler.config.mixins import ConfigType
|
|
7
11
|
|
|
8
12
|
|
|
@@ -58,7 +58,6 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/scaler/io/ymq)
|
|
|
58
58
|
|
|
59
59
|
if(LINUX)
|
|
60
60
|
# ymq python =======================================================================================================
|
|
61
|
-
find_package(Python3 COMPONENTS Development.Module REQUIRED)
|
|
62
61
|
|
|
63
62
|
add_library(py_ymq SHARED
|
|
64
63
|
pymod_ymq/bytes.h
|
|
@@ -21,8 +21,6 @@ add_library(object_storage_server_objs OBJECT
|
|
|
21
21
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/scaler/object_storage)
|
|
22
22
|
|
|
23
23
|
# object_storage_server python =========================================================================================
|
|
24
|
-
find_package(Python3 REQUIRED COMPONENTS Development.Module)
|
|
25
|
-
|
|
26
24
|
add_library(py_object_storage_server MODULE
|
|
27
25
|
pymod_object_storage_server.cpp
|
|
28
26
|
)
|
{opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/object_storage/object_storage_server.cpp
RENAMED
|
@@ -29,7 +29,8 @@ void ObjectStorageServer::run(
|
|
|
29
29
|
ObjectStorageServer::Identity identity,
|
|
30
30
|
std::string log_level,
|
|
31
31
|
std::string log_format,
|
|
32
|
-
std::vector<std::string> log_paths
|
|
32
|
+
std::vector<std::string> log_paths,
|
|
33
|
+
std::function<bool()> running)
|
|
33
34
|
{
|
|
34
35
|
_logger = scaler::ymq::Logger(log_format, std::move(log_paths), scaler::ymq::Logger::stringToLogLevel(log_level));
|
|
35
36
|
|
|
@@ -44,7 +45,7 @@ void ObjectStorageServer::run(
|
|
|
44
45
|
|
|
45
46
|
_logger.log(scaler::ymq::Logger::LoggingLevel::info, "ObjectStorageServer: started");
|
|
46
47
|
|
|
47
|
-
processRequests();
|
|
48
|
+
processRequests(running);
|
|
48
49
|
|
|
49
50
|
_ioContext.removeIOSocket(_ioSocket);
|
|
50
51
|
} catch (const std::exception& e) {
|
|
@@ -117,7 +118,7 @@ void ObjectStorageServer::closeServerReadyFds()
|
|
|
117
118
|
}
|
|
118
119
|
}
|
|
119
120
|
|
|
120
|
-
void ObjectStorageServer::processRequests()
|
|
121
|
+
void ObjectStorageServer::processRequests(std::function<bool()> running)
|
|
121
122
|
{
|
|
122
123
|
using namespace std::chrono_literals;
|
|
123
124
|
Identity lastMessageIdentity;
|
|
@@ -134,7 +135,13 @@ void ObjectStorageServer::processRequests()
|
|
|
134
135
|
}
|
|
135
136
|
});
|
|
136
137
|
|
|
137
|
-
auto
|
|
138
|
+
auto maybeMessageFuture = ymq::futureRecvMessage(_ioSocket);
|
|
139
|
+
while (maybeMessageFuture.wait_for(100ms) == std::future_status::timeout) {
|
|
140
|
+
if (!running()) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
auto maybeMessage = maybeMessageFuture.get();
|
|
138
145
|
|
|
139
146
|
if (!maybeMessage) {
|
|
140
147
|
auto error = maybeMessage.error();
|
{opengris_scaler-1.12.7 → opengris_scaler-1.12.9}/scaler/object_storage/object_storage_server.h
RENAMED
|
@@ -35,7 +35,8 @@ public:
|
|
|
35
35
|
Identity identity = "ObjectStorageServer",
|
|
36
36
|
std::string log_level = "INFO",
|
|
37
37
|
std::string log_format = "%(levelname)s: %(message)s",
|
|
38
|
-
std::vector<std::string> log_paths = {"/dev/stdout"}
|
|
38
|
+
std::vector<std::string> log_paths = {"/dev/stdout"},
|
|
39
|
+
std::function<bool()> running = []() { return true; });
|
|
39
40
|
|
|
40
41
|
void waitUntilReady();
|
|
41
42
|
|
|
@@ -78,7 +79,7 @@ private:
|
|
|
78
79
|
|
|
79
80
|
void closeServerReadyFds();
|
|
80
81
|
|
|
81
|
-
void processRequests();
|
|
82
|
+
void processRequests(std::function<bool()> stopCondition);
|
|
82
83
|
|
|
83
84
|
void processSetRequest(std::shared_ptr<Client> client, std::pair<ObjectRequestHeader, Bytes> request);
|
|
84
85
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
#define PY_SSIZE_T_CLEAN
|
|
2
2
|
#include <Python.h>
|
|
3
|
+
#include <pyerrors.h>
|
|
3
4
|
|
|
5
|
+
#include "scaler/io/ymq/pymod_ymq/gil.h"
|
|
4
6
|
#include "scaler/object_storage/object_storage_server.h"
|
|
5
7
|
|
|
6
8
|
extern "C" {
|
|
@@ -52,10 +54,19 @@ static PyObject* PyObjectStorageServerRun(PyObject* self, PyObject* args)
|
|
|
52
54
|
logging_paths.push_back(PyUnicode_AsUTF8(path_obj));
|
|
53
55
|
}
|
|
54
56
|
|
|
57
|
+
auto running = []() -> bool {
|
|
58
|
+
AcquireGIL gil;
|
|
59
|
+
(void)gil;
|
|
60
|
+
return PyErr_CheckSignals() == 0;
|
|
61
|
+
};
|
|
62
|
+
|
|
55
63
|
((PyObjectStorageServer*)self)
|
|
56
|
-
->server.run(
|
|
64
|
+
->server.run(
|
|
65
|
+
addr, std::to_string(port), identity, log_level, log_format, std::move(logging_paths), std::move(running));
|
|
57
66
|
|
|
58
|
-
|
|
67
|
+
// TODO: Ideally, run should return a bool and we return failure with nullptr.
|
|
68
|
+
return nullptr;
|
|
69
|
+
// Py_RETURN_NONE;
|
|
59
70
|
}
|
|
60
71
|
|
|
61
72
|
static PyObject* PyObjectStorageServerWaitUntilReady(PyObject* self, [[maybe_unused]] PyObject* args)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.12.9
|
|
@@ -28,12 +28,10 @@
|
|
|
28
28
|
#include <ctime>
|
|
29
29
|
#include <exception>
|
|
30
30
|
#include <filesystem>
|
|
31
|
-
#include <format>
|
|
32
31
|
#include <functional>
|
|
33
32
|
#include <iostream>
|
|
34
33
|
#include <optional>
|
|
35
34
|
#include <print>
|
|
36
|
-
#include <stdexcept>
|
|
37
35
|
#include <string>
|
|
38
36
|
#include <system_error>
|
|
39
37
|
#include <thread>
|
|
@@ -471,13 +469,26 @@ inline TestResult run_python(const char* path, std::vector<const wchar_t*> argv
|
|
|
471
469
|
if (PyStatus_Exception(status))
|
|
472
470
|
goto exception;
|
|
473
471
|
|
|
472
|
+
argv.insert(argv.begin(), L"mitm");
|
|
473
|
+
status = PyConfig_SetArgv(&config, argv.size(), (wchar_t**)argv.data());
|
|
474
|
+
if (PyStatus_Exception(status))
|
|
475
|
+
goto exception;
|
|
476
|
+
|
|
477
|
+
// pass argv to the script as-is
|
|
478
|
+
config.parse_argv = 0;
|
|
479
|
+
|
|
474
480
|
status = Py_InitializeFromConfig(&config);
|
|
475
481
|
if (PyStatus_Exception(status))
|
|
476
482
|
goto exception;
|
|
477
483
|
PyConfig_Clear(&config);
|
|
478
484
|
|
|
479
|
-
|
|
480
|
-
|
|
485
|
+
// add the cwd to the path
|
|
486
|
+
{
|
|
487
|
+
PyObject* sysPath = PySys_GetObject("path");
|
|
488
|
+
PyObject* newPath = PyUnicode_FromString(".");
|
|
489
|
+
PyList_Append(sysPath, newPath);
|
|
490
|
+
Py_DECREF(newPath);
|
|
491
|
+
}
|
|
481
492
|
|
|
482
493
|
{
|
|
483
494
|
auto file = fopen(path, "r");
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import tempfile
|
|
3
|
+
import unittest
|
|
4
|
+
from argparse import Namespace
|
|
5
|
+
|
|
6
|
+
from scaler.config.loader import load_config
|
|
7
|
+
from scaler.config.section.cluster import ClusterConfig
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TestClusterConfig(unittest.TestCase):
|
|
11
|
+
"""Tests for the ClusterConfig class."""
|
|
12
|
+
|
|
13
|
+
def setUp(self):
|
|
14
|
+
self.temp_dir = tempfile.TemporaryDirectory()
|
|
15
|
+
self.config_path = os.path.join(self.temp_dir.name, "cluster.toml")
|
|
16
|
+
with open(self.config_path, "w") as f:
|
|
17
|
+
f.write(
|
|
18
|
+
"""
|
|
19
|
+
scheduler_address = "tcp://127.0.0.1:5555"
|
|
20
|
+
num_of_workers = 2
|
|
21
|
+
worker_names = "w1,w2"
|
|
22
|
+
"""
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
def tearDown(self):
|
|
26
|
+
self.temp_dir.cleanup()
|
|
27
|
+
|
|
28
|
+
def test_load_from_toml_only(self):
|
|
29
|
+
"""Test loading ClusterConfig from a flat TOML file."""
|
|
30
|
+
config = load_config(ClusterConfig, self.config_path, Namespace())
|
|
31
|
+
self.assertEqual(str(config.scheduler_address), "tcp://127.0.0.1:5555")
|
|
32
|
+
self.assertEqual(config.num_of_workers, 2)
|
|
33
|
+
self.assertEqual(config.worker_names.names, ["w1", "w2"])
|
|
34
|
+
|
|
35
|
+
def test_command_line_overrides_toml(self):
|
|
36
|
+
"""Test that argparse args correctly override TOML values for ClusterConfig."""
|
|
37
|
+
worker_list = [f"worker_{i}" for i in range(20)]
|
|
38
|
+
args = Namespace(num_of_workers=20, worker_names=",".join(worker_list), heartbeat_interval_seconds=99)
|
|
39
|
+
|
|
40
|
+
config = load_config(ClusterConfig, self.config_path, args)
|
|
41
|
+
|
|
42
|
+
self.assertEqual(config.num_of_workers, 20)
|
|
43
|
+
self.assertEqual(config.worker_names.names, worker_list)
|
|
44
|
+
self.assertEqual(config.heartbeat_interval_seconds, 99)
|
|
45
|
+
self.assertEqual(str(config.scheduler_address), "tcp://127.0.0.1:5555")
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
if __name__ == "__main__":
|
|
49
|
+
unittest.main()
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import unittest
|
|
2
|
+
|
|
3
|
+
from scaler.config.types.worker import WorkerCapabilities, WorkerNames
|
|
4
|
+
from scaler.config.types.zmq import ZMQConfig
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class TestConfigTypes(unittest.TestCase):
|
|
8
|
+
"""Tests for individual ConfigType helper classes."""
|
|
9
|
+
|
|
10
|
+
def test_zmq_config_validation(self):
|
|
11
|
+
"""Test ZMQConfig.from_string raises ValueError for malformed strings."""
|
|
12
|
+
with self.assertRaises(ValueError):
|
|
13
|
+
ZMQConfig.from_string("this-is-not-a-valid-address")
|
|
14
|
+
with self.assertRaises(ValueError):
|
|
15
|
+
ZMQConfig.from_string("tcp://127.0.0.1")
|
|
16
|
+
with self.assertRaises(ValueError):
|
|
17
|
+
ZMQConfig.from_string("badprotocol://127.0.0.1:1234")
|
|
18
|
+
|
|
19
|
+
cfg = ZMQConfig.from_string("ipc://a-valid-path")
|
|
20
|
+
self.assertEqual(cfg.host, "a-valid-path")
|
|
21
|
+
|
|
22
|
+
def test_worker_names_config_value(self):
|
|
23
|
+
"""Test the WorkerNames ConfigType class."""
|
|
24
|
+
wn = WorkerNames.from_string(" worker1 , worker2 ")
|
|
25
|
+
self.assertEqual(wn.names, ["worker1", "worker2"])
|
|
26
|
+
self.assertEqual(str(wn), "worker1,worker2")
|
|
27
|
+
self.assertEqual(len(wn), 2)
|
|
28
|
+
wn_empty = WorkerNames.from_string("")
|
|
29
|
+
self.assertEqual(wn_empty.names, [])
|
|
30
|
+
|
|
31
|
+
def test_worker_capabilities_config_value(self):
|
|
32
|
+
"""Test the WorkerCapabilities ConfigType class."""
|
|
33
|
+
wc = WorkerCapabilities.from_string(" gpu=2, linux ")
|
|
34
|
+
self.assertEqual(wc.capabilities, {"gpu": 2, "linux": -1})
|
|
35
|
+
self.assertIn("gpu=2", str(wc))
|
|
36
|
+
self.assertIn("linux", str(wc))
|
|
37
|
+
|
|
38
|
+
def test_worker_capabilities_invalid_input(self):
|
|
39
|
+
"""Test that WorkerCapabilities raises an error for non-integer values."""
|
|
40
|
+
with self.assertRaises(ValueError):
|
|
41
|
+
WorkerCapabilities.from_string("gpu=two")
|
|
42
|
+
|
|
43
|
+
def test_worker_capabilities_invalid_value_in_string(self):
|
|
44
|
+
"""Test that WorkerCapabilities.from_string raises a helpful ValueError for non-integer values."""
|
|
45
|
+
with self.assertRaisesRegex(ValueError, "Expected an integer, but got 'MostPowerful'"):
|
|
46
|
+
WorkerCapabilities.from_string("linux,cpu=MostPowerful")
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
if __name__ == "__main__":
|
|
50
|
+
unittest.main()
|
opengris_scaler-1.12.7/tests/test_config.py → opengris_scaler-1.12.9/tests/test_scheduler_config.py
RENAMED
|
@@ -3,58 +3,13 @@ import tempfile
|
|
|
3
3
|
import unittest
|
|
4
4
|
from argparse import Namespace
|
|
5
5
|
|
|
6
|
-
from scaler.config
|
|
6
|
+
from scaler.config import defaults
|
|
7
7
|
from scaler.config.loader import load_config
|
|
8
8
|
from scaler.config.section.scheduler import SchedulerConfig
|
|
9
9
|
from scaler.config.types.object_storage_server import ObjectStorageConfig
|
|
10
|
-
from scaler.config.types.worker import WorkerCapabilities, WorkerNames
|
|
11
|
-
from scaler.config.types.zmq import ZMQConfig
|
|
12
|
-
from scaler.config import defaults
|
|
13
10
|
from scaler.scheduler.allocate_policy.allocate_policy import AllocatePolicy
|
|
14
11
|
|
|
15
12
|
|
|
16
|
-
class TestConfigTypes(unittest.TestCase):
|
|
17
|
-
"""Tests for individual ConfigType helper classes."""
|
|
18
|
-
|
|
19
|
-
def test_zmq_config_validation(self):
|
|
20
|
-
"""Test ZMQConfig.from_string raises ValueError for malformed strings."""
|
|
21
|
-
with self.assertRaises(ValueError):
|
|
22
|
-
ZMQConfig.from_string("this-is-not-a-valid-address")
|
|
23
|
-
with self.assertRaises(ValueError):
|
|
24
|
-
ZMQConfig.from_string("tcp://127.0.0.1")
|
|
25
|
-
with self.assertRaises(ValueError):
|
|
26
|
-
ZMQConfig.from_string("badprotocol://127.0.0.1:1234")
|
|
27
|
-
|
|
28
|
-
cfg = ZMQConfig.from_string("ipc://a-valid-path")
|
|
29
|
-
self.assertEqual(cfg.host, "a-valid-path")
|
|
30
|
-
|
|
31
|
-
def test_worker_names_config_value(self):
|
|
32
|
-
"""Test the WorkerNames ConfigType class."""
|
|
33
|
-
wn = WorkerNames.from_string(" worker1 , worker2 ")
|
|
34
|
-
self.assertEqual(wn.names, ["worker1", "worker2"])
|
|
35
|
-
self.assertEqual(str(wn), "worker1,worker2")
|
|
36
|
-
self.assertEqual(len(wn), 2)
|
|
37
|
-
wn_empty = WorkerNames.from_string("")
|
|
38
|
-
self.assertEqual(wn_empty.names, [])
|
|
39
|
-
|
|
40
|
-
def test_worker_capabilities_config_value(self):
|
|
41
|
-
"""Test the WorkerCapabilities ConfigType class."""
|
|
42
|
-
wc = WorkerCapabilities.from_string(" gpu=2, linux ")
|
|
43
|
-
self.assertEqual(wc.capabilities, {"gpu": 2, "linux": -1})
|
|
44
|
-
self.assertIn("gpu=2", str(wc))
|
|
45
|
-
self.assertIn("linux", str(wc))
|
|
46
|
-
|
|
47
|
-
def test_worker_capabilities_invalid_input(self):
|
|
48
|
-
"""Test that WorkerCapabilities raises an error for non-integer values."""
|
|
49
|
-
with self.assertRaises(ValueError):
|
|
50
|
-
WorkerCapabilities.from_string("gpu=two")
|
|
51
|
-
|
|
52
|
-
def test_worker_capabilities_invalid_value_in_string(self):
|
|
53
|
-
"""Test that WorkerCapabilities.from_string raises a helpful ValueError for non-integer values."""
|
|
54
|
-
with self.assertRaisesRegex(ValueError, "Expected an integer, but got 'MostPowerful'"):
|
|
55
|
-
WorkerCapabilities.from_string("linux,cpu=MostPowerful")
|
|
56
|
-
|
|
57
|
-
|
|
58
13
|
class TestSchedulerConfig(unittest.TestCase):
|
|
59
14
|
"""Tests for the SchedulerConfig class."""
|
|
60
15
|
|
|
@@ -136,44 +91,5 @@ allocate_policy = "even"
|
|
|
136
91
|
self.assertEqual(config.logging_paths, ("/var/log/scaler.log", "/dev/stdout"))
|
|
137
92
|
|
|
138
93
|
|
|
139
|
-
class TestClusterConfig(unittest.TestCase):
|
|
140
|
-
"""Tests for the ClusterConfig class."""
|
|
141
|
-
|
|
142
|
-
def setUp(self):
|
|
143
|
-
self.temp_dir = tempfile.TemporaryDirectory()
|
|
144
|
-
self.config_path = os.path.join(self.temp_dir.name, "cluster.toml")
|
|
145
|
-
with open(self.config_path, "w") as f:
|
|
146
|
-
f.write(
|
|
147
|
-
"""
|
|
148
|
-
scheduler_address = "tcp://127.0.0.1:5555"
|
|
149
|
-
# FIX: Changed num_of_workers to match the number of worker_names
|
|
150
|
-
num_of_workers = 2
|
|
151
|
-
worker_names = "w1,w2"
|
|
152
|
-
"""
|
|
153
|
-
)
|
|
154
|
-
|
|
155
|
-
def tearDown(self):
|
|
156
|
-
self.temp_dir.cleanup()
|
|
157
|
-
|
|
158
|
-
def test_load_from_toml_only(self):
|
|
159
|
-
"""Test loading ClusterConfig from a flat TOML file."""
|
|
160
|
-
config = load_config(ClusterConfig, self.config_path, Namespace())
|
|
161
|
-
self.assertEqual(str(config.scheduler_address), "tcp://127.0.0.1:5555")
|
|
162
|
-
self.assertEqual(config.num_of_workers, 2)
|
|
163
|
-
self.assertEqual(config.worker_names.names, ["w1", "w2"])
|
|
164
|
-
|
|
165
|
-
def test_command_line_overrides_toml(self):
|
|
166
|
-
"""Test that argparse args correctly override TOML values for ClusterConfig."""
|
|
167
|
-
worker_list = [f"worker_{i}" for i in range(20)]
|
|
168
|
-
args = Namespace(num_of_workers=20, worker_names=",".join(worker_list), heartbeat_interval_seconds=99)
|
|
169
|
-
|
|
170
|
-
config = load_config(ClusterConfig, self.config_path, args)
|
|
171
|
-
|
|
172
|
-
self.assertEqual(config.num_of_workers, 20)
|
|
173
|
-
self.assertEqual(config.worker_names.names, worker_list)
|
|
174
|
-
self.assertEqual(config.heartbeat_interval_seconds, 99)
|
|
175
|
-
self.assertEqual(str(config.scheduler_address), "tcp://127.0.0.1:5555")
|
|
176
|
-
|
|
177
|
-
|
|
178
94
|
if __name__ == "__main__":
|
|
179
95
|
unittest.main()
|