Tyler Goodlet
368f21d8d6
Update Pipfiles
2018-11-12 00:30:55 -05:00
Tyler Goodlet
f8d619b183
Go GPLv3
2018-11-12 00:29:43 -05:00
Tyler Goodlet
94012b05c3
Screw it; go 3.7 for ``datetime.fromisoformat()``
2018-11-11 23:12:13 -05:00
Tyler Goodlet
ab8008ad61
Repair quote streaming test
2018-11-11 21:59:41 -05:00
Tyler Goodlet
773457ac91
Drop stale import
2018-11-11 21:45:51 -05:00
Tyler Goodlet
2b1818ba33
Drop old stream test, rename stock quote func
2018-11-11 21:45:11 -05:00
Tyler Goodlet
c8cb5a2fdc
Remove duplicate fixture (now in conftest)
2018-11-11 21:07:34 -05:00
Tyler Goodlet
21eb68148c
Add option contract and chain quote test
2018-11-11 21:06:46 -05:00
Tyler Goodlet
a5afa0f1c3
Fix typo
2018-11-11 21:06:25 -05:00
Tyler Goodlet
6bef365fd4
Add conftest
2018-11-11 21:05:44 -05:00
Tyler Goodlet
f9d9d7c1ba
Add option chain quote support!
2018-11-11 21:05:30 -05:00
Tyler Goodlet
666228d82e
Add initial QT stock quoting tests
2018-11-11 18:53:45 -05:00
Tyler Goodlet
82c8fca983
Use tractor.run_daemon() for pikerd
2018-10-18 13:49:20 -04:00
Tyler Goodlet
e108bc4521
Must pass a main async func to tractor
2018-09-05 18:31:10 -04:00
Tyler Goodlet
2349de8314
Rename watchlist app to 'monitor'
2018-08-23 23:12:39 -04:00
goodboy
73b153b6fd
Merge pull request #55 from pikers/mktcap_sorting
...
Fix mktcap sorting
2018-08-23 11:31:43 -04:00
Tyler Goodlet
421cc4731f
Face palm - fix mktcap sorting
...
Yuh think maybe the default "null" value shouldn't be a string...?
Fixes #46
2018-08-22 23:02:08 -04:00
Tyler Goodlet
b2acfdaf42
Fix `pairs` type annotation
2018-08-22 23:01:34 -04:00
Tyler Goodlet
96b17e16ac
Handle stale token case on network outage reconnect
2018-08-22 23:01:14 -04:00
goodboy
e9921949af
Merge pull request #54 from pikers/tractor_updates
...
Tractor updates
2018-08-10 11:09:31 -04:00
Tyler Goodlet
cbc1052bfe
Update tests for new tractor api
2018-08-09 22:43:50 -04:00
Tyler Goodlet
957f1f4b02
Update pipfiles
2018-08-09 22:11:00 -04:00
Tyler Goodlet
f3ac5e3c5f
Port to latest tractor api
2018-08-09 21:54:02 -04:00
goodboy
6dbd919914
Merge pull request #51 from pikers/decouple_tractor
...
Decouple tractor
2018-07-20 13:25:31 -04:00
Tyler Goodlet
e0a127e8eb
Update pipfiles; point to tractor on GH
2018-07-18 14:34:26 -04:00
Tyler Goodlet
da0495816b
Drop tractor unit tests
2018-07-06 17:27:42 -04:00
Tyler Goodlet
3efc7a4f77
Pass through loglevel to tractor
2018-07-06 17:26:45 -04:00
Tyler Goodlet
4427e2869c
Cancel symbol unsub if brokerd is already down
2018-07-06 17:26:24 -04:00
Tyler Goodlet
6c977cfb7b
Port broker core to tractor; fix chan unsub bug
2018-07-06 17:25:40 -04:00
Tyler Goodlet
31b8277f08
Drop tractor modules
2018-07-06 17:19:25 -04:00
goodboy
6ff871ff7d
Merge pull request #50 from pikers/tractor_draft
...
Introducing "tractor"
2018-07-05 15:52:53 -04:00
Tyler Goodlet
94e7083bfc
`tractor.run()` is required for testing now
2018-07-05 15:33:02 -04:00
Tyler Goodlet
f4a91a4975
Always do symbol unsubscribe on teardown
2018-07-05 15:31:52 -04:00
Tyler Goodlet
73eedfd7b3
Set tractor actor name at startup
2018-07-05 15:31:21 -04:00
Tyler Goodlet
aa259433f5
Don't bother unsetting the squeue; let errors propogate up
2018-07-05 15:30:31 -04:00
Tyler Goodlet
0ac564dbf3
Only cancel channel spawned rpc tasks when explicitly notified
2018-07-05 15:27:02 -04:00
Tyler Goodlet
e395845ddb
Every ticker-chan subscription must include a caller id
2018-07-05 15:23:38 -04:00
Tyler Goodlet
5383dd6446
Add a working arbiter registry system
...
Every actor now registers (and unregisters) with the arbiter at
startup/teardown. For now the registry is stored in a plain `dict` in
the arbiter's memory. This makes it possible to easily coordinate actors
started as plain Python processes or via `multiprocessing`.
A whole smörgåsbord of changes was required to accomplish this:
- factor handshake steps into a func
- track *every* channel connected to an actor including multiples to the
same remote peer (may want to optimize this later)
- handle `trio.ClosedStreamError` gracefully in the message loop
- add an `open_portal` asynccontextmanager which handles channel
creation, handshaking, and spawning a bg task for msg processing
- add a `start_actor()` for starting in-process actors directly
- add working `get_arbiter()` and `find_actor()` public routines
- `_main` now tries an anonymous channel connect to the stated
arbiter sockaddr and uses that to determine whether to crown itself
2018-07-04 14:34:25 -04:00
Tyler Goodlet
1d3fde4a4d
Add StreamQueue.connected()
2018-07-04 03:16:00 -04:00
Tyler Goodlet
ddf27e5e7f
Cancel GUI updates on exit
2018-07-04 03:14:54 -04:00
Tyler Goodlet
5d6b9d138c
Update lock file
2018-06-27 15:38:06 -04:00
Tyler Goodlet
23830d51d1
Log either kwarg
2018-06-27 11:59:02 -04:00
Tyler Goodlet
4ecfcdc354
Port `piker watch` to tractor api
2018-06-27 11:52:56 -04:00
Tyler Goodlet
e22f17bfe9
Port watchlist app to tractor api
2018-06-27 11:50:02 -04:00
Tyler Goodlet
f32ecb3d65
Arbiter now supports non-empty statespace
2018-06-27 11:45:21 -04:00
Tyler Goodlet
266518a734
Handle kb interrupt gracefully in sub-actors
...
Fail gracefully (by "aborting") the same way `trio` does. This avoids
ugly sub-proc tracebacks thrown at the console. Unset the local actor
when `tractor._main` completes. Cancel all tasks for a peer channel on
disconnect.
2018-06-27 11:34:22 -04:00
Tyler Goodlet
8019296c67
Port broker daemon to tractor
...
Drop all channel/connection handling from the core and break up all the
start up steps into compact and useful functions. The main difference is
the daemon now only needs to worry about spawning per broker streaming
tasks and handling symbol list subscription requests.
2018-06-26 17:55:52 -04:00
Tyler Goodlet
c0d8d4fd99
Support re-entrant calls to `get_arbiter()`
...
It gets called more then once when using `tractor.run()` and
then `find_actor()`. Also, allow passing in the log level to each
new spawned subactor.
2018-06-25 17:41:30 -04:00
Tyler Goodlet
8c5af7fd97
Drop console logging - messes with other tests
2018-06-23 15:33:33 -04:00
Tyler Goodlet
c062b01b7b
Add an actor spawning test
...
Test that the actor nursery API and ``tractor.run`` entrypoint work when
the sub-actor's main task is all that is run (i.e. no rpc requests).
2018-06-23 14:59:31 -04:00