Compare commits
No commits in common. "2bb33da9c82ad1d19e6ef239ee61b035219aa59b" and "0ccf83d5200c7d40fe155208b8b2c9c6d99a3677" have entirely different histories.
2bb33da9c8
...
0ccf83d520
|
@ -83,26 +83,3 @@ def test_implicit_root_via_first_nursery(
|
||||||
assert tractor.current_actor().aid.name == 'root'
|
assert tractor.current_actor().aid.name == 'root'
|
||||||
|
|
||||||
trio.run(main)
|
trio.run(main)
|
||||||
|
|
||||||
|
|
||||||
def test_runtime_vars_unset(
|
|
||||||
reg_addr: tuple,
|
|
||||||
debug_mode: bool
|
|
||||||
):
|
|
||||||
'''
|
|
||||||
Ensure any `._state._runtime_vars` are restored to default values
|
|
||||||
after the root actor-runtime exits!
|
|
||||||
|
|
||||||
'''
|
|
||||||
assert not tractor._state._runtime_vars['_debug_mode']
|
|
||||||
async def main():
|
|
||||||
assert not tractor._state._runtime_vars['_debug_mode']
|
|
||||||
async with tractor.open_nursery(
|
|
||||||
debug_mode=True,
|
|
||||||
):
|
|
||||||
assert tractor._state._runtime_vars['_debug_mode']
|
|
||||||
|
|
||||||
# after runtime closure, should be reverted!
|
|
||||||
assert not tractor._state._runtime_vars['_debug_mode']
|
|
||||||
|
|
||||||
trio.run(main)
|
|
||||||
|
|
|
@ -276,8 +276,7 @@ async def open_root_actor(
|
||||||
|
|
||||||
if (
|
if (
|
||||||
debug_mode
|
debug_mode
|
||||||
and
|
and _spawn._spawn_method == 'trio'
|
||||||
_spawn._spawn_method == 'trio'
|
|
||||||
):
|
):
|
||||||
_state._runtime_vars['_debug_mode'] = True
|
_state._runtime_vars['_debug_mode'] = True
|
||||||
|
|
||||||
|
@ -513,17 +512,8 @@ async def open_root_actor(
|
||||||
)
|
)
|
||||||
await actor.cancel(None) # self cancel
|
await actor.cancel(None) # self cancel
|
||||||
finally:
|
finally:
|
||||||
# revert all process-global runtime state
|
|
||||||
if (
|
|
||||||
debug_mode
|
|
||||||
and
|
|
||||||
_spawn._spawn_method == 'trio'
|
|
||||||
):
|
|
||||||
_state._runtime_vars['_debug_mode'] = False
|
|
||||||
|
|
||||||
_state._current_actor = None
|
_state._current_actor = None
|
||||||
_state._last_actor_terminated = actor
|
_state._last_actor_terminated = actor
|
||||||
|
|
||||||
logger.runtime(
|
logger.runtime(
|
||||||
f'Root actor terminated\n'
|
f'Root actor terminated\n'
|
||||||
f')>\n'
|
f')>\n'
|
||||||
|
|
|
@ -270,9 +270,7 @@ def get_logger(
|
||||||
subsys_spec: str|None = None,
|
subsys_spec: str|None = None,
|
||||||
|
|
||||||
) -> StackLevelAdapter:
|
) -> StackLevelAdapter:
|
||||||
'''
|
'''Return the package log or a sub-logger for ``name`` if provided.
|
||||||
Return the `tractor`-library root logger or a sub-logger for
|
|
||||||
`name` if provided.
|
|
||||||
|
|
||||||
'''
|
'''
|
||||||
log: Logger
|
log: Logger
|
||||||
|
@ -284,7 +282,7 @@ def get_logger(
|
||||||
name != _proj_name
|
name != _proj_name
|
||||||
):
|
):
|
||||||
|
|
||||||
# NOTE: for handling for modules that use `get_logger(__name__)`
|
# NOTE: for handling for modules that use ``get_logger(__name__)``
|
||||||
# we make the following stylistic choice:
|
# we make the following stylistic choice:
|
||||||
# - always avoid duplicate project-package token
|
# - always avoid duplicate project-package token
|
||||||
# in msg output: i.e. tractor.tractor.ipc._chan.py in header
|
# in msg output: i.e. tractor.tractor.ipc._chan.py in header
|
||||||
|
@ -333,7 +331,7 @@ def get_logger(
|
||||||
|
|
||||||
def get_console_log(
|
def get_console_log(
|
||||||
level: str|None = None,
|
level: str|None = None,
|
||||||
logger: Logger|StackLevelAdapter|None = None,
|
logger: Logger|None = None,
|
||||||
**kwargs,
|
**kwargs,
|
||||||
|
|
||||||
) -> LoggerAdapter:
|
) -> LoggerAdapter:
|
||||||
|
@ -346,23 +344,12 @@ def get_console_log(
|
||||||
Yeah yeah, i know we can use `logging.config.dictConfig()`. You do it.
|
Yeah yeah, i know we can use `logging.config.dictConfig()`. You do it.
|
||||||
|
|
||||||
'''
|
'''
|
||||||
# get/create a stack-aware-adapter
|
log = get_logger(
|
||||||
if (
|
|
||||||
logger
|
|
||||||
and
|
|
||||||
isinstance(logger, StackLevelAdapter)
|
|
||||||
):
|
|
||||||
# XXX, for ex. when passed in by a caller wrapping some
|
|
||||||
# other lib's logger instance with our level-adapter.
|
|
||||||
log = logger
|
|
||||||
|
|
||||||
else:
|
|
||||||
log: StackLevelAdapter = get_logger(
|
|
||||||
logger=logger,
|
logger=logger,
|
||||||
**kwargs
|
**kwargs
|
||||||
)
|
) # set a root logger
|
||||||
|
logger: Logger = log.logger
|
||||||
|
|
||||||
logger: Logger|StackLevelAdapter = log.logger
|
|
||||||
if not level:
|
if not level:
|
||||||
return log
|
return log
|
||||||
|
|
||||||
|
@ -380,7 +367,10 @@ def get_console_log(
|
||||||
None,
|
None,
|
||||||
)
|
)
|
||||||
):
|
):
|
||||||
fmt: str = LOG_FORMAT # always apply our format?
|
fmt = LOG_FORMAT
|
||||||
|
# if logger:
|
||||||
|
# fmt = None
|
||||||
|
|
||||||
handler = StreamHandler()
|
handler = StreamHandler()
|
||||||
formatter = colorlog.ColoredFormatter(
|
formatter = colorlog.ColoredFormatter(
|
||||||
fmt=fmt,
|
fmt=fmt,
|
||||||
|
|
|
@ -31,5 +31,4 @@ from ._broadcast import (
|
||||||
)
|
)
|
||||||
from ._beg import (
|
from ._beg import (
|
||||||
collapse_eg as collapse_eg,
|
collapse_eg as collapse_eg,
|
||||||
maybe_collapse_eg as maybe_collapse_eg,
|
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue