runtimepy 4.3.2__tar.gz → 4.3.4__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-4.3.2/runtimepy.egg-info → runtimepy-4.3.4}/PKG-INFO +5 -5
- {runtimepy-4.3.2 → runtimepy-4.3.4}/README.md +2 -2
- {runtimepy-4.3.2 → runtimepy-4.3.4}/pyproject.toml +1 -1
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/__init__.py +2 -2
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/factories.yaml +3 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/factories/__init__.py +7 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/udp/__init__.py +7 -1
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/udp/connection.py +6 -0
- runtimepy-4.3.4/runtimepy/net/udp/queue.py +28 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4/runtimepy.egg-info}/PKG-INFO +5 -5
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy.egg-info/SOURCES.txt +1 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/LICENSE +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/__main__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/app.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/channel/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/channel/environment/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/channel/environment/array.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/channel/environment/base.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/channel/environment/command/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/channel/environment/command/parser.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/channel/environment/command/processor.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/channel/environment/command/result.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/channel/environment/create.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/channel/environment/file.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/channel/environment/sample.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/channel/environment/telemetry.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/channel/event/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/channel/event/header.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/channel/registry.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/codec/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/codec/protocol/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/codec/protocol/base.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/codec/protocol/json.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/codec/system/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/commands/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/commands/all.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/commands/arbiter.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/commands/common.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/commands/server.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/commands/task.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/commands/tui.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/css/bootstrap_extra.css +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/css/main.css +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/dummy_load.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/favicon.ico +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/DataConnection.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/JsonConnection.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/audio.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/classes/App.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/classes/ChannelTable.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/classes/DataConnection.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/classes/JsonConnection.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/classes/Plot.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/classes/PlotManager.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/classes/PlotModalManager.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/classes/TabFilter.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/classes/TabInterface.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/classes/WindowHashManager.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/classes/WorkerInterface.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/init.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/main.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/tab/env.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/tab/sound.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/unused/pyodide.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/util.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/js/worker.js +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/schemas/BitFields.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/schemas/Channel.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/schemas/ChannelCommand.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/schemas/ChannelRegistry.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/schemas/ClientConnectionConfig.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/schemas/ConnectionArbiterConfig.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/schemas/EnumRegistry.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/schemas/FindFile.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/schemas/PeerProcessConfig.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/schemas/RuntimeEnum.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/schemas/ServerConnectionConfig.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/schemas/StructConfig.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/schemas/TaskConfig.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/schemas/has_config.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/schemas/has_factory.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/schemas/has_name.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/schemas/has_request_flag.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/server.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/server_base.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/data/server_dev.yaml +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/dev_requirements.txt +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/entry.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/enum/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/enum/registry.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/enum/types.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/mapping.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/message/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/message/handlers.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/message/interface.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/message/types.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/metrics/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/metrics/channel.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/metrics/connection.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/metrics/task.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/mixins/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/mixins/async_command.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/mixins/enum.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/mixins/environment.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/mixins/finalize.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/mixins/logging.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/mixins/psutil.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/mixins/regex.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/mixins/trig.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/apps/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/base.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/config/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/config/codec.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/config/util.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/factory/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/factory/connection.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/factory/task.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/housekeeping/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/imports/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/imports/util.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/info.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/result.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/task.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/tcp/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/tcp/json.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/udp.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/arbiter/websocket.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/backoff.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/connection.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/http/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/http/common.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/http/header.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/http/request_target.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/http/response.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/http/state.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/http/version.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/manager.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/mixin.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/base.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/bootstrap/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/bootstrap/elements.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/bootstrap/tabs.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/create.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/elements.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/env/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/env/modal.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/env/tab/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/env/tab/base.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/env/tab/html.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/env/tab/message.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/env/widgets.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/files.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/placeholder.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/pyodide.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/sound.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/app/tab.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/html.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/json.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/struct/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/websocket/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/server/websocket/state.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/stream/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/stream/base.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/stream/json/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/stream/string.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/tcp/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/tcp/connection.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/tcp/create.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/tcp/http/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/tcp/protocol.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/tcp/telnet/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/tcp/telnet/codes.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/udp/create.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/udp/protocol.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/util.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/websocket/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/net/websocket/connection.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/array/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/base.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/bool.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/byte_order.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/field/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/field/fields.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/field/manager/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/field/manager/base.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/float.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/int.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/scaling.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/serializable/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/serializable/base.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/serializable/fixed.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/serializable/prefixed.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/string.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/types/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/types/base.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/types/bool.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/types/bounds.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/types/float.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/primitives/types/int.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/py.typed +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/registry/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/registry/bool.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/registry/item.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/registry/name.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/requirements.txt +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/sample/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/sample/peer.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/sample/program.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/schemas.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/struct/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/subprocess/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/subprocess/interface.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/subprocess/peer.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/subprocess/program.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/subprocess/protocol.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/task/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/task/asynchronous.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/task/basic/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/task/basic/manager.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/task/basic/periodic.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/task/sample.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/task/trig/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/telemetry/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/tui/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/tui/channels/__init__.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/tui/cursor.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/tui/mixin.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/tui/mock.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/tui/task.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy/util.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy.egg-info/dependency_links.txt +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy.egg-info/entry_points.txt +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy.egg-info/requires.txt +2 -2
- {runtimepy-4.3.2 → runtimepy-4.3.4}/runtimepy.egg-info/top_level.txt +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/setup.cfg +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/setup.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/tests/test_entry.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/tests/test_mapping.py +0 -0
- {runtimepy-4.3.2 → runtimepy-4.3.4}/tests/test_resources.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: runtimepy
|
|
3
|
-
Version: 4.3.
|
|
3
|
+
Version: 4.3.4
|
|
4
4
|
Summary: A framework for implementing Python services.
|
|
5
5
|
Home-page: https://github.com/vkottler/runtimepy
|
|
6
6
|
Author: Vaughn Kottler
|
|
@@ -17,9 +17,9 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
17
17
|
Requires-Python: >=3.11
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: LICENSE
|
|
20
|
-
Requires-Dist: psutil
|
|
21
|
-
Requires-Dist: svgen>=0.6.6
|
|
22
20
|
Requires-Dist: vcorelib>=3.2.4
|
|
21
|
+
Requires-Dist: svgen>=0.6.6
|
|
22
|
+
Requires-Dist: psutil
|
|
23
23
|
Requires-Dist: websockets
|
|
24
24
|
Provides-Extra: test
|
|
25
25
|
Requires-Dist: pylint; extra == "test"
|
|
@@ -44,11 +44,11 @@ Requires-Dist: uvloop; (sys_platform != "win32" and sys_platform != "cygwin") an
|
|
|
44
44
|
=====================================
|
|
45
45
|
generator=datazen
|
|
46
46
|
version=3.1.4
|
|
47
|
-
hash=
|
|
47
|
+
hash=8493c89e5bc292ec916531e976a8ef4b
|
|
48
48
|
=====================================
|
|
49
49
|
-->
|
|
50
50
|
|
|
51
|
-
# runtimepy ([4.3.
|
|
51
|
+
# runtimepy ([4.3.4](https://pypi.org/project/runtimepy/))
|
|
52
52
|
|
|
53
53
|
[](https://pypi.org/project/runtimepy/)
|
|
54
54
|

|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
=====================================
|
|
3
3
|
generator=datazen
|
|
4
4
|
version=3.1.4
|
|
5
|
-
hash=
|
|
5
|
+
hash=8493c89e5bc292ec916531e976a8ef4b
|
|
6
6
|
=====================================
|
|
7
7
|
-->
|
|
8
8
|
|
|
9
|
-
# runtimepy ([4.3.
|
|
9
|
+
# runtimepy ([4.3.4](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=4b36271c7cf8f3a37607064170703e42
|
|
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 = "4.3.
|
|
13
|
+
VERSION = "4.3.4"
|
|
14
14
|
|
|
15
15
|
# runtimepy-specific content.
|
|
16
16
|
METRICS_NAME = "metrics"
|
|
@@ -6,6 +6,9 @@ factories:
|
|
|
6
6
|
- {name: runtimepy.net.factories.UdpJson}
|
|
7
7
|
- {name: runtimepy.net.factories.WebsocketJson}
|
|
8
8
|
|
|
9
|
+
# Queue wrappers.
|
|
10
|
+
- {name: runtimepy.net.factories.UdpQueue}
|
|
11
|
+
|
|
9
12
|
# Echo and null connections (useful for testing and debugging).
|
|
10
13
|
- {name: runtimepy.net.factories.TcpEcho, namespaces: [tcp, echo]}
|
|
11
14
|
- {name: runtimepy.net.factories.UdpEcho, namespaces: [udp, echo]}
|
|
@@ -31,6 +31,7 @@ from runtimepy.net.tcp.http import HttpConnection
|
|
|
31
31
|
from runtimepy.net.udp import (
|
|
32
32
|
EchoUdpConnection,
|
|
33
33
|
NullUdpConnection,
|
|
34
|
+
QueueUdpConnection,
|
|
34
35
|
UdpConnection,
|
|
35
36
|
)
|
|
36
37
|
from runtimepy.net.websocket import (
|
|
@@ -93,6 +94,12 @@ class UdpJson(UdpConnectionFactory[UdpJsonMessageConnection]):
|
|
|
93
94
|
kind = UdpJsonMessageConnection
|
|
94
95
|
|
|
95
96
|
|
|
97
|
+
class UdpQueue(UdpConnectionFactory[QueueUdpConnection]):
|
|
98
|
+
"""UDP queue-connection factory."""
|
|
99
|
+
|
|
100
|
+
kind = QueueUdpConnection
|
|
101
|
+
|
|
102
|
+
|
|
96
103
|
class TcpEcho(TcpConnectionFactory[EchoTcpConnection]):
|
|
97
104
|
"""TCP echo-connection factory."""
|
|
98
105
|
|
|
@@ -8,5 +8,11 @@ from runtimepy.net.udp.connection import (
|
|
|
8
8
|
NullUdpConnection,
|
|
9
9
|
UdpConnection,
|
|
10
10
|
)
|
|
11
|
+
from runtimepy.net.udp.queue import QueueUdpConnection
|
|
11
12
|
|
|
12
|
-
__all__ = [
|
|
13
|
+
__all__ = [
|
|
14
|
+
"UdpConnection",
|
|
15
|
+
"EchoUdpConnection",
|
|
16
|
+
"NullUdpConnection",
|
|
17
|
+
"QueueUdpConnection",
|
|
18
|
+
]
|
|
@@ -9,6 +9,7 @@ from contextlib import suppress as _suppress
|
|
|
9
9
|
from logging import getLogger as _getLogger
|
|
10
10
|
import socket as _socket
|
|
11
11
|
from typing import Any as _Any
|
|
12
|
+
from typing import Optional as _Optional
|
|
12
13
|
from typing import TypeVar as _TypeVar
|
|
13
14
|
from typing import Union as _Union
|
|
14
15
|
|
|
@@ -37,6 +38,9 @@ class UdpConnection(_Connection, _TransportMixin):
|
|
|
37
38
|
uses_text_tx_queue = False
|
|
38
39
|
uses_binary_tx_queue = False
|
|
39
40
|
|
|
41
|
+
# Simplify talkback implementations.
|
|
42
|
+
latest_rx_address: _Optional[tuple[str, int]]
|
|
43
|
+
|
|
40
44
|
def __init__(
|
|
41
45
|
self, transport: _DatagramTransport, protocol: UdpQueueProtocol
|
|
42
46
|
) -> None:
|
|
@@ -54,6 +58,7 @@ class UdpConnection(_Connection, _TransportMixin):
|
|
|
54
58
|
|
|
55
59
|
# Store connection-instantiation arguments.
|
|
56
60
|
self._conn_kwargs: dict[str, _Any] = {}
|
|
61
|
+
self.latest_rx_address = None
|
|
57
62
|
|
|
58
63
|
def _set_protocol(self, protocol: UdpQueueProtocol) -> None:
|
|
59
64
|
"""Set a protocol instance for this connection."""
|
|
@@ -188,6 +193,7 @@ class UdpConnection(_Connection, _TransportMixin):
|
|
|
188
193
|
|
|
189
194
|
if message is not None:
|
|
190
195
|
data = message[0]
|
|
196
|
+
self.latest_rx_address = message[1]
|
|
191
197
|
result = await self.process_datagram(data, message[1])
|
|
192
198
|
self.metrics.rx.increment(len(data))
|
|
193
199
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"""
|
|
2
|
+
A module implementing a simple queue-based UDP interface.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
# built-in
|
|
6
|
+
from asyncio import Queue
|
|
7
|
+
|
|
8
|
+
# internal
|
|
9
|
+
from runtimepy.net.udp.connection import UdpConnection
|
|
10
|
+
|
|
11
|
+
DatagramQueue = Queue[tuple[bytes, tuple[str, int]]]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class QueueUdpConnection(UdpConnection):
|
|
15
|
+
"""An echo connection for UDP."""
|
|
16
|
+
|
|
17
|
+
datagrams: DatagramQueue
|
|
18
|
+
|
|
19
|
+
def init(self) -> None:
|
|
20
|
+
"""Initialize this instance."""
|
|
21
|
+
self.datagrams = Queue()
|
|
22
|
+
|
|
23
|
+
async def process_datagram(
|
|
24
|
+
self, data: bytes, addr: tuple[str, int]
|
|
25
|
+
) -> bool:
|
|
26
|
+
"""Process a datagram."""
|
|
27
|
+
self.datagrams.put_nowait((data, addr))
|
|
28
|
+
return True
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: runtimepy
|
|
3
|
-
Version: 4.3.
|
|
3
|
+
Version: 4.3.4
|
|
4
4
|
Summary: A framework for implementing Python services.
|
|
5
5
|
Home-page: https://github.com/vkottler/runtimepy
|
|
6
6
|
Author: Vaughn Kottler
|
|
@@ -17,9 +17,9 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
17
17
|
Requires-Python: >=3.11
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: LICENSE
|
|
20
|
-
Requires-Dist: psutil
|
|
21
|
-
Requires-Dist: svgen>=0.6.6
|
|
22
20
|
Requires-Dist: vcorelib>=3.2.4
|
|
21
|
+
Requires-Dist: svgen>=0.6.6
|
|
22
|
+
Requires-Dist: psutil
|
|
23
23
|
Requires-Dist: websockets
|
|
24
24
|
Provides-Extra: test
|
|
25
25
|
Requires-Dist: pylint; extra == "test"
|
|
@@ -44,11 +44,11 @@ Requires-Dist: uvloop; (sys_platform != "win32" and sys_platform != "cygwin") an
|
|
|
44
44
|
=====================================
|
|
45
45
|
generator=datazen
|
|
46
46
|
version=3.1.4
|
|
47
|
-
hash=
|
|
47
|
+
hash=8493c89e5bc292ec916531e976a8ef4b
|
|
48
48
|
=====================================
|
|
49
49
|
-->
|
|
50
50
|
|
|
51
|
-
# runtimepy ([4.3.
|
|
51
|
+
# runtimepy ([4.3.4](https://pypi.org/project/runtimepy/))
|
|
52
52
|
|
|
53
53
|
[](https://pypi.org/project/runtimepy/)
|
|
54
54
|

|
|
@@ -184,6 +184,7 @@ runtimepy/net/udp/__init__.py
|
|
|
184
184
|
runtimepy/net/udp/connection.py
|
|
185
185
|
runtimepy/net/udp/create.py
|
|
186
186
|
runtimepy/net/udp/protocol.py
|
|
187
|
+
runtimepy/net/udp/queue.py
|
|
187
188
|
runtimepy/net/websocket/__init__.py
|
|
188
189
|
runtimepy/net/websocket/connection.py
|
|
189
190
|
runtimepy/primitives/__init__.py
|
|
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
|
|
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
|