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

|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
=====================================
|
|
3
3
|
generator=datazen
|
|
4
4
|
version=3.1.4
|
|
5
|
-
hash=
|
|
5
|
+
hash=1e8298e9f6423ee6f9836f5ec04cc3ab
|
|
6
6
|
=====================================
|
|
7
7
|
-->
|
|
8
8
|
|
|
9
|
-
# runtimepy ([5.7.
|
|
9
|
+
# runtimepy ([5.7.10](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=01934a9c90fba4488654f035acc8b84e
|
|
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.7.
|
|
13
|
+
VERSION = "5.7.10"
|
|
14
14
|
|
|
15
15
|
# runtimepy-specific content.
|
|
16
16
|
METRICS_NAME = "metrics"
|
|
@@ -21,6 +21,8 @@ TASK_NAME = "housekeeping"
|
|
|
21
21
|
class ConnectionMetricsPoller(_ArbiterTask):
|
|
22
22
|
"""A class that periodically polls connection metrics."""
|
|
23
23
|
|
|
24
|
+
processors: list[Awaitable[None]]
|
|
25
|
+
|
|
24
26
|
def __init__(
|
|
25
27
|
self,
|
|
26
28
|
name: str,
|
|
@@ -31,6 +33,7 @@ class ConnectionMetricsPoller(_ArbiterTask):
|
|
|
31
33
|
|
|
32
34
|
super().__init__(name, **kwargs)
|
|
33
35
|
self.manager = manager
|
|
36
|
+
self.processors = []
|
|
34
37
|
|
|
35
38
|
def _init_state(self) -> None:
|
|
36
39
|
"""Add channels to this instance's channel environment."""
|
|
@@ -51,7 +54,6 @@ class ConnectionMetricsPoller(_ArbiterTask):
|
|
|
51
54
|
self.manager.poll_metrics()
|
|
52
55
|
|
|
53
56
|
# Handle any incoming commands.
|
|
54
|
-
processors: list[Awaitable[None]] = []
|
|
55
57
|
for mapping in (
|
|
56
58
|
self.app.connections.values(),
|
|
57
59
|
self.app.tasks.values(),
|
|
@@ -59,14 +61,15 @@ class ConnectionMetricsPoller(_ArbiterTask):
|
|
|
59
61
|
):
|
|
60
62
|
for item in mapping:
|
|
61
63
|
if isinstance(item, AsyncCommandProcessingMixin):
|
|
62
|
-
processors.append(item.process_command_queue())
|
|
64
|
+
self.processors.append(item.process_command_queue())
|
|
63
65
|
|
|
64
66
|
# Service connection tasks. The connection manager should probably do
|
|
65
67
|
# this on its own at some point.
|
|
66
|
-
processors += list(self.app.conn_manager.connection_tasks)
|
|
68
|
+
self.processors += list(self.app.conn_manager.connection_tasks)
|
|
67
69
|
|
|
68
|
-
if processors:
|
|
69
|
-
await asyncio.gather(*processors)
|
|
70
|
+
if self.processors:
|
|
71
|
+
await asyncio.gather(*self.processors)
|
|
72
|
+
self.processors.clear()
|
|
70
73
|
|
|
71
74
|
return True
|
|
72
75
|
|
|
@@ -11,7 +11,6 @@ from pathlib import Path
|
|
|
11
11
|
from typing import Any, Optional, TextIO, Union
|
|
12
12
|
|
|
13
13
|
# third-party
|
|
14
|
-
import aiofiles
|
|
15
14
|
from vcorelib import DEFAULT_ENCODING
|
|
16
15
|
from vcorelib.io import IndentedFileWriter, JsonObject
|
|
17
16
|
from vcorelib.paths import Pathlike, find_file, normalize
|
|
@@ -26,7 +25,7 @@ from runtimepy.net.http.response import ResponseHeader
|
|
|
26
25
|
from runtimepy.net.server.html import HtmlApp, HtmlApps, get_html, html_handler
|
|
27
26
|
from runtimepy.net.server.json import encode_json, json_handler
|
|
28
27
|
from runtimepy.net.tcp.http import HttpConnection
|
|
29
|
-
from runtimepy.util import normalize_root, path_has_part
|
|
28
|
+
from runtimepy.util import normalize_root, path_has_part, read_binary
|
|
30
29
|
|
|
31
30
|
MIMETYPES_INIT = False
|
|
32
31
|
|
|
@@ -158,10 +157,9 @@ class RuntimepyServerConnection(HttpConnection):
|
|
|
158
157
|
) -> bytes:
|
|
159
158
|
"""Render a markdown file as HTML and return the result."""
|
|
160
159
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
)
|
|
160
|
+
return self.render_markdown(
|
|
161
|
+
(await read_binary(path)).decode(), response, **kwargs
|
|
162
|
+
)
|
|
165
163
|
|
|
166
164
|
async def try_file(
|
|
167
165
|
self, path: PathMaybeQuery, response: ResponseHeader
|
|
@@ -195,8 +193,7 @@ class RuntimepyServerConnection(HttpConnection):
|
|
|
195
193
|
self.logger.info("Serving '%s' (MIME: %s)", candidate, mime)
|
|
196
194
|
|
|
197
195
|
# Return the file data.
|
|
198
|
-
|
|
199
|
-
result = await path_fd.read()
|
|
196
|
+
result = await read_binary(candidate)
|
|
200
197
|
|
|
201
198
|
break
|
|
202
199
|
|
|
@@ -69,9 +69,7 @@ class ChannelEnvironmentTabMessaging(ChannelEnvironmentTabBase):
|
|
|
69
69
|
for name in env.names:
|
|
70
70
|
self._setup_callback(name, state)
|
|
71
71
|
else:
|
|
72
|
-
|
|
73
|
-
for name, val in state.callbacks.items():
|
|
74
|
-
state.primitives[name].remove_callback(val)
|
|
72
|
+
state.clear_telemetry()
|
|
75
73
|
|
|
76
74
|
# Save current UI state.
|
|
77
75
|
state.latest_ui_values.update(latest)
|
|
@@ -53,19 +53,36 @@ class TabState:
|
|
|
53
53
|
|
|
54
54
|
return result
|
|
55
55
|
|
|
56
|
+
def clear_telemetry(self) -> None:
|
|
57
|
+
"""Clear all telemetry interactions."""
|
|
58
|
+
|
|
59
|
+
# Remove callbacks for primitives.
|
|
60
|
+
for name, val in self.callbacks.items():
|
|
61
|
+
self.primitives[name].remove_callback(val)
|
|
62
|
+
self.callbacks.clear()
|
|
63
|
+
self.primitives.clear()
|
|
64
|
+
|
|
65
|
+
# Clear points.
|
|
66
|
+
self.points.clear()
|
|
67
|
+
|
|
56
68
|
def clear_loggers(self) -> None:
|
|
57
69
|
"""Clear all logging handlers."""
|
|
58
70
|
|
|
71
|
+
# Remove handlers.
|
|
59
72
|
for logger in self._loggers:
|
|
60
73
|
logger.removeHandler(self.tab_logger)
|
|
74
|
+
self._loggers.clear()
|
|
75
|
+
|
|
61
76
|
self.tab_logger.drain_str()
|
|
62
|
-
|
|
77
|
+
|
|
78
|
+
self.clear_telemetry()
|
|
63
79
|
|
|
64
80
|
def add_logger(self, logger: logging.Logger) -> None:
|
|
65
81
|
"""Add a logger."""
|
|
66
82
|
|
|
67
|
-
logger
|
|
68
|
-
|
|
83
|
+
if logger not in self._loggers:
|
|
84
|
+
logger.addHandler(self.tab_logger)
|
|
85
|
+
self._loggers.append(logger)
|
|
69
86
|
|
|
70
87
|
@staticmethod
|
|
71
88
|
def create() -> "TabState":
|
|
@@ -8,11 +8,20 @@ from pathlib import Path
|
|
|
8
8
|
from typing import Iterator, Union
|
|
9
9
|
|
|
10
10
|
# third-party
|
|
11
|
+
import aiofiles
|
|
11
12
|
from vcorelib.paths import normalize
|
|
12
13
|
|
|
13
14
|
ROOT_PATH = Path(sep)
|
|
14
15
|
|
|
15
16
|
|
|
17
|
+
async def read_binary(path: Path) -> bytes:
|
|
18
|
+
"""An async wrapper for reading file contents."""
|
|
19
|
+
|
|
20
|
+
async with aiofiles.open(path, mode="rb") as path_fd:
|
|
21
|
+
result = await path_fd.read()
|
|
22
|
+
return result # type: ignore
|
|
23
|
+
|
|
24
|
+
|
|
16
25
|
def normalize_root(*src_parts: Union[str, Path]) -> Path:
|
|
17
26
|
"""Make paths absolute that aren't. Useful for HTTP-request pathing."""
|
|
18
27
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: runtimepy
|
|
3
|
-
Version: 5.7.
|
|
3
|
+
Version: 5.7.10
|
|
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: aiofiles
|
|
21
|
-
Requires-Dist: vcorelib>=3.4.5
|
|
22
|
-
Requires-Dist: websockets
|
|
23
20
|
Requires-Dist: psutil
|
|
24
21
|
Requires-Dist: svgen>=0.6.8
|
|
22
|
+
Requires-Dist: vcorelib>=3.4.5
|
|
23
|
+
Requires-Dist: aiofiles
|
|
24
|
+
Requires-Dist: websockets
|
|
25
25
|
Provides-Extra: test
|
|
26
26
|
Requires-Dist: pylint; extra == "test"
|
|
27
27
|
Requires-Dist: flake8; extra == "test"
|
|
@@ -45,11 +45,11 @@ Requires-Dist: uvloop; (sys_platform != "win32" and sys_platform != "cygwin") an
|
|
|
45
45
|
=====================================
|
|
46
46
|
generator=datazen
|
|
47
47
|
version=3.1.4
|
|
48
|
-
hash=
|
|
48
|
+
hash=1e8298e9f6423ee6f9836f5ec04cc3ab
|
|
49
49
|
=====================================
|
|
50
50
|
-->
|
|
51
51
|
|
|
52
|
-
# runtimepy ([5.7.
|
|
52
|
+
# runtimepy ([5.7.10](https://pypi.org/project/runtimepy/))
|
|
53
53
|
|
|
54
54
|
[](https://pypi.org/project/runtimepy/)
|
|
55
55
|

|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Test the 'util' module.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
# third-party
|
|
6
|
+
from pytest import mark
|
|
7
|
+
|
|
8
|
+
# module under test
|
|
9
|
+
from runtimepy.util import read_binary
|
|
10
|
+
|
|
11
|
+
# internal
|
|
12
|
+
from tests.resources import resource
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@mark.asyncio
|
|
16
|
+
async def test_read_binary():
|
|
17
|
+
"""Test 'read_binary' invocations."""
|
|
18
|
+
|
|
19
|
+
assert await read_binary(resource("test.txt"))
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runtimepy-5.7.9 → runtimepy-5.7.10}/runtimepy/data/static/woff2/CascadiaCode-BoldItalic.woff2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runtimepy-5.7.9 → runtimepy-5.7.10}/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
|