Use `tractor.Address` for endpoint resolution
Replace manual `layers['ipv4']['addr']` / `layers['tcp']['port']` tuple extraction with direct `tractor.Address` objects returned from `load_trans_eps()`. In `open_pikerd()` call `addr.unwrap()` for the raw-tuple comparison against `root_actor.accept_addrs`. Deats, - `conf.toml`: update maddr prefix `/ipv4/` -> `/ipv/`, add commented UDS socket path example. - `cli/__init__.py`: wrap endpoint loading in `maybe_open_crash_handler`, append `addr` objects directly to `regaddrs`. - `ui/cli.py`: restructure `chart()` body into `maybe_open_crash_handler` scope, switch to `registry_addrs` from config, comment out the `network`-based `load_trans_eps` path (WIP `multiaddr` transition). - `_actor_runtime.py`: use `addr.unwrap()` for accept-addr membership check. - `uv.lock`: add `multiaddr >= 0.2.0` and its transitive deps. (this commit msg was generated in some part by [`claude-code`][claude-code-gh]) [claude-code-gh]: https://github.com/anthropics/claude-codewkt/land_flake_update
parent
c347ab08ea
commit
1fde12d3fd
|
|
@ -1,7 +1,8 @@
|
|||
[network]
|
||||
pikerd = [
|
||||
'/ipv4/127.0.0.1/tcp/6116', # std localhost daemon-actor tree
|
||||
# '/uds/6116', # TODO std uds socket file
|
||||
'/ipv/127.0.0.1/tcp/6116', # TCP localhost loopback
|
||||
|
||||
# '/uds/run/user/1000/piker/pikerd@6116.sock', # UDS socket path using `multiaddr` lib!
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -161,15 +161,15 @@ def pikerd(
|
|||
)]
|
||||
|
||||
else:
|
||||
eps: dict = load_trans_eps(
|
||||
network,
|
||||
maddr,
|
||||
)
|
||||
for layers in eps['pikerd']:
|
||||
regaddrs.append((
|
||||
layers['ipv4']['addr'],
|
||||
layers['tcp']['port'],
|
||||
))
|
||||
from tractor.devx import maybe_open_crash_handler
|
||||
with maybe_open_crash_handler(pdb=pdb):
|
||||
eps: dict[str, list] = load_trans_eps(
|
||||
network,
|
||||
maddr,
|
||||
)
|
||||
addrs: list[tractor.Address] = eps['pikerd']
|
||||
for addr in addrs:
|
||||
regaddrs.append(addr)
|
||||
|
||||
from .. import service
|
||||
|
||||
|
|
|
|||
|
|
@ -210,7 +210,10 @@ async def open_pikerd(
|
|||
trio.open_nursery() as service_tn,
|
||||
):
|
||||
for addr in reg_addrs:
|
||||
if addr not in root_actor.accept_addrs:
|
||||
uaddr: tuple = addr.unwrap()
|
||||
if (
|
||||
uaddr not in root_actor.accept_addrs
|
||||
):
|
||||
raise RuntimeError(
|
||||
f'`pikerd` failed to bind on {addr}!\n'
|
||||
'Maybe you have another daemon already running?'
|
||||
|
|
|
|||
118
piker/ui/cli.py
118
piker/ui/cli.py
|
|
@ -22,7 +22,10 @@ import os
|
|||
import click
|
||||
import tractor
|
||||
|
||||
from ..cli import cli
|
||||
from ..cli import (
|
||||
cli,
|
||||
load_trans_eps,
|
||||
)
|
||||
from .. import watchlists as wl
|
||||
from ..service import maybe_spawn_brokerd
|
||||
|
||||
|
|
@ -159,67 +162,64 @@ def chart(
|
|||
needed if not discovered via [network] config.
|
||||
|
||||
'''
|
||||
# eg. ``--profile 3`` reports profiling for anything slower then 3 ms.
|
||||
if profile is not None:
|
||||
from .. import _profile
|
||||
_profile._pg_profile = True
|
||||
_profile.ms_slower_then = float(profile)
|
||||
|
||||
# Qt UI entrypoint
|
||||
from ._app import _main
|
||||
|
||||
for symbol in symbols:
|
||||
if '.' not in symbol:
|
||||
click.echo(click.style(
|
||||
f'symbol: {symbol} must have a {symbol}.<provider> suffix',
|
||||
fg='red',
|
||||
))
|
||||
return
|
||||
|
||||
# global opts
|
||||
# brokernames: list[str] = config['brokers']
|
||||
brokermods = config['brokermods']
|
||||
assert brokermods
|
||||
tractorloglevel = config['tractorloglevel']
|
||||
pikerloglevel = config['loglevel']
|
||||
|
||||
maddrs: list[tuple[str, int]] = config.get(
|
||||
'maddrs',
|
||||
[],
|
||||
)
|
||||
|
||||
# if maddrs:
|
||||
# from tractor._multiaddr import parse_maddr
|
||||
# for addr in maddrs:
|
||||
# breakpoint()
|
||||
# layers: dict = parse_maddr(addr)
|
||||
|
||||
regaddrs: list[tuple[str, int]] = config.get(
|
||||
'registry_addrs',
|
||||
[],
|
||||
)
|
||||
|
||||
from ..config import load
|
||||
conf, _ = load(
|
||||
conf_name='conf',
|
||||
)
|
||||
network: dict = conf.get('network')
|
||||
if network:
|
||||
from ..cli import load_trans_eps
|
||||
eps: dict = load_trans_eps(
|
||||
network,
|
||||
maddrs,
|
||||
)
|
||||
for layers in eps['pikerd']:
|
||||
regaddrs.append((
|
||||
layers['ipv4']['addr'],
|
||||
layers['tcp']['port'],
|
||||
))
|
||||
|
||||
# breakpoint()
|
||||
from tractor.devx import maybe_open_crash_handler
|
||||
pdb: bool = config['pdb']
|
||||
with maybe_open_crash_handler(pdb=pdb):
|
||||
# eg. ``--profile 3`` reports profiling for anything slower then 3 ms.
|
||||
if profile is not None:
|
||||
from .. import _profile
|
||||
_profile._pg_profile = True
|
||||
_profile.ms_slower_then = float(profile)
|
||||
|
||||
# Qt UI entrypoint
|
||||
from ._app import _main
|
||||
|
||||
for symbol in symbols:
|
||||
if '.' not in symbol:
|
||||
click.echo(click.style(
|
||||
f'symbol: {symbol} must have a {symbol}.<provider> suffix',
|
||||
fg='red',
|
||||
))
|
||||
return
|
||||
|
||||
# global opts
|
||||
# brokernames: list[str] = config['brokers']
|
||||
brokermods = config['brokermods']
|
||||
assert brokermods
|
||||
tractorloglevel = config['tractorloglevel']
|
||||
pikerloglevel = config['loglevel']
|
||||
|
||||
# !TODO, allow declaring bind addr via maddr!
|
||||
from ..config import load
|
||||
conf, _ = load(
|
||||
conf_name='conf',
|
||||
)
|
||||
|
||||
regaddrs: list[tuple[str, int]] = config.get(
|
||||
'registry_addrs',
|
||||
[],
|
||||
)
|
||||
# network: dict = conf.get('network')
|
||||
# if network:
|
||||
# eps: dict = load_trans_eps(
|
||||
# network,
|
||||
# maddrs=None,
|
||||
# )
|
||||
# addr: tractor.Address
|
||||
# for addr in eps['pikerd']:
|
||||
# regaddrs.append(addr)
|
||||
|
||||
# # !TODO, expose this from open_root_actor()!
|
||||
# tpt_bind_addrs: list[
|
||||
# tractor.Address # `Address.get_random()` case
|
||||
# |tractor.UnwrappedAddress # registrar case `= uw_reg_addrs`
|
||||
# ] = []
|
||||
# chart_maddrs: list[str] = eps.get('chart')
|
||||
# if chart_maddrs:
|
||||
# addr: tractor.Address
|
||||
# for addr in load_trans_eps(chart_maddrs):
|
||||
# tpt_bind_addrs.append(addr)
|
||||
|
||||
_main(
|
||||
syms=symbols,
|
||||
brokermods=brokermods,
|
||||
|
|
|
|||
Loading…
Reference in New Issue