runtimepy 5.9.1__tar.gz → 5.10.0__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.
- {runtimepy-5.9.1/runtimepy.egg-info → runtimepy-5.10.0}/PKG-INFO +6 -6
- {runtimepy-5.9.1 → runtimepy-5.10.0}/README.md +2 -2
- {runtimepy-5.9.1 → runtimepy-5.10.0}/pyproject.toml +1 -1
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/__init__.py +2 -2
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/dummy_load.yaml +1 -2
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/factories.yaml +1 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/PeerProcessConfig.yaml +1 -2
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/message/__init__.py +18 -2
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/sample/program.py +5 -1
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/subprocess/program.py +10 -8
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/task/basic/periodic.py +8 -1
- {runtimepy-5.9.1 → runtimepy-5.10.0/runtimepy.egg-info}/PKG-INFO +6 -6
- {runtimepy-5.9.1 → runtimepy-5.10.0}/LICENSE +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/__main__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/app.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/channel/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/channel/environment/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/channel/environment/array.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/channel/environment/base.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/channel/environment/command/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/channel/environment/command/parser.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/channel/environment/command/processor.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/channel/environment/command/result.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/channel/environment/create.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/channel/environment/file.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/channel/environment/sample.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/channel/environment/telemetry.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/channel/event/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/channel/event/header.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/channel/registry.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/codec/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/codec/protocol/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/codec/protocol/base.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/codec/protocol/json.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/codec/system/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/commands/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/commands/all.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/commands/arbiter.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/commands/common.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/commands/mtu.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/commands/server.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/commands/task.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/commands/tftp.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/commands/tui.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/control/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/control/env/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/control/source.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/control/step.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/404.html +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/browser.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/css/bootstrap_extra.css +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/css/font.css +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/css/main.css +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/favicon.ico +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/DataConnection.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/JsonConnection.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/audio.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/classes/App.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/classes/ChannelTable.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/classes/DataConnection.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/classes/JsonConnection.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/classes/OverlayManager.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/classes/Plot.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/classes/PlotDrawer.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/classes/PlotManager.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/classes/PlotModalManager.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/classes/PointBuffer.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/classes/PointManager.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/classes/TabFilter.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/classes/TabInterface.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/classes/UnitSystem.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/classes/WindowHashManager.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/classes/WorkerInterface.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/events.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/init.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/main.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/markdown_page.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/tab/env.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/tab/sound.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/third-party/webgl-debug.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/unused/pyodide.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/util.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/js/worker.js +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/md/Connection.md +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/md/PeriodicTask.md +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/md/RuntimeStruct.md +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/md/RuntimepyPeer.md +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/md/SinusoidTask.md +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/sample_telemetry.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/BitFields.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/Channel.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/ChannelCommand.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/ChannelRegistry.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/ClientConnectionConfig.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/ConnectionArbiterConfig.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/EnumRegistry.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/FindFile.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/RuntimeEnum.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/ServerConnectionConfig.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/StructConfig.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/TaskConfig.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/channel_controls.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/has_config.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/has_factory.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/has_markdown.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/has_name.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/schemas/has_request_flag.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/server.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/server_base.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/server_dev.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/static/svg/chip-circle-bootstrap.svg +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/static/woff2/CascadiaCode-Bold.woff2 +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/static/woff2/CascadiaCode-BoldItalic.woff2 +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/static/woff2/CascadiaCode-Italic.woff2 +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/static/woff2/CascadiaCode-Regular.woff2 +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/static/woff2/CascadiaMono-Bold.woff2 +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/static/woff2/CascadiaMono-BoldItalic.woff2 +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/static/woff2/CascadiaMono-Italic.woff2 +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/static/woff2/CascadiaMono-Regular.woff2 +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/static/woff2/README.md +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/tftp_server.yaml +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/dev_requirements.txt +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/entry.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/enum/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/enum/registry.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/enum/types.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/mapping.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/message/handlers.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/message/interface.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/message/types.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/metrics/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/metrics/channel.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/metrics/connection.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/metrics/task.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/mixins/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/mixins/async_command.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/mixins/enum.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/mixins/environment.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/mixins/finalize.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/mixins/logging.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/mixins/psutil.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/mixins/regex.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/mixins/trig.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/apps/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/base.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/config/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/config/codec.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/config/util.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/factory/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/factory/connection.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/factory/task.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/housekeeping/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/imports/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/imports/util.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/info.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/result.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/struct/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/task.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/tcp/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/tcp/json.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/udp.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/arbiter/websocket.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/backoff.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/connection.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/factories/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/html/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/html/arbiter.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/html/bootstrap/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/html/bootstrap/elements.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/html/bootstrap/tabs.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/http/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/http/common.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/http/header.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/http/request_target.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/http/response.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/http/state.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/http/version.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/manager.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/mixin.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/mtu.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/base.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/create.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/elements.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/env/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/env/modal.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/env/settings.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/env/tab/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/env/tab/base.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/env/tab/controls.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/env/tab/html.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/env/tab/message.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/env/widgets.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/files.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/landing_page.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/placeholder.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/pyodide.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/sound.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/app/tab.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/html.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/json.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/struct/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/websocket/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/server/websocket/state.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/ssl.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/stream/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/stream/base.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/stream/json/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/stream/string.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/tcp/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/tcp/connection.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/tcp/create.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/tcp/http/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/tcp/protocol.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/tcp/scpi/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/tcp/telnet/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/tcp/telnet/codes.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/tcp/telnet/np_05b.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/udp/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/udp/connection.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/udp/create.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/udp/protocol.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/udp/queue.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/udp/tftp/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/udp/tftp/base.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/udp/tftp/endpoint.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/udp/tftp/enums.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/udp/tftp/io.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/util.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/websocket/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/net/websocket/connection.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/noise/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/array/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/base.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/bool.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/byte_order.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/evaluation.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/field/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/field/fields.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/field/manager/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/field/manager/base.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/float.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/int.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/scaling.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/serializable/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/serializable/base.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/serializable/fixed.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/serializable/framer.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/serializable/prefixed.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/string.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/types/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/types/base.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/types/bool.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/types/bounds.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/types/float.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/primitives/types/int.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/py.typed +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/registry/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/registry/bool.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/registry/item.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/registry/name.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/requirements.txt +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/sample/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/sample/peer.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/schemas.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/struct/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/subprocess/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/subprocess/interface.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/subprocess/peer.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/subprocess/protocol.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/task/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/task/asynchronous.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/task/basic/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/task/basic/manager.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/task/sample.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/task/trig/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/telemetry/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/telemetry/sample.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/tui/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/tui/channels/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/tui/cursor.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/tui/mixin.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/tui/mock.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/tui/task.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/ui/__init__.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/ui/controls.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/util.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy.egg-info/SOURCES.txt +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy.egg-info/dependency_links.txt +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy.egg-info/entry_points.txt +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy.egg-info/requires.txt +3 -3
- {runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy.egg-info/top_level.txt +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/setup.cfg +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/setup.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/tests/test_entry.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/tests/test_mapping.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/tests/test_resources.py +0 -0
- {runtimepy-5.9.1 → runtimepy-5.10.0}/tests/test_util.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: runtimepy
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.10.0
|
|
4
4
|
Summary: A framework for implementing Python services.
|
|
5
5
|
Home-page: https://github.com/vkottler/runtimepy
|
|
6
6
|
Author: Vaughn Kottler
|
|
@@ -17,11 +17,11 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
17
17
|
Requires-Python: >=3.12
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: LICENSE
|
|
20
|
-
Requires-Dist: websockets
|
|
21
|
-
Requires-Dist: psutil
|
|
22
20
|
Requires-Dist: svgen>=0.7.4
|
|
23
|
-
Requires-Dist:
|
|
21
|
+
Requires-Dist: websockets
|
|
24
22
|
Requires-Dist: vcorelib>=3.5.1
|
|
23
|
+
Requires-Dist: aiofiles
|
|
24
|
+
Requires-Dist: psutil
|
|
25
25
|
Provides-Extra: test
|
|
26
26
|
Requires-Dist: pylint; extra == "test"
|
|
27
27
|
Requires-Dist: flake8; extra == "test"
|
|
@@ -49,11 +49,11 @@ Dynamic: requires-python
|
|
|
49
49
|
=====================================
|
|
50
50
|
generator=datazen
|
|
51
51
|
version=3.1.4
|
|
52
|
-
hash=
|
|
52
|
+
hash=cbacac02049e2f568e5ebad3cc428033
|
|
53
53
|
=====================================
|
|
54
54
|
-->
|
|
55
55
|
|
|
56
|
-
# runtimepy ([5.
|
|
56
|
+
# runtimepy ([5.10.0](https://pypi.org/project/runtimepy/))
|
|
57
57
|
|
|
58
58
|
[](https://pypi.org/project/runtimepy/)
|
|
59
59
|

|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
=====================================
|
|
3
3
|
generator=datazen
|
|
4
4
|
version=3.1.4
|
|
5
|
-
hash=
|
|
5
|
+
hash=cbacac02049e2f568e5ebad3cc428033
|
|
6
6
|
=====================================
|
|
7
7
|
-->
|
|
8
8
|
|
|
9
|
-
# runtimepy ([5.
|
|
9
|
+
# runtimepy ([5.10.0](https://pypi.org/project/runtimepy/))
|
|
10
10
|
|
|
11
11
|
[](https://pypi.org/project/runtimepy/)
|
|
12
12
|

|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# =====================================
|
|
2
2
|
# generator=datazen
|
|
3
3
|
# version=3.1.4
|
|
4
|
-
# hash=
|
|
4
|
+
# hash=a9a53fbeb974140d3611fecadbce5da4
|
|
5
5
|
# =====================================
|
|
6
6
|
|
|
7
7
|
"""
|
|
@@ -10,7 +10,7 @@ Useful defaults and other package metadata.
|
|
|
10
10
|
|
|
11
11
|
DESCRIPTION = "A framework for implementing Python services."
|
|
12
12
|
PKG_NAME = "runtimepy"
|
|
13
|
-
VERSION = "5.
|
|
13
|
+
VERSION = "5.10.0"
|
|
14
14
|
|
|
15
15
|
# runtimepy-specific content.
|
|
16
16
|
METRICS_NAME = "metrics"
|
|
@@ -98,10 +98,9 @@ processes:
|
|
|
98
98
|
|
|
99
99
|
# The peer itself runs an arbiter process.
|
|
100
100
|
config:
|
|
101
|
+
config: *cfg
|
|
101
102
|
includes:
|
|
102
103
|
- package://runtimepy/server.yaml
|
|
103
|
-
|
|
104
104
|
app: runtimepy.sample.program.run
|
|
105
|
-
config: *cfg
|
|
106
105
|
|
|
107
106
|
program: runtimepy.sample.program.SampleProgram
|
|
@@ -4,7 +4,7 @@ A module implementing a message-stream processing interface.
|
|
|
4
4
|
|
|
5
5
|
# built-in
|
|
6
6
|
from io import BytesIO as _BytesIO
|
|
7
|
-
from json import dumps, loads
|
|
7
|
+
from json import JSONEncoder, dumps, loads
|
|
8
8
|
from typing import Any
|
|
9
9
|
from typing import Iterator as _Iterator
|
|
10
10
|
|
|
@@ -18,6 +18,18 @@ from runtimepy.primitives.byte_order import DEFAULT_BYTE_ORDER, ByteOrder
|
|
|
18
18
|
JsonMessage = dict[str, Any]
|
|
19
19
|
|
|
20
20
|
|
|
21
|
+
class StrFallbackJSONEncoder(JSONEncoder):
|
|
22
|
+
"""Custom JSON encoder."""
|
|
23
|
+
|
|
24
|
+
def default(self, o):
|
|
25
|
+
"""Use a string conversion if necessary."""
|
|
26
|
+
|
|
27
|
+
try:
|
|
28
|
+
return super().default(o)
|
|
29
|
+
except TypeError:
|
|
30
|
+
return str(o)
|
|
31
|
+
|
|
32
|
+
|
|
21
33
|
class MessageProcessor:
|
|
22
34
|
"""A class for parsing size-delimited messages."""
|
|
23
35
|
|
|
@@ -48,7 +60,11 @@ class MessageProcessor:
|
|
|
48
60
|
|
|
49
61
|
def encode_json(self, stream: _BytesIO, data: JsonMessage) -> None:
|
|
50
62
|
"""Encode a message as JSON."""
|
|
51
|
-
|
|
63
|
+
|
|
64
|
+
self.encode(
|
|
65
|
+
stream,
|
|
66
|
+
dumps(data, cls=StrFallbackJSONEncoder, separators=(",", ":")),
|
|
67
|
+
)
|
|
52
68
|
|
|
53
69
|
def messages(self, data: bytes) -> _Iterator[JsonMessage]:
|
|
54
70
|
"""Iterate over incoming messages."""
|
|
@@ -9,13 +9,15 @@ import asyncio
|
|
|
9
9
|
from vcorelib.math import RateLimiter
|
|
10
10
|
|
|
11
11
|
# internal
|
|
12
|
-
from runtimepy.net.arbiter.info import AppInfo
|
|
12
|
+
from runtimepy.net.arbiter.info import AppInfo, SampleStruct
|
|
13
13
|
from runtimepy.subprocess.program import PeerProgram
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class SampleProgram(PeerProgram):
|
|
17
17
|
"""A sample peer program."""
|
|
18
18
|
|
|
19
|
+
struct_type = SampleStruct
|
|
20
|
+
|
|
19
21
|
stderr_task: asyncio.Task[None]
|
|
20
22
|
|
|
21
23
|
async def log_message_sender(
|
|
@@ -91,4 +93,6 @@ async def run(app: AppInfo) -> int:
|
|
|
91
93
|
|
|
92
94
|
await prog.wait_json({"a": 1, "b": 2, "c": 3})
|
|
93
95
|
|
|
96
|
+
await app.stop.wait()
|
|
97
|
+
|
|
94
98
|
return 0
|
|
@@ -20,7 +20,7 @@ from vcorelib.paths.context import tempfile
|
|
|
20
20
|
from runtimepy.metrics.channel import ChannelMetrics
|
|
21
21
|
from runtimepy.mixins.psutil import PsutilMixin
|
|
22
22
|
from runtimepy.net.arbiter import ConnectionArbiter
|
|
23
|
-
from runtimepy.net.arbiter.info import RuntimeStruct
|
|
23
|
+
from runtimepy.net.arbiter.info import RuntimeStruct
|
|
24
24
|
from runtimepy.subprocess.interface import RuntimepyPeerInterface
|
|
25
25
|
|
|
26
26
|
T = TypeVar("T", bound="PeerProgram")
|
|
@@ -34,7 +34,7 @@ class PeerProgram(RuntimepyPeerInterface, PsutilMixin):
|
|
|
34
34
|
stream_output: BinaryIO
|
|
35
35
|
stream_metrics: ChannelMetrics
|
|
36
36
|
|
|
37
|
-
struct_type: Type[RuntimeStruct] =
|
|
37
|
+
struct_type: Type[RuntimeStruct] = RuntimeStruct
|
|
38
38
|
|
|
39
39
|
got_eof: asyncio.Event
|
|
40
40
|
|
|
@@ -71,7 +71,7 @@ class PeerProgram(RuntimepyPeerInterface, PsutilMixin):
|
|
|
71
71
|
prev_poll_time = loop.time()
|
|
72
72
|
|
|
73
73
|
with suppress(asyncio.CancelledError):
|
|
74
|
-
while
|
|
74
|
+
while not self.got_eof.is_set():
|
|
75
75
|
# Perform heartbeat.
|
|
76
76
|
if self._peer_env_event.is_set():
|
|
77
77
|
self.stderr_metrics.update(self.stream_metrics)
|
|
@@ -90,6 +90,8 @@ class PeerProgram(RuntimepyPeerInterface, PsutilMixin):
|
|
|
90
90
|
async def io_task(self, buffer: BinaryIO) -> None:
|
|
91
91
|
"""Run this peer program's main loop."""
|
|
92
92
|
|
|
93
|
+
self.got_eof.clear()
|
|
94
|
+
|
|
93
95
|
# Allow polling stdin.
|
|
94
96
|
if hasattr(os, "set_blocking"):
|
|
95
97
|
getattr(os, "set_blocking")(buffer.fileno(), False)
|
|
@@ -97,7 +99,7 @@ class PeerProgram(RuntimepyPeerInterface, PsutilMixin):
|
|
|
97
99
|
accumulator = 0
|
|
98
100
|
|
|
99
101
|
with suppress(asyncio.CancelledError):
|
|
100
|
-
while
|
|
102
|
+
while not self.got_eof.is_set():
|
|
101
103
|
data: bytes = buffer.read(1)
|
|
102
104
|
if data is None:
|
|
103
105
|
await asyncio.sleep(self.poll_period_s)
|
|
@@ -148,7 +150,7 @@ class PeerProgram(RuntimepyPeerInterface, PsutilMixin):
|
|
|
148
150
|
with tempfile(suffix=".json") as config_path:
|
|
149
151
|
arbiter = ConnectionArbiter(stop_sig=self.got_eof)
|
|
150
152
|
ARBITER.encode(config_path, self.struct.config)
|
|
151
|
-
await arbiter.load_configs([config_path]
|
|
153
|
+
await arbiter.load_configs([config_path])
|
|
152
154
|
|
|
153
155
|
await arbiter.app()
|
|
154
156
|
|
|
@@ -210,9 +212,9 @@ class PeerProgram(RuntimepyPeerInterface, PsutilMixin):
|
|
|
210
212
|
# Don't respond to keyboard interrupt.
|
|
211
213
|
signal.signal(signal.SIGINT, signal.SIG_IGN)
|
|
212
214
|
|
|
213
|
-
async with cls.running(name, config, argv) as (
|
|
214
|
-
|
|
215
|
-
|
|
215
|
+
async with cls.running(name, config, argv) as (_, main_task, peer):
|
|
216
|
+
with peer.log_time("Main task context", reminder=True):
|
|
217
|
+
await main_task
|
|
216
218
|
|
|
217
219
|
async def poll_handler(self) -> None:
|
|
218
220
|
"""Handle a 'poll' message."""
|
|
@@ -32,6 +32,7 @@ from runtimepy.mixins.logging import LoggerMixinLevelControl
|
|
|
32
32
|
from runtimepy.primitives import Bool as _Bool
|
|
33
33
|
from runtimepy.primitives import Double as _Double
|
|
34
34
|
from runtimepy.primitives import Float as _Float
|
|
35
|
+
from runtimepy.primitives.evaluation import EvalResult as _EvalResult
|
|
35
36
|
from runtimepy.ui.controls import Controlslike
|
|
36
37
|
|
|
37
38
|
|
|
@@ -136,6 +137,12 @@ class PeriodicTask(
|
|
|
136
137
|
self._enabled.clear()
|
|
137
138
|
return result
|
|
138
139
|
|
|
140
|
+
async def wait_for_disable(
|
|
141
|
+
self, timeout: float, value: bool = False
|
|
142
|
+
) -> _EvalResult:
|
|
143
|
+
"""Wait for a task to become disabled."""
|
|
144
|
+
return await self._enabled.wait_for_state(value, timeout)
|
|
145
|
+
|
|
139
146
|
async def wait_iterations(self, timeout: float, count: int = 1) -> bool:
|
|
140
147
|
"""Wait for a task to complete a certain number of iterations."""
|
|
141
148
|
|
|
@@ -179,7 +186,7 @@ class PeriodicTask(
|
|
|
179
186
|
|
|
180
187
|
# Check this synchronously. This may not be suitable for tasks
|
|
181
188
|
# with long periods.
|
|
182
|
-
if stop_sig is not None:
|
|
189
|
+
if self._enabled and stop_sig is not None:
|
|
183
190
|
self._enabled.raw.value = not stop_sig.is_set()
|
|
184
191
|
|
|
185
192
|
if self._enabled:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: runtimepy
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.10.0
|
|
4
4
|
Summary: A framework for implementing Python services.
|
|
5
5
|
Home-page: https://github.com/vkottler/runtimepy
|
|
6
6
|
Author: Vaughn Kottler
|
|
@@ -17,11 +17,11 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
17
17
|
Requires-Python: >=3.12
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: LICENSE
|
|
20
|
-
Requires-Dist: websockets
|
|
21
|
-
Requires-Dist: psutil
|
|
22
20
|
Requires-Dist: svgen>=0.7.4
|
|
23
|
-
Requires-Dist:
|
|
21
|
+
Requires-Dist: websockets
|
|
24
22
|
Requires-Dist: vcorelib>=3.5.1
|
|
23
|
+
Requires-Dist: aiofiles
|
|
24
|
+
Requires-Dist: psutil
|
|
25
25
|
Provides-Extra: test
|
|
26
26
|
Requires-Dist: pylint; extra == "test"
|
|
27
27
|
Requires-Dist: flake8; extra == "test"
|
|
@@ -49,11 +49,11 @@ Dynamic: requires-python
|
|
|
49
49
|
=====================================
|
|
50
50
|
generator=datazen
|
|
51
51
|
version=3.1.4
|
|
52
|
-
hash=
|
|
52
|
+
hash=cbacac02049e2f568e5ebad3cc428033
|
|
53
53
|
=====================================
|
|
54
54
|
-->
|
|
55
55
|
|
|
56
|
-
# runtimepy ([5.
|
|
56
|
+
# runtimepy ([5.10.0](https://pypi.org/project/runtimepy/))
|
|
57
57
|
|
|
58
58
|
[](https://pypi.org/project/runtimepy/)
|
|
59
59
|

|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/static/woff2/CascadiaCode-BoldItalic.woff2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runtimepy-5.9.1 → runtimepy-5.10.0}/runtimepy/data/static/woff2/CascadiaMono-BoldItalic.woff2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|