Just import `._runtime` ns in `._root`; be a bit more explicit

strict_egs_everywhere
Tyler Goodlet 2025-06-16 15:37:21 -04:00
parent f23ee3cd22
commit 8c90521562
1 changed files with 8 additions and 20 deletions

View File

@ -37,13 +37,7 @@ import warnings
import trio import trio
from ._runtime import ( from . import _runtime
Actor,
Arbiter,
# TODO: rename and make a non-actor subtype?
# Arbiter as Registry,
async_main,
)
from .devx import ( from .devx import (
debug, debug,
_frame_stack, _frame_stack,
@ -198,7 +192,7 @@ async def open_root_actor(
# read-only state to sublayers? # read-only state to sublayers?
# extra_rt_vars: dict|None = None, # extra_rt_vars: dict|None = None,
) -> Actor: ) -> _runtime.Actor:
''' '''
Initialize the `tractor` runtime by starting a "root actor" in Initialize the `tractor` runtime by starting a "root actor" in
a parent-most Python process. a parent-most Python process.
@ -384,7 +378,7 @@ async def open_root_actor(
f'Registry(s) seem(s) to exist @ {ponged_addrs}' f'Registry(s) seem(s) to exist @ {ponged_addrs}'
) )
actor = Actor( actor = _runtime.Actor(
name=name or 'anonymous', name=name or 'anonymous',
uuid=mk_uuid(), uuid=mk_uuid(),
registry_addrs=ponged_addrs, registry_addrs=ponged_addrs,
@ -419,7 +413,8 @@ async def open_root_actor(
# https://github.com/goodboy/tractor/pull/348 # https://github.com/goodboy/tractor/pull/348
# https://github.com/goodboy/tractor/issues/296 # https://github.com/goodboy/tractor/issues/296
actor = Arbiter( # TODO: rename as `RootActor` or is that even necessary?
actor = _runtime.Arbiter(
name=name or 'registrar', name=name or 'registrar',
uuid=mk_uuid(), uuid=mk_uuid(),
registry_addrs=registry_addrs, registry_addrs=registry_addrs,
@ -446,20 +441,13 @@ async def open_root_actor(
f'{ml_addrs_str}' f'{ml_addrs_str}'
) )
# start the actor runtime in a new task # start runtime in a bg sub-task, yield to caller.
async with ( async with (
# ?? TODO, causes test failures..
# - advanced_faults
# - cancellation
# - clustering
#
collapse_eg(), collapse_eg(),
trio.open_nursery() as root_tn, trio.open_nursery() as root_tn,
# trio.open_nursery(strict_exception_groups=False) as root_tn,
): ):
# ``_runtime.async_main()`` creates an internal nursery # `_runtime.async_main()` creates an internal nursery
# and blocks here until any underlying actor(-process) # and blocks here until any underlying actor(-process)
# tree has terminated thereby conducting so called # tree has terminated thereby conducting so called
# "end-to-end" structured concurrency throughout an # "end-to-end" structured concurrency throughout an
@ -469,7 +457,7 @@ async def open_root_actor(
# well. # well.
await root_tn.start( await root_tn.start(
partial( partial(
async_main, _runtime.async_main,
actor, actor,
accept_addrs=trans_bind_addrs, accept_addrs=trans_bind_addrs,
parent_addr=None parent_addr=None