Better doc-strings n styling in `piker.cli` eps
Add comprehensive docstrings to the top-level CLI endpoints and helpers, explaining the purpose and structure of each (sub)command. Deats, - add detailed docstring to `pikerd()` explaining its role as the root service-actor/daemon supervisor. - add docstring to `cli()` noting it's the root endpoint generally requiring a sub-cmd input. - add extensive docstring to `services()` explaining the daemon naming conventions and listing a few current/common service actors. - add docstring to `_load_clis()` explaining dynamic CLI loading. Stylin, - add multiline style to `and not maddrs` conditional in `load_trans_eps()`. - drop commented-out `--tsdb` and `--es` click options from `pikerd()`, they're more or less obsolete given `nativedb`. - add type annots where obviously handy. - add TODO comment about UDS support in `services()`. (this commit msg was generated in some part by [`claude-code`][claude-code-gh]) [claude-code-gh]: https://github.com/anthropics/claude-code
parent
69251cd620
commit
616de968d5
|
|
@ -61,7 +61,8 @@ def load_trans_eps(
|
||||||
|
|
||||||
if (
|
if (
|
||||||
network
|
network
|
||||||
and not maddrs
|
and
|
||||||
|
not maddrs
|
||||||
):
|
):
|
||||||
# load network section and (attempt to) connect all endpoints
|
# load network section and (attempt to) connect all endpoints
|
||||||
# which are reachable B)
|
# which are reachable B)
|
||||||
|
|
@ -112,26 +113,19 @@ def load_trans_eps(
|
||||||
default=None,
|
default=None,
|
||||||
help='Multiaddrs to bind or contact',
|
help='Multiaddrs to bind or contact',
|
||||||
)
|
)
|
||||||
# @click.option(
|
|
||||||
# '--tsdb',
|
|
||||||
# is_flag=True,
|
|
||||||
# help='Enable local ``marketstore`` instance'
|
|
||||||
# )
|
|
||||||
# @click.option(
|
|
||||||
# '--es',
|
|
||||||
# is_flag=True,
|
|
||||||
# help='Enable local ``elasticsearch`` instance'
|
|
||||||
# )
|
|
||||||
def pikerd(
|
def pikerd(
|
||||||
maddr: list[str] | None,
|
maddr: list[str] | None,
|
||||||
loglevel: str,
|
loglevel: str,
|
||||||
tl: bool,
|
tl: bool,
|
||||||
pdb: bool,
|
pdb: bool,
|
||||||
# tsdb: bool,
|
|
||||||
# es: bool,
|
|
||||||
):
|
):
|
||||||
'''
|
'''
|
||||||
Spawn the piker broker-daemon.
|
Start the "root service actor", `pikerd`, run it until
|
||||||
|
cancellation.
|
||||||
|
|
||||||
|
This "root daemon" operates as the top most service-mngr and
|
||||||
|
subsys-as-subactor supervisor, think of it as the "init proc" of
|
||||||
|
any of any `piker` application or daemon-process tree.
|
||||||
|
|
||||||
'''
|
'''
|
||||||
# from tractor.devx import maybe_open_crash_handler
|
# from tractor.devx import maybe_open_crash_handler
|
||||||
|
|
@ -240,6 +234,14 @@ def cli(
|
||||||
regaddr: str,
|
regaddr: str,
|
||||||
|
|
||||||
) -> None:
|
) -> None:
|
||||||
|
'''
|
||||||
|
The "root" `piker`-cmd CLI endpoint.
|
||||||
|
|
||||||
|
NOTE, this def generally relies on and requires a sub-cmd to be
|
||||||
|
provided by the user, OW only a `--help` msg (listing said
|
||||||
|
subcmds) will be dumped to console.
|
||||||
|
|
||||||
|
'''
|
||||||
if configdir is not None:
|
if configdir is not None:
|
||||||
assert os.path.isdir(configdir), f"`{configdir}` is not a valid path"
|
assert os.path.isdir(configdir), f"`{configdir}` is not a valid path"
|
||||||
config._override_config_dir(configdir)
|
config._override_config_dir(configdir)
|
||||||
|
|
@ -301,18 +303,47 @@ def cli(
|
||||||
def services(
|
def services(
|
||||||
config,
|
config,
|
||||||
tl: bool,
|
tl: bool,
|
||||||
ports,
|
ports: list[int],
|
||||||
):
|
):
|
||||||
|
'''
|
||||||
|
List all `piker` "service deamons" to the console in
|
||||||
|
a `json`-table which maps each actor's UID in the form,
|
||||||
|
|
||||||
from ..service import (
|
`{service_name}.{subservice_name}.{UUID}`
|
||||||
|
|
||||||
|
to its (primary) IPC server address.
|
||||||
|
|
||||||
|
(^TODO, should be its multiaddr form once we support it)
|
||||||
|
|
||||||
|
Note that by convention actors which operate as "headless"
|
||||||
|
processes (those without GUIs/graphics, and which generally
|
||||||
|
parent some noteworthy subsystem) are normally suffixed by
|
||||||
|
a "d" such as,
|
||||||
|
|
||||||
|
- pikerd: the root runtime supervisor
|
||||||
|
- brokerd: a broker-backend order ctl daemon
|
||||||
|
- emsd: the internal dark-clearing and order routing daemon
|
||||||
|
- datad: a data-provider-backend data feed daemon
|
||||||
|
- samplerd: the real-time data sampling and clock-syncing daemon
|
||||||
|
|
||||||
|
"Headed units" are normally just given an obvious app-like name
|
||||||
|
with subactors indexed by `.` such as,
|
||||||
|
- chart: the primary modal charting iface, a Qt app
|
||||||
|
- chart.fsp_0: a financial-sig-proc cascade instance which
|
||||||
|
delivers graphics to a parent `chart` app.
|
||||||
|
- polars_boi: some (presumably) `polars` using console app.
|
||||||
|
|
||||||
|
'''
|
||||||
|
from piker.service import (
|
||||||
open_piker_runtime,
|
open_piker_runtime,
|
||||||
_default_registry_port,
|
_default_registry_port,
|
||||||
_default_registry_host,
|
_default_registry_host,
|
||||||
)
|
)
|
||||||
|
|
||||||
host = _default_registry_host
|
# !TODO, mk this to work with UDS!
|
||||||
|
host: str = _default_registry_host
|
||||||
if not ports:
|
if not ports:
|
||||||
ports = [_default_registry_port]
|
ports: list[int] = [_default_registry_port]
|
||||||
|
|
||||||
addr = tractor._addr.wrap_address(
|
addr = tractor._addr.wrap_address(
|
||||||
addr=(host, ports[0])
|
addr=(host, ports[0])
|
||||||
|
|
@ -347,7 +378,15 @@ def services(
|
||||||
|
|
||||||
|
|
||||||
def _load_clis() -> None:
|
def _load_clis() -> None:
|
||||||
# from ..service import elastic # noqa
|
'''
|
||||||
|
Dynamically load and register all subsys CLI endpoints (at call
|
||||||
|
time).
|
||||||
|
|
||||||
|
NOTE, obviously this is normally expected to be called at
|
||||||
|
`import` time and implicitly relies on our use of various
|
||||||
|
`click`/`typer` decorator APIs.
|
||||||
|
|
||||||
|
'''
|
||||||
from ..brokers import cli # noqa
|
from ..brokers import cli # noqa
|
||||||
from ..ui import cli # noqa
|
from ..ui import cli # noqa
|
||||||
from ..watchlists import cli # noqa
|
from ..watchlists import cli # noqa
|
||||||
|
|
@ -357,5 +396,5 @@ def _load_clis() -> None:
|
||||||
from ..accounting import cli # noqa
|
from ..accounting import cli # noqa
|
||||||
|
|
||||||
|
|
||||||
# load downstream cli modules
|
# load all subsytem cli eps
|
||||||
_load_clis()
|
_load_clis()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue