runtimepy


Nameruntimepy JSON
Version 5.15.8 PyPI version JSON
download
home_pagehttps://github.com/libre-embedded/runtimepy
SummaryA framework for implementing Python services.
upload_time2025-07-12 01:35:19
maintainerNone
docs_urlNone
authorLibre Embedded
requires_python>=3.12
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <!--
    =====================================
    generator=datazen
    version=3.2.3
    hash=c354cb6439439285d244ad2bdcc32cc8
    =====================================
-->

# runtimepy ([5.15.8](https://pypi.org/project/runtimepy/))

[![python](https://img.shields.io/pypi/pyversions/runtimepy.svg)](https://pypi.org/project/runtimepy/)
![Build Status](https://github.com/libre-embedded/runtimepy/workflows/Python%20Package/badge.svg)
[![codecov](https://codecov.io/gh/libre-embedded/runtimepy/branch/master/graphs/badge.svg?branch=master)](https://codecov.io/github/libre-embedded/runtimepy)
![PyPI - Status](https://img.shields.io/pypi/status/runtimepy)
![Dependents (via libraries.io)](https://img.shields.io/librariesio/dependents/pypi/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`).

![runtimepy's Dependency Graph](im/pydeps.svg)

            

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[![python](https://img.shields.io/pypi/pyversions/runtimepy.svg)](https://pypi.org/project/runtimepy/)\n![Build Status](https://github.com/libre-embedded/runtimepy/workflows/Python%20Package/badge.svg)\n[![codecov](https://codecov.io/gh/libre-embedded/runtimepy/branch/master/graphs/badge.svg?branch=master)](https://codecov.io/github/libre-embedded/runtimepy)\n![PyPI - Status](https://img.shields.io/pypi/status/runtimepy)\n![Dependents (via libraries.io)](https://img.shields.io/librariesio/dependents/pypi/runtimepy)\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![runtimepy's Dependency Graph](im/pydeps.svg)\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"
}
        
Elapsed time: 1.70515s