Tyler Goodlet
1e789ecad2
(facepalm) Reraise `BdbQuit` and discard ownerless lock releases
2022-07-27 11:37:59 -04:00
Tyler Goodlet
0503142332
Add WIP while-debugger-active SIGINT ignore handler
2022-07-27 11:37:59 -04:00
goodboy
4902e184e9
Merge pull request #318 from goodboy/aio_error_propagation
...
Add context test that opens an inter-task-channel that errors
2022-07-15 12:42:19 -04:00
Tyler Goodlet
05790a20c1
Slight lint fixes
2022-07-15 11:18:48 -04:00
Tyler Goodlet
565c603300
Add nooz
2022-07-15 11:17:57 -04:00
Tyler Goodlet
f0d78e1a6e
Use local task ref, fixes `mypy`
2022-07-15 10:39:49 -04:00
Tyler Goodlet
ce01f6b21c
Increase timeout for CI/windows
2022-07-14 20:44:10 -04:00
Tyler Goodlet
0906559ed9
Drop manual stack construction, fix attr typo
2022-07-14 20:43:17 -04:00
Tyler Goodlet
38d03858d7
Fix `asyncio`-task-sync and error propagation
...
This fixes an previously undetected bug where if an
`.open_channel_from()` spawned task errored the error would not be
propagated to the `trio` side and instead would fail silently with
a console log error. What was most odd is that it only seems easy to
trigger when you put a slight task sleep before the error is raised
(:eyeroll:). This patch adds a few things to address this and just in
general improve iter-task lifetime syncing:
- add `LinkedTaskChannel._trio_exited: bool` a flag set from the `trio`
side when the channel block exits.
- add a `wait_on_aio_task: bool` flag to `translate_aio_errors` which
toggles whether to wait the `asyncio` task termination event on exit.
- cancel the `asyncio` task if the trio side has ended, when
`._trio_exited == True`.
- always close the `trio` mem channel when the task exits such that
the `asyncio` side can error on any next `.send()` call.
2022-07-14 16:35:41 -04:00
Tyler Goodlet
98de2fab31
Add context test that opens an inter-task-channel that errors
2022-07-14 16:13:12 -04:00
goodboy
80121ed211
Merge pull request #317 from goodboy/drop_msgpack
...
Drop `msgpack`
2022-07-12 13:31:45 -04:00
Tyler Goodlet
41983edc43
Use `str` | `bytes` union for typing msg dump
2022-07-12 11:59:11 -04:00
Tyler Goodlet
5168700fbf
Tolerate non-decode-able bytes
2022-07-12 11:55:55 -04:00
Tyler Goodlet
673c4a8c66
Decode bytes prior to log msg
2022-07-12 11:55:55 -04:00
Tyler Goodlet
932b841176
Allow up to 4 `msgpsec` decode failures
2022-07-12 11:55:55 -04:00
Tyler Goodlet
f594f1bdda
Handle a connection reset on `msgspec` transport
2022-07-12 11:55:55 -04:00
Tyler Goodlet
53e3648eca
Readme bump
2022-07-12 11:52:42 -04:00
Tyler Goodlet
fc36503f4f
Add nooz file
2022-07-12 11:43:10 -04:00
Tyler Goodlet
4e7ab54452
Appease `mypy`
2022-07-12 11:22:30 -04:00
goodboy
86d020d309
Merge pull request #316 from goodboy/310_windows
...
Try windows CI on py 3.10
2022-07-12 10:53:06 -04:00
Tyler Goodlet
bb3f35cdd0
Drop `msgspec` specific CI jobs
2022-07-12 10:37:13 -04:00
Tyler Goodlet
f94b7cd991
Drop `msgpack` lib and use `msgspec` for transport
2022-07-12 10:37:13 -04:00
Tyler Goodlet
f6af5c7bf8
Drop `msgpack` dep, ensure `msgspec` as hard dep
2022-07-12 10:37:09 -04:00
Tyler Goodlet
9740a585d3
Add nooz for win on py3.10
2022-07-12 10:24:44 -04:00
Tyler Goodlet
b700dc34a8
Use `pyreadline3` on windows for py3.10
2022-07-12 10:12:03 -04:00
Tyler Goodlet
9bc1c6f385
Try windows CI on py 3.10
2022-07-11 20:15:35 -04:00
goodboy
f4973e90e9
Merge pull request #314 from goodboy/ci_sdist_install
...
Add an sdist install job
2022-07-11 20:13:24 -04:00
Tyler Goodlet
780e3dd13d
Include ./docs/README.rst in src dist
2022-07-11 14:25:26 -04:00
Tyler Goodlet
e0419b24ec
Add an sdist install job
...
This should hopefully catch issues like,
https://github.com/goodboy/tractor/issues/293
2022-07-11 14:22:22 -04:00
goodboy
71f19f217d
Merge pull request #305 from goodboy/name_query
...
Add `tractor.query_actor()` an addr looker-upper
2022-04-13 09:19:26 -04:00
Tyler Goodlet
8901272854
Fix typing
2022-04-13 08:20:53 -04:00
Tyler Goodlet
7c151bed48
Add nooz
2022-04-13 08:18:11 -04:00
Tyler Goodlet
80897a8f2b
Add `tractor.query_actor()` an addr looker-upper
...
Sometimes it's handy to just have a non-`Portal` yielding way
to figure out if a "service" actor is up, so add this discovery
helper for that. We'll prolly just leave it undocumented for
now until we figure out a longer-term/better discovery system.
2022-04-13 07:50:42 -04:00
goodboy
62983684d1
Merge pull request #308 from goodboy/sort_subs_results_infected_aio
...
Sort `.subscribe()` results before comparison in test
2022-04-12 20:06:55 -04:00
Tyler Goodlet
1c63bb6130
Sort fan out results before comparison in test
2022-04-12 19:49:36 -04:00
goodboy
bfe99f29b8
Merge pull request #304 from goodboy/aio_explicit_task_cancels
...
`LinkedTaskChannel.subscribe()`, explicit `asyncio` task cancel logging, `test_trioisms.py`
2022-04-12 17:27:29 -04:00
Tyler Goodlet
9c27858aaf
WIP prints to debug frickin windows
2022-04-12 16:48:50 -04:00
Tyler Goodlet
597ae4b690
Add nooz file
2022-04-12 15:59:33 -04:00
Tyler Goodlet
fa354ffe2b
Handle not all values pulled case
2022-04-12 15:51:06 -04:00
Tyler Goodlet
333fad8819
Facepalm: join nursery first to avoid channel-closed-too-early
2022-04-12 15:06:35 -04:00
Tyler Goodlet
90593611bb
Add test for `LinkedTaskChannel.subscribe()` fanout feature
2022-04-12 15:06:35 -04:00
Tyler Goodlet
9c43bb28f1
Add a new "trioisms" test mod for tracking `trio` wishlist behaviour
2022-04-12 13:05:56 -04:00
Tyler Goodlet
e45251db56
Simplify to form submitted to njs
2022-04-12 13:05:26 -04:00
Tyler Goodlet
faf751acac
WIP reproduce deadlock issue during error from piker
2022-04-12 13:04:46 -04:00
Tyler Goodlet
20d281f619
Run `mypy` on 3.10
2022-04-12 12:53:12 -04:00
Tyler Goodlet
f3606d5bd8
Type fixes
2022-04-12 11:48:32 -04:00
Tyler Goodlet
032e14e326
Update new license info in setup script
2022-04-12 11:42:44 -04:00
Tyler Goodlet
c322a193f2
Make `LinkedTaskChannel` trio-task-broadcastable with `.subscribe()`
2022-04-12 11:42:44 -04:00
Tyler Goodlet
46963c2e63
Don't handle `GeneratorExit` on `asyncio` tasks
2022-04-12 11:42:44 -04:00
Tyler Goodlet
9b77b8c9ee
Add more explicit `asyncio` task error logging
...
When an `asyncio` side task errors or is cancelled we now explicitly
report the traceback and task name if possible as well as the source
reason for the error (some come from the `trio` side).
Further, properly set any `trio` side exception (after unwrapping it
from the `outcome.Error`) on the future that runs the `trio` guest run.
2022-04-12 11:42:44 -04:00