<!--
=====================================
generator=datazen
version=3.2.3
hash=c354cb6439439285d244ad2bdcc32cc8
=====================================
-->
# runtimepy ([5.15.8](https://pypi.org/project/runtimepy/))
[](https://pypi.org/project/runtimepy/)

[](https://codecov.io/github/libre-embedded/runtimepy)


*A framework for implementing Python services.*
Consider [sponsoring development](https://github.com/sponsors/libre-embedded).
([interface documentation](https://libre-embedded.github.io/python/runtimepy))
## Python Version Support
This package is tested with the following Python minor versions:
* [`python3.12`](https://docs.python.org/3.12/)
* [`python3.13`](https://docs.python.org/3.13/)
## Platform Support
This package is tested on the following platforms:
* `ubuntu-latest`
* `macos-latest`
* `windows-latest`
# Introduction
# Command-line Options
```
$ ./venv3.12/bin/runtimepy -h
usage: runtimepy [-h] [--version] [-v] [-q] [--curses] [--no-uvloop] [-C DIR]
{arbiter,mtu,server,task,tftp,tui,noop} ...
A framework for implementing Python services.
options:
-h, --help show this help message and exit
--version show program's version number and exit
-v, --verbose set to increase logging verbosity
-q, --quiet set to reduce output
--curses whether or not to use curses.wrapper when starting
--no-uvloop whether or not to disable uvloop as event loop driver
-C DIR, --dir DIR execute from a specific directory
commands:
{arbiter,mtu,server,task,tftp,tui,noop}
set of available commands
arbiter run a connection-arbiter application from a config
mtu probe for MTU size to some endpoint
server run a server for a specific connection factory
task run a task from a specific task factory
tftp perform a tftp interaction
tui run a terminal interface for the channel environment
noop command stub (does nothing)
```
## Sub-command Options
### `arbiter`
```
$ ./venv3.12/bin/runtimepy arbiter -h
usage: runtimepy arbiter [-h] [-i] [-w] [--no-poller] configs [configs ...]
positional arguments:
configs the configuration to load
options:
-h, --help show this help message and exit
-i, --init_only, --init-only
exit after completing initialization
-w, --wait-for-stop, --wait_for_stop
ensure that a 'wait_for_stop' application method is
run last
--no-poller don't run a connection-metrics poller task
```
### `mtu`
```
$ ./venv3.12/bin/runtimepy mtu -h
usage: runtimepy mtu [-h] [--probe-size PROBE_SIZE] [--fallback FALLBACK] [-t]
destination [destination ...]
positional arguments:
destination endpoint parameters (host, port[, flowinfo, scope_id])
options:
-h, --help show this help message and exit
--probe-size PROBE_SIZE
data payload size to use for probe (default: 1432)
--fallback FALLBACK fallback MTU value if probing doesn't succeed (i.e.
not on Linux, default: 1500)
-t, --tcp use TCP instead of UDP
```
### `server`
```
$ ./venv3.12/bin/runtimepy server -h
usage: runtimepy server [-h] [-i] [-w] [--no-poller] [--cafile CAFILE]
[--capath CAPATH] [--cadata CADATA]
[--certfile CERTFILE] [--keyfile KEYFILE]
[--host HOST] [-p PORT] [-u] [-l]
factory [configs ...]
positional arguments:
factory name of connection factory to create server for
configs the configuration to load
options:
-h, --help show this help message and exit
-i, --init_only, --init-only
exit after completing initialization
-w, --wait-for-stop, --wait_for_stop
ensure that a 'wait_for_stop' application method is
run last
--no-poller don't run a connection-metrics poller task
--cafile CAFILE passed directly to instantiation
--capath CAPATH passed directly to instantiation
--cadata CADATA passed directly to instantiation
--certfile CERTFILE passed directly to instantiation
--keyfile KEYFILE passed directly to instantiation
--host HOST host address to listen on (default: '0.0.0.0')
-p PORT, --port PORT port to listen on (default: 0)
-u, --udp whether or not this is a UDP-based server (otherwise
it must be a TCP-based server)
-l, --loopback if true a client of the same connection type is added
```
### `task`
```
$ ./venv3.12/bin/runtimepy task -h
usage: runtimepy task [-h] [-i] [-w] [--no-poller] [-r RATE]
factory [configs ...]
positional arguments:
factory name of task factory to create task with
configs the configuration to load
options:
-h, --help show this help message and exit
-i, --init_only, --init-only
exit after completing initialization
-w, --wait-for-stop, --wait_for_stop
ensure that a 'wait_for_stop' application method is
run last
--no-poller don't run a connection-metrics poller task
-r RATE, --rate RATE rate (in Hz) that the task should run (default: 10)
```
### `tftp`
```
$ ./venv3.12/bin/runtimepy tftp -h
usage: runtimepy tftp [-h] [-p PORT] [-m MODE] [-t TIMEOUT] [-r REEMIT]
{read,write} host our_file [their_file]
positional arguments:
{read,write} action to perform
host host to message
our_file path to our file
their_file path to their file
options:
-h, --help show this help message and exit
-p PORT, --port PORT port to message (default: 69)
-m MODE, --mode MODE tftp mode to use (default: octet)
-t TIMEOUT, --timeout TIMEOUT
timeout for each step
-r REEMIT, --reemit REEMIT
transmit period for each step
```
### `tui`
```
$ ./venv3.12/bin/runtimepy tui -h
usage: runtimepy tui [-h] [-i ITERATIONS] [-r RATE]
options:
-h, --help show this help message and exit
-i ITERATIONS, --iterations ITERATIONS
maximum number of program iterations (if greater than
zero, default: 0)
-r RATE, --rate RATE frequency (in Hz) to run the interface (default: 60.0
Hz)
```
# Internal Dependency Graph
A coarse view of the internal structure and scale of
`runtimepy`'s source.
Generated using [pydeps](https://github.com/thebjorn/pydeps) (via
`mk python-deps`).

Raw data
{
"_id": null,
"home_page": "https://github.com/libre-embedded/runtimepy",
"name": "runtimepy",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": "Libre Embedded <vaughn@libre-embedded.com>",
"keywords": null,
"author": "Libre Embedded",
"author_email": "Libre Embedded <vaughn@libre-embedded.com>",
"download_url": "https://files.pythonhosted.org/packages/da/e6/82a5b5def18a158399f02e889ea6b9e942b1c1863fc101665ba9d8a7ff47/runtimepy-5.15.8.tar.gz",
"platform": null,
"description": "<!--\n =====================================\n generator=datazen\n version=3.2.3\n hash=c354cb6439439285d244ad2bdcc32cc8\n =====================================\n-->\n\n# runtimepy ([5.15.8](https://pypi.org/project/runtimepy/))\n\n[](https://pypi.org/project/runtimepy/)\n\n[](https://codecov.io/github/libre-embedded/runtimepy)\n\n\n\n*A framework for implementing Python services.*\n\nConsider [sponsoring development](https://github.com/sponsors/libre-embedded).\n\n([interface documentation](https://libre-embedded.github.io/python/runtimepy))\n\n## Python Version Support\n\nThis package is tested with the following Python minor versions:\n\n* [`python3.12`](https://docs.python.org/3.12/)\n* [`python3.13`](https://docs.python.org/3.13/)\n\n## Platform Support\n\nThis package is tested on the following platforms:\n\n* `ubuntu-latest`\n* `macos-latest`\n* `windows-latest`\n\n# Introduction\n\n# Command-line Options\n\n```\n$ ./venv3.12/bin/runtimepy -h\n\nusage: runtimepy [-h] [--version] [-v] [-q] [--curses] [--no-uvloop] [-C DIR]\n {arbiter,mtu,server,task,tftp,tui,noop} ...\n\nA framework for implementing Python services.\n\noptions:\n -h, --help show this help message and exit\n --version show program's version number and exit\n -v, --verbose set to increase logging verbosity\n -q, --quiet set to reduce output\n --curses whether or not to use curses.wrapper when starting\n --no-uvloop whether or not to disable uvloop as event loop driver\n -C DIR, --dir DIR execute from a specific directory\n\ncommands:\n {arbiter,mtu,server,task,tftp,tui,noop}\n set of available commands\n arbiter run a connection-arbiter application from a config\n mtu probe for MTU size to some endpoint\n server run a server for a specific connection factory\n task run a task from a specific task factory\n tftp perform a tftp interaction\n tui run a terminal interface for the channel environment\n noop command stub (does nothing)\n\n```\n\n## Sub-command Options\n\n### `arbiter`\n\n```\n$ ./venv3.12/bin/runtimepy arbiter -h\n\nusage: runtimepy arbiter [-h] [-i] [-w] [--no-poller] configs [configs ...]\n\npositional arguments:\n configs the configuration to load\n\noptions:\n -h, --help show this help message and exit\n -i, --init_only, --init-only\n exit after completing initialization\n -w, --wait-for-stop, --wait_for_stop\n ensure that a 'wait_for_stop' application method is\n run last\n --no-poller don't run a connection-metrics poller task\n\n```\n\n### `mtu`\n\n```\n$ ./venv3.12/bin/runtimepy mtu -h\n\nusage: runtimepy mtu [-h] [--probe-size PROBE_SIZE] [--fallback FALLBACK] [-t]\n destination [destination ...]\n\npositional arguments:\n destination endpoint parameters (host, port[, flowinfo, scope_id])\n\noptions:\n -h, --help show this help message and exit\n --probe-size PROBE_SIZE\n data payload size to use for probe (default: 1432)\n --fallback FALLBACK fallback MTU value if probing doesn't succeed (i.e.\n not on Linux, default: 1500)\n -t, --tcp use TCP instead of UDP\n\n```\n\n### `server`\n\n```\n$ ./venv3.12/bin/runtimepy server -h\n\nusage: runtimepy server [-h] [-i] [-w] [--no-poller] [--cafile CAFILE]\n [--capath CAPATH] [--cadata CADATA]\n [--certfile CERTFILE] [--keyfile KEYFILE]\n [--host HOST] [-p PORT] [-u] [-l]\n factory [configs ...]\n\npositional arguments:\n factory name of connection factory to create server for\n configs the configuration to load\n\noptions:\n -h, --help show this help message and exit\n -i, --init_only, --init-only\n exit after completing initialization\n -w, --wait-for-stop, --wait_for_stop\n ensure that a 'wait_for_stop' application method is\n run last\n --no-poller don't run a connection-metrics poller task\n --cafile CAFILE passed directly to instantiation\n --capath CAPATH passed directly to instantiation\n --cadata CADATA passed directly to instantiation\n --certfile CERTFILE passed directly to instantiation\n --keyfile KEYFILE passed directly to instantiation\n --host HOST host address to listen on (default: '0.0.0.0')\n -p PORT, --port PORT port to listen on (default: 0)\n -u, --udp whether or not this is a UDP-based server (otherwise\n it must be a TCP-based server)\n -l, --loopback if true a client of the same connection type is added\n\n```\n\n### `task`\n\n```\n$ ./venv3.12/bin/runtimepy task -h\n\nusage: runtimepy task [-h] [-i] [-w] [--no-poller] [-r RATE]\n factory [configs ...]\n\npositional arguments:\n factory name of task factory to create task with\n configs the configuration to load\n\noptions:\n -h, --help show this help message and exit\n -i, --init_only, --init-only\n exit after completing initialization\n -w, --wait-for-stop, --wait_for_stop\n ensure that a 'wait_for_stop' application method is\n run last\n --no-poller don't run a connection-metrics poller task\n -r RATE, --rate RATE rate (in Hz) that the task should run (default: 10)\n\n```\n\n### `tftp`\n\n```\n$ ./venv3.12/bin/runtimepy tftp -h\n\nusage: runtimepy tftp [-h] [-p PORT] [-m MODE] [-t TIMEOUT] [-r REEMIT]\n {read,write} host our_file [their_file]\n\npositional arguments:\n {read,write} action to perform\n host host to message\n our_file path to our file\n their_file path to their file\n\noptions:\n -h, --help show this help message and exit\n -p PORT, --port PORT port to message (default: 69)\n -m MODE, --mode MODE tftp mode to use (default: octet)\n -t TIMEOUT, --timeout TIMEOUT\n timeout for each step\n -r REEMIT, --reemit REEMIT\n transmit period for each step\n\n```\n\n### `tui`\n\n```\n$ ./venv3.12/bin/runtimepy tui -h\n\nusage: runtimepy tui [-h] [-i ITERATIONS] [-r RATE]\n\noptions:\n -h, --help show this help message and exit\n -i ITERATIONS, --iterations ITERATIONS\n maximum number of program iterations (if greater than\n zero, default: 0)\n -r RATE, --rate RATE frequency (in Hz) to run the interface (default: 60.0\n Hz)\n\n```\n\n# Internal Dependency Graph\n\nA coarse view of the internal structure and scale of\n`runtimepy`'s source.\nGenerated using [pydeps](https://github.com/thebjorn/pydeps) (via\n`mk python-deps`).\n\n\n",
"bugtrack_url": null,
"license": null,
"summary": "A framework for implementing Python services.",
"version": "5.15.8",
"project_urls": {
"Homepage": "https://github.com/libre-embedded/runtimepy"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "45a67bb0d2cc9a67305cfd28043d07e5f311ccc87984aa35a948b59490a5deec",
"md5": "69354e95d4564f34bdce391650f60225",
"sha256": "50a51194401769cd56b4010f30dda5229c436bfb7006f22b0e1a416d0512cb3b"
},
"downloads": -1,
"filename": "runtimepy-5.15.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "69354e95d4564f34bdce391650f60225",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 1920961,
"upload_time": "2025-07-12T01:35:17",
"upload_time_iso_8601": "2025-07-12T01:35:17.605462Z",
"url": "https://files.pythonhosted.org/packages/45/a6/7bb0d2cc9a67305cfd28043d07e5f311ccc87984aa35a948b59490a5deec/runtimepy-5.15.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "dae682a5b5def18a158399f02e889ea6b9e942b1c1863fc101665ba9d8a7ff47",
"md5": "22d29f5528654bac9686f1c63d4832b6",
"sha256": "8b0578f0b662aac3e81913a567f231e0a45d14fd6fa50f3f79b6870099c8afae"
},
"downloads": -1,
"filename": "runtimepy-5.15.8.tar.gz",
"has_sig": false,
"md5_digest": "22d29f5528654bac9686f1c63d4832b6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 1821263,
"upload_time": "2025-07-12T01:35:19",
"upload_time_iso_8601": "2025-07-12T01:35:19.782525Z",
"url": "https://files.pythonhosted.org/packages/da/e6/82a5b5def18a158399f02e889ea6b9e942b1c1863fc101665ba9d8a7ff47/runtimepy-5.15.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-12 01:35:19",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "libre-embedded",
"github_project": "runtimepy",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "runtimepy"
}