Use explicit named args

implicit_runtime
Tyler Goodlet 2021-01-02 21:34:39 -05:00
parent e6245671b0
commit 803152ead5
1 changed files with 20 additions and 7 deletions

View File

@ -30,7 +30,10 @@ logger = log.get_logger('tractor')
async def open_root_actor(
# defaults are above
arbiter_addr: Tuple[str, int],
arbiter_addr: Tuple[str, int] = (
_default_arbiter_host,
_default_arbiter_port,
),
name: Optional[str] = 'root',
@ -42,7 +45,11 @@ async def open_root_actor(
# enables the multi-process debugger support
debug_mode: bool = False,
**kwargs,
# internal logging
loglevel: Optional[str] = None,
rpc_module_paths: Optional[List] = None,
) -> typing.Any:
"""Async entry point for ``tractor``.
@ -50,6 +57,9 @@ async def open_root_actor(
# mark top most level process as root actor
_state._runtime_vars['_is_root'] = True
# caps based rpc list
expose_modules = rpc_module_paths or []
if start_method is not None:
_spawn.try_set_start_method(start_method)
@ -58,7 +68,7 @@ async def open_root_actor(
# expose internal debug module to every actor allowing
# for use of ``await tractor.breakpoint()``
kwargs.setdefault('rpc_module_paths', []).append('tractor._debug')
expose_modules.append('tractor._debug')
elif debug_mode:
raise RuntimeError(
@ -70,7 +80,7 @@ async def open_root_actor(
_default_arbiter_port
)
loglevel = kwargs.get('loglevel', log.get_loglevel())
loglevel = loglevel or log.get_loglevel()
if loglevel is not None:
log._default_loglevel = loglevel
log.get_console_log(loglevel)
@ -94,12 +104,14 @@ async def open_root_actor(
actor = Actor(
name or 'anonymous',
arbiter_addr=arbiter_addr,
**kwargs
loglevel=loglevel,
rpc_module_paths=expose_modules,
)
host, port = (host, 0)
else:
# start this local actor as the arbiter
# start this local actor as the arbiter (aka a regular actor who
# manages the local registry of "mailboxes")
# Note that if the current actor is the arbiter it is desirable
# for it to stay up indefinitely until a re-election process has
@ -108,7 +120,8 @@ async def open_root_actor(
actor = Arbiter(
name or 'arbiter',
arbiter_addr=arbiter_addr,
**kwargs
loglevel=loglevel,
rpc_module_paths=expose_modules,
)
try: