1
0
Fork 0
tractor/tractor
Tyler Goodlet 4e252526b5 Accept `tn` to `gather_contexts()/maybe_open_context()`
Such that the caller can be responsible for their own (nursery) scoping
as needed and, for the latter fn's case with
a `trio.Nursery.CancelStatus.encloses()` check to ensure the `tn` is
a valid parent-ish.

Some deats,
- in `gather_contexts()`, mv the `try/finally` outside the nursery block
  to ensure we always do the `parent_exit`.
- for `maybe_open_context()` we do a naive task-tree hierarchy audit to
  ensure the provided scope is not *too* child-ish (with what APIs `trio`
  gives us, see above), OW go with the old approach of using the actor's
  private service nursery.
  Also,
  * better report `trio.Cancelled` around the cache-miss `yield`
    cases and ensure we **never** unmask triggering key-errors.
  * report on any stale-state with the mutex in the `finally` block.
2025-08-18 21:07:12 -04:00
..
_testing Mk `.devx._debug` a sub-pkg `.devx.debug` 2025-07-14 00:00:12 -04:00
devx Stackscope import fail msg dun need braces.. 2025-08-15 16:34:03 -04:00
experimental Add API-modernize-todo on `experimental._pubsub.fan_out_to_ctxs` 2025-07-08 18:05:05 -04:00
ipc Never shield-wait `ipc_server.wait_for_no_more_peers()` 2025-08-18 10:46:37 -04:00
msg Update buncha log msg fmting in `.msg._ops` 2025-08-15 16:30:10 -04:00
trionics Accept `tn` to `gather_contexts()/maybe_open_context()` 2025-08-18 21:07:12 -04:00
__init__.py move tractor._ipc.py into tractor.ipc._chan.py 2025-07-08 12:57:28 -04:00
_addr.py Move concrete `Address`es to each tpt module 2025-07-08 18:05:05 -04:00
_child.py Adjust `._child` instantiation of `Actor` to use newly named `uuid` arg 2025-07-08 12:57:28 -04:00
_clustering.py Fix cluster suite, chng to new `gather_contexts()` 2025-08-18 10:46:37 -04:00
_context.py Use collapser in rent side of `Context` 2025-08-18 10:46:37 -04:00
_discovery.py Switch to strict-eg nurseries almost everywhere 2025-08-18 10:46:37 -04:00
_entry.py Drop `actor_info: str` from `._entry` logs 2025-08-15 16:24:06 -04:00
_exceptions.py Move `.is_multi_cancelled()` to `.trioniics._beg` 2025-07-16 15:49:18 -04:00
_forkserver_override.py Re-license code base for distribution under AGPL 2021-12-14 23:33:27 -05:00
_mp_fixup_main.py Avoid importing mp for as long as possible 2022-02-17 11:55:26 -05:00
_multiaddr.py Fix doc string "its" typo.. 2025-03-20 19:50:31 -04:00
_portal.py Switch to strict-eg nurseries almost everywhere 2025-08-18 10:46:37 -04:00
_root.py Couple more `._root` logging tweaks.. 2025-08-18 10:46:37 -04:00
_rpc.py Switch to strict-eg nurseries almost everywhere 2025-08-18 10:46:37 -04:00
_runtime.py Never shield-wait `ipc_server.wait_for_no_more_peers()` 2025-08-18 10:46:37 -04:00
_spawn.py Drop duplicated (masked) debugging-`terminate_after`, prolly a rebase slip.. 2025-08-15 16:33:31 -04:00
_state.py Add initial `repl_fixture` support B) 2025-07-14 00:00:12 -04:00
_streaming.py Mk `.devx._debug` a sub-pkg `.devx.debug` 2025-07-14 00:00:12 -04:00
_supervise.py Switch to strict-eg nurseries almost everywhere 2025-08-18 10:46:37 -04:00
log.py .log: expose `at_least_level()` as `StackLevelAdapter` meth 2025-08-15 17:29:22 -04:00
to_asyncio.py Move `.is_multi_cancelled()` to `.trioniics._beg` 2025-07-16 15:49:18 -04:00