f81e802219 
								
							
								 
							
						 
						
							
							
								
								Support `loglevel` fixture injection  
							
							... 
							
							
							
							For `pytest`, support defining a `loglevel` fixture value which will be
passed into internals when using `@tractor_test`. 
							
						 
						
							2018-11-30 01:11:08 -05:00  
				
					
						
							
							
								 
						
							
							
								58ebacf0f7 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #45  from tgoodlet/expose_tractor_test  
							
							... 
							
							
							
							Expose `tractor_test` for external use 
							
						 
						
							2018-11-26 14:42:24 -05:00  
				
					
						
							
							
								 
						
							
							
								321c096496 
								
							
								 
							
						 
						
							
							
								
								Add testing sub-pkg  
							
							
							
						 
						
							2018-11-26 14:16:29 -05:00  
				
					
						
							
							
								 
						
							
							
								512a2f25a2 
								
							
								 
							
						 
						
							
							
								
								Expose `tractor_test` in the same way as `trio`  
							
							
							
						 
						
							2018-11-26 11:26:04 -05:00  
				
					
						
							
							
								 
						
							
							
								0879150399 
								
							
								 
							
						 
						
							
							
								
								Move `tractor_test` to new module  
							
							
							
						 
						
							2018-11-26 11:20:53 -05:00  
				
					
						
							
							
								 
						
							
							
								b0f7e6a954 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #42  from tgoodlet/improved_errors  
							
							... 
							
							
							
							Improved errors - introduce trio.MultiError 
							
						 
						
							2018-11-22 14:56:11 -05:00  
				
					
						
							
							
								 
						
							
							
								23c7519fec 
								
							
								 
							
						 
						
							
							
								
								Jeeze 3.7.1 got even faster?  
							
							
							
						 
						
							2018-11-22 14:25:31 -05:00  
				
					
						
							
							
								 
						
							
							
								a482681f9c 
								
							
								 
							
						 
						
							
							
								
								Leverage `pytest.raises()` better; fix a bunch of docs  
							
							
							
						 
						
							2018-11-22 11:43:04 -05:00  
				
					
						
							
							
								 
						
							
							
								469a1e5874 
								
							
								 
							
						 
						
							
							
								
								Pin to trio 0.8+  
							
							
							
						 
						
							2018-11-19 18:43:38 -05:00  
				
					
						
							
							
								 
						
							
							
								3e74cc6f11 
								
							
								 
							
						 
						
							
							
								
								Verify nested boxed errors  
							
							
							
						 
						
							2018-11-19 16:53:21 -05:00  
				
					
						
							
							
								 
						
							
							
								0a240187c6 
								
							
								 
							
						 
						
							
							
								
								Log the exception when unable to ship back rpc errors  
							
							
							
						 
						
							2018-11-19 16:52:55 -05:00  
				
					
						
							
							
								 
						
							
							
								7a2b7d9d14 
								
							
								 
							
						 
						
							
							
								
								Delay tweak for py3.7.1  
							
							
							
						 
						
							2018-11-19 14:17:01 -05:00  
				
					
						
							
							
								 
						
							
							
								9102c48810 
								
							
								 
							
						 
						
							
							
								
								Add multierror cancellation tests  
							
							
							
						 
						
							2018-11-19 14:16:42 -05:00  
				
					
						
							
							
								 
						
							
							
								82fcf025cc 
								
							
								 
							
						 
						
							
							
								
								Fix: MultiError isn't an Exception...  
							
							
							
						 
						
							2018-11-19 14:16:09 -05:00  
				
					
						
							
							
								 
						
							
							
								1bb37dbddf 
								
							
								 
							
						 
						
							
							
								
								Expose trio.MultiError publicly  
							
							
							
						 
						
							2018-11-19 14:15:28 -05:00  
				
					
						
							
							
								 
						
							
							
								9bb8a062eb 
								
							
								 
							
						 
						
							
							
								
								mypy fixes  
							
							
							
						 
						
							2018-11-19 08:47:42 -05:00  
				
					
						
							
							
								 
						
							
							
								835d1fa07a 
								
							
								 
							
						 
						
							
							
								
								Vastly improve error triggered cancellation  
							
							... 
							
							
							
							At the expense of a bit more complexity in `ActorNursery.wait()`
(which I commented the heck out of fwiw) this adds far superior and
correct cancellation semantics for when a nursery is cancelled due
to (remote) errors in subactors.
This includes:
- `wait()` will now raise a `trio.MultiError` if multiple subactors
  error with the same semantics as in `trio`.
- in `wait()` portals which are paired with `run_in_actor()`
  spawned subactors (versus `start_actor()`) are waited on separately
  and if the nursery **hasn't** been cancelled but there are errors
  those are raised immediately before waiting on `start_actor()`
  subactors which will block indefinitely if they haven't been
  explicitly cancelled.
- if `wait()` does raise when the nursery hasn't yet been cancelled
  it's expected that it will be called again depending on the actor
  supervision strategy (i.e. right now we operate with a one-cancels-all
  strategy, the same as `trio`, so `ActorNursery.__aexit__() calls
  `cancel()` if any error is raised by `wait()`).
Oh and I added `is_main_process()` helper; can't remember why.. 
							
						 
						
							2018-11-19 08:44:19 -05:00  
				
					
						
							
							
								 
						
							
							
								e75b25dc21 
								
							
								 
							
						 
						
							
							
								
								Improve error propagation machinery  
							
							... 
							
							
							
							Use the new custom error types throughout the actor and portal
primitives and set a few new rules:
- internal errors are any error not raised by an rpc task and are
  **not** forwarded to portals but instead are raised directly in
  the msg loop.
- portals always re-raise a "main task" error for every call to
  ``Portal.result()``. 
							
						 
						
							2018-11-19 04:05:07 -05:00  
				
					
						
							
							
								 
						
							
							
								2f6609ab78 
								
							
								 
							
						 
						
							
							
								
								Add custom exceptions with msg (un)packing  
							
							
							
						 
						
							2018-11-19 03:51:12 -05:00  
				
					
						
							
							
								 
						
							
							
								71bb87aa3a 
								
							
								 
							
						 
						
							
							
								
								Drop deprecated trio error  
							
							
							
						 
						
							2018-11-09 01:53:15 -05:00  
				
					
						
							
							
								 
						
							
							
								12fa5542b1 
								
							
								 
							
						 
						
							
							
								
								Oh, mypy...  
							
							
							
						 
						
							2018-11-09 01:52:57 -05:00  
				
					
						
							
							
								 
						
							
							
								2ce8e06619 
								
							
								 
							
						 
						
							
							
								
								Some minor doc/comment tweaks  
							
							
							
						 
						
							2018-11-09 01:40:12 -05:00  
				
					
						
							
							
								 
						
							
							
								aa32f42715 
								
							
								 
							
						 
						
							
							
								
								Avoid hanging multi-prog test when SIGINT fails  
							
							
							
						 
						
							2018-11-09 01:36:45 -05:00  
				
					
						
							
							
								 
						
							
							
								aa8238d5e0 
								
							
								 
							
						 
						
							
							
								
								Revert allowing multiple stream handlers; clutters test output  
							
							
							
						 
						
							2018-11-09 01:35:51 -05:00  
				
					
						
							
							
								 
						
							
							
								8b7bf4fc07 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #39  from tgoodlet/self_register  
							
							... 
							
							
							
							Verify arbiter self registration works 
							
						 
						
							2018-09-21 10:18:17 -04:00  
				
					
						
							
							
								 
						
							
							
								109b5971ed 
								
							
								 
							
						 
						
							
							
								
								Don't overload `func` arg  
							
							
							
						 
						
							2018-09-21 10:11:27 -04:00  
				
					
						
							
							
								 
						
							
							
								034146f2b1 
								
							
								 
							
						 
						
							
							
								
								Verify arbiter self registration  
							
							
							
						 
						
							2018-09-21 00:32:23 -04:00  
				
					
						
							
							
								 
						
							
							
								2973d7f1de 
								
							
								 
							
						 
						
							
							
								
								Await async funcs properly in `LocalPortal.run()`  
							
							
							
						 
						
							2018-09-21 00:31:30 -04:00  
				
					
						
							
							
								 
						
							
							
								71b44b997e 
								
							
								 
							
						 
						
							
							
								
								Drop sillyness in intro  
							
							
							
						 
						
							2018-09-20 20:30:57 -04:00  
				
					
						
							
							
								 
						
							
							
								7dd91d0684 
								
							
								 
							
						 
						
							
							
								
								Wait longer for arbiter-daemon to spawn on py3.6  
							
							
							
						 
						
							2018-09-17 09:17:11 -04:00  
				
					
						
							
							
								 
						
							
							
								65beb2d84e 
								
							
								 
							
						 
						
							
							
								
								Top level actor must have a `main()` now  
							
							
							
						 
						
							2018-09-14 16:34:13 -04:00  
				
					
						
							
							
								 
						
							
							
								716a44b6b8 
								
							
								 
							
						 
						
							
							
								
								Better document `run_daemon()`  
							
							
							
						 
						
							2018-09-14 16:33:45 -04:00  
				
					
						
							
							
								 
						
							
							
								85a5d1f849 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #38  from tgoodlet/multi_program_tests  
							
							... 
							
							
							
							Multi program tests 
							
						 
						
							2018-09-10 22:43:39 -04:00  
				
					
						
							
							
								 
						
							
							
								827a6c6014 
								
							
								 
							
						 
						
							
							
								
								Make `rpc_modules` a positional arg to `tractor.run_daemon()`  
							
							
							
						 
						
							2018-09-10 22:31:23 -04:00  
				
					
						
							
							
								 
						
							
							
								037c4c3797 
								
							
								 
							
						 
						
							
							
								
								Comment tweak  
							
							
							
						 
						
							2018-09-10 15:28:19 -04:00  
				
					
						
							
							
								 
						
							
							
								d808ffd8f3 
								
							
								 
							
						 
						
							
							
								
								`Logger.warn()` is deprecated  
							
							
							
						 
						
							2018-09-10 15:19:49 -04:00  
				
					
						
							
							
								 
						
							
							
								d12136d44d 
								
							
								 
							
						 
						
							
							
								
								Add some mult-program tests  
							
							... 
							
							
							
							Run the arbiter-actor in a separate program and do some basic tests to
make sure everything works - particularly, registration and
cancellation. 
							
						 
						
							2018-09-08 09:44:29 -04:00  
				
					
						
							
							
								 
						
							
							
								ee7959cb55 
								
							
								 
							
						 
						
							
							
								
								Fix same named actor race  
							
							... 
							
							
							
							When an actor has already been registered with the arbiter it should
exist in the registry and thus the wait event should have been removed.
Check that the registry indeed holds an event before clearing it. 
							
						 
						
							2018-09-08 09:40:35 -04:00  
				
					
						
							
							
								 
						
							
							
								6b8393a4d6 
								
							
								 
							
						 
						
							
							
								
								Add `tractor.run_daemon()` for running a main rpc daemon  
							
							
							
						 
						
							2018-09-08 09:39:53 -04:00  
				
					
						
							
							
								 
						
							
							
								0ca668453c 
								
							
								 
							
						 
						
							
							
								
								Running without a main func is a type error  
							
							
							
						 
						
							2018-09-05 18:13:23 -04:00  
				
					
						
							
							
								 
						
							
							
								914d1b67d8 
								
							
								 
							
						 
						
							
							
								
								Fix typo  
							
							
							
						 
						
							2018-09-04 22:17:12 -04:00  
				
					
						
							
							
								 
						
							
							
								a998a5e415 
								
							
								 
							
						 
						
							
							
								
								Forgot to remove spawn tests from test_local.py  
							
							
							
						 
						
							2018-09-04 22:17:02 -04:00  
				
					
						
							
							
								 
						
							
							
								6dfbdd33a1 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #37  from tgoodlet/tests_reorg  
							
							... 
							
							
							
							Tests reorg 
							
						 
						
							2018-09-03 16:22:44 -04:00  
				
					
						
							
							
								 
						
							
							
								c2457f7cce 
								
							
								 
							
						 
						
							
							
								
								Move basic spawning tests to separate module  
							
							
							
						 
						
							2018-09-02 22:07:32 -04:00  
				
					
						
							
							
								 
						
							
							
								18e101d38e 
								
							
								 
							
						 
						
							
							
								
								Move streaming tests into separate module  
							
							
							
						 
						
							2018-09-02 21:58:42 -04:00  
				
					
						
							
							
								 
						
							
							
								51076ebb5c 
								
							
								 
							
						 
						
							
							
								
								Break cancellation tests into new module  
							
							
							
						 
						
							2018-09-02 11:51:58 -04:00  
				
					
						
							
							
								 
						
							
							
								438a79707f 
								
							
								 
							
						 
						
							
							
								
								Couple more type tweaks  
							
							
							
						 
						
							2018-09-01 14:43:48 -04:00  
				
					
						
							
							
								 
						
							
							
								3dcf16c43d 
								
							
								 
							
						 
						
							
							
								
								Min cancel delay >= 0  
							
							
							
						 
						
							2018-08-31 20:38:34 -04:00  
				
					
						
							
							
								 
						
							
							
								22ac567230 
								
									
								
							
								 
							
						 
						
							
							
								
								Merge pull request  #35  from tgoodlet/type_annotations  
							
							... 
							
							
							
							Add type annotations to most functions 
							
						 
						
							2018-08-31 20:04:39 -04:00  
				
					
						
							
							
								 
						
							
							
								4d63125a3c 
								
							
								 
							
						 
						
							
							
								
								Add mypy checking to CI!  
							
							
							
						 
						
							2018-08-31 18:06:16 -04:00