forked from goodboy/tractor
1
0
Fork 0

Add explanation to module load error

debug_refine
Tyler Goodlet 2020-10-15 22:49:12 -04:00
parent 5822d38ae4
commit 1580cc6fa0
2 changed files with 15 additions and 2 deletions

View File

@ -301,7 +301,18 @@ class Actor:
try:
return getattr(self._mods[ns], funcname)
except KeyError as err:
raise ModuleNotExposed(*err.args)
mne = ModuleNotExposed(*err.args)
if ns == '__main__':
msg = (
"\n\nMake sure you exposed the current module using:\n\n"
"ActorNursery.start_actor(<name>, rpc_module_paths="
"[__name__])"
)
mne.msg += msg
raise mne
async def _stream_handler(
self,
@ -591,7 +602,7 @@ class Actor:
# Receive runtime state from our parent
parent_data = await chan.recv()
log.debug(
"Recieved state from parent:\n"
"Received state from parent:\n"
f"{parent_data}"
)
accept_addr = (
@ -599,6 +610,7 @@ class Actor:
parent_data.pop('bind_port'),
)
rvs = parent_data.pop('_runtime_vars')
log.debug(f"Runtime vars are: {rvs}")
rvs['_is_root'] = False
_state._runtime_vars.update(rvs)

View File

@ -42,6 +42,7 @@ async def get_root(
**kwargs,
) -> typing.AsyncGenerator[Union[Portal, LocalPortal], None]:
host, port = _runtime_vars['_root_mailbox']
assert host is not None
async with _connect_chan(host, port) as chan:
async with open_portal(chan, **kwargs) as portal:
yield portal