Tyler Goodlet
90b0673052
Add multi-status support to window
2021-06-10 13:23:28 -04:00
Tyler Goodlet
ce67022e2e
Only add font size scaled down when dpi scaling > 2
2021-06-10 13:23:28 -04:00
Tyler Goodlet
9d31f8ca6a
Add default "small" dpi aware font
2021-06-10 13:23:28 -04:00
Tyler Goodlet
f68295653d
Load cache search before other providers
2021-06-10 13:23:28 -04:00
Tyler Goodlet
112b3f0f07
Drop hidpi font size hacking from contents labels
2021-06-10 13:23:28 -04:00
Tyler Goodlet
e924cbeb43
Min debounce period for faster cached completions
2021-06-10 13:23:28 -04:00
Tyler Goodlet
62c456f8eb
Downscale fonts on scaled-down hidpi displays
2021-06-10 13:23:28 -04:00
Tyler Goodlet
193f4f945c
Flip to using scaled hi DPI detected by Qt
2021-06-10 13:23:28 -04:00
Tyler Goodlet
bb1c549d94
Add some initial status updates during startup
2021-06-10 13:23:28 -04:00
Tyler Goodlet
df50700aa5
Style a basic status bar and add a mode label to it
2021-06-10 13:23:28 -04:00
Tyler Goodlet
a9cdb94ff3
Port styling to latest `qtdarkstyle` version
2021-06-10 13:23:28 -04:00
Tyler Goodlet
74b63b9868
Add mode label to right side
2021-06-10 13:23:28 -04:00
Tyler Goodlet
cc60ad46fc
Skip chart updates if parent widget is hidden to save cpus
2021-06-10 13:23:28 -04:00
Tyler Goodlet
7da7dee02b
Add mode name to viewbox
2021-06-10 13:23:28 -04:00
Tyler Goodlet
78e04e66a5
Add mode names to search, repair LIFO ordering on select
2021-06-10 13:23:28 -04:00
Tyler Goodlet
0564bbd9c3
Use focus switch signal to update status bar
2021-06-10 13:23:28 -04:00
Tyler Goodlet
754a5cce4f
WIP toying with a simple status bar
2021-06-10 13:23:28 -04:00
Tyler Goodlet
8d02778158
Don't bail on unknown order ids
2021-06-10 12:02:57 -04:00
Tyler Goodlet
95f466b93d
Fix to msg attr access
2021-06-10 12:02:26 -04:00
goodboy
689bc0cde0
Merge pull request #190 from pikers/ems_to_bidir_streaming
...
Ems to bidir streaming
2021-06-10 08:45:44 -04:00
Tyler Goodlet
a9cc3210d8
Grr pydantic being a weirdo
2021-06-10 08:37:21 -04:00
Tyler Goodlet
a9cbacd8aa
Move details assignements to static declaration
2021-06-10 08:24:51 -04:00
Tyler Goodlet
b06cb5bb5a
Comments clean and improvments
2021-06-10 08:24:10 -04:00
Tyler Goodlet
a1f605bd52
Clear out old commented code
2021-06-09 13:21:56 -04:00
Tyler Goodlet
8e8a005128
Fix attr accesses on msg type
2021-06-09 12:22:02 -04:00
Konstantine Tsafatinos
90e5a10a66
modify error string to format: <name>.<provider>
2021-06-09 12:02:05 -04:00
Tyler Goodlet
4cae470f3a
Pass "arbiter" socket correctly
2021-06-08 15:57:01 -04:00
Tyler Goodlet
47e7baa0c9
Ensure paperboi is shield killed on teardown
2021-06-08 15:56:34 -04:00
Tyler Goodlet
db92683ede
Port ib orders to new msgs and bidir streaming api
2021-06-08 14:33:41 -04:00
Tyler Goodlet
6e58f31fd8
Port EMS to typed messaging + bidir streaming
...
This moves the entire clearing system to use typed messages using
`pydantic.BaseModel` such that the streamed request-response order
submission protocols can be explicitly viewed in terms of message
schema, flow, and sequencing. Using the explicit message formats we can
now dig into simplifying and normalizing across broker provider apis to
get the best uniformity and simplicity.
The order submission sequence is now fully async: an order request is
expected to be explicitly acked with a new message and if cancellation
is requested by the client before the ack arrives, the cancel message is
stashed and then later sent immediately on receipt of the order
submission's ack from the backend broker. Backend brokers are now
controlled using a 2-way request-response streaming dialogue which is
fully api agnostic of the clearing system's core processing; This
leverages the new bi-directional streaming apis from `tractor`. The
clearing core (emsd) was also simplified by moving the paper engine to
it's own sub-actor and making it api-symmetric with expected `brokerd`
endpoints.
A couple of the ems status messages were changed/added:
'dark_executed' -> 'dark_triggered'
added 'alert_triggered'
More cleaning of old code to come!
2021-06-08 14:33:30 -04:00
Tyler Goodlet
0dabc6ad26
Port paper engine to new msgs and run in sub-actor
...
This makes the paper engine look IPC-wise exactly like any
broker-provider backend module and uses the new ``trades_dialogue()``
2-way streaming endpoint for commanding order requests.
This serves as a first step toward truly distributed forward testing
since the paper engine can now be run out-of tree from `pikerd` if
needed thus demonstrating how real-time clearing signals can be shared
between fully distinct services.
2021-06-08 14:32:03 -04:00
Tyler Goodlet
23094d8624
Spec out brokerd 2-way trade dialogue messages
2021-06-08 14:31:43 -04:00
Tyler Goodlet
02459cd964
Use new top level portal import
2021-06-08 14:31:14 -04:00
Tyler Goodlet
0bcad35c70
Set ack time on pydantic model
2021-06-08 14:31:04 -04:00
Tyler Goodlet
f9238f3a8a
Validate client message updates
2021-06-08 14:30:47 -04:00
Konstantine Tsafatinos
099bf260f5
fix unknown kraken symbol raised error
2021-06-01 18:01:45 -04:00
Tyler Goodlet
f4c9e20f0d
Avoid `numpy` type usage on the wire
2021-06-01 10:48:23 -04:00
Tyler Goodlet
edf3af9777
Drop waits to half-seconds
2021-06-01 10:48:23 -04:00
Tyler Goodlet
9931accc52
Port clearing systems to new tractor context api
...
This avoids somewhat convoluted "hackery" making 2 one-way streams
between the order client and the EMS and instead uses the new
bi-directional streaming and context API from `tractor`. Add a router
type to the EMS that gets setup by the initial service tree and which
we'll eventually use to work toward multi-provider executions and
order-trigger monitoring. Move to py3.9 style where possible throughout.
2021-06-01 10:48:23 -04:00
Tyler Goodlet
7fb2c95ef1
Factor daemon spawning logic, use it to spawn emsd
2021-06-01 10:48:23 -04:00
Tyler Goodlet
9792b9aa7d
Drop search pause config; use default
2021-05-28 14:11:02 -04:00
Tyler Goodlet
51a8308105
Lower connection timeout duration
2021-05-28 14:11:02 -04:00
Tyler Goodlet
b689adaeb0
Throttle L1 label updates at a lower rate
2021-05-28 14:11:02 -04:00
Tyler Goodlet
ff856a6ee3
Woops, make unsub pairs a list
2021-05-28 14:11:02 -04:00
Tyler Goodlet
19711bf024
Reconnect slow binance conns instead of error
2021-05-28 14:11:02 -04:00
Tyler Goodlet
1a7b06c147
Limit l1 graphics updates to half the refresh rate
2021-05-28 14:11:02 -04:00
Tyler Goodlet
d0e3f5a51c
Port binance and kraken to "reliable" ws API
2021-05-28 14:11:02 -04:00
Tyler Goodlet
89dc3dde61
Move no bs websocket api into its own data module
2021-05-28 14:11:02 -04:00
Tyler Goodlet
ee71f445fb
Clear entries on no results returned per task
2021-05-28 14:08:24 -04:00
Tyler Goodlet
a31b83c5ca
Don't ever send plain whitespace a search pattern
2021-05-28 13:44:30 -04:00
Tyler Goodlet
ea3d96e7ed
Accept arbitrary QEvent subscriptions via a set
2021-05-28 13:30:26 -04:00
Tyler Goodlet
7fa9f3f542
Add `Client.search_symbols()` to all backends, use it in `piker search`
2021-05-28 12:29:58 -04:00
Tyler Goodlet
c56c7b8540
Increase min debounce period, stop searching on user nav selection
2021-05-28 10:16:00 -04:00
Tyler Goodlet
50aff72f8e
Don't require map (yet) in backend modules
2021-05-27 13:05:23 -04:00
Tyler Goodlet
ec6ea32dda
Don't pass through linked charts x-axis handle
2021-05-27 13:05:23 -04:00
Tyler Goodlet
e88e5b8ce2
Decrease binance search debounce period
2021-05-27 13:05:23 -04:00
Tyler Goodlet
3e39e9620c
Add a no data available error
2021-05-27 13:05:23 -04:00
Tyler Goodlet
7dfc7f7fa2
Factor chart selection into widget, cleanups, add resource links
2021-05-27 13:05:23 -04:00
Tyler Goodlet
ab3adcee9e
Get basic switch-on-click mouse support working
2021-05-27 13:05:23 -04:00
Tyler Goodlet
607e1a8299
Add per-provider-async searching with status updates
2021-05-27 13:05:23 -04:00
Tyler Goodlet
89beb92866
Add api for per-section filling/clearing
...
Makes it so we can move toward separate provider results fills in an
async way, on demand.
Also,
- add depth 1 iteration helper method
- add section finder helper method
- fix last selection loading to be mostly consistent
2021-05-27 13:05:23 -04:00
Tyler Goodlet
c478ddaed0
Disable cursor blink globally
2021-05-27 13:05:23 -04:00
Tyler Goodlet
924960a359
Add label to search bar
2021-05-27 13:05:23 -04:00
Tyler Goodlet
46d88965d3
Get LIFO sort on cache syms working properly
2021-05-27 13:05:23 -04:00
Tyler Goodlet
44f4fdf043
Type annot the internal symbol cache
2021-05-27 13:05:23 -04:00
Tyler Goodlet
59475cfd81
Store lowercase symbols within piker data internals
2021-05-27 13:05:23 -04:00
Tyler Goodlet
af9dcf9230
Use an ordered dict to get LIFO cache sorting on sym selection
2021-05-27 13:05:23 -04:00
Tyler Goodlet
9bfc230dde
Speedup: load provider searches async at startup
2021-05-27 13:05:23 -04:00
Tyler Goodlet
c9cf72d554
Add remote context allocation api to service daemon
...
This allows for more deterministically managing long running sub-daemon
services under `pikerd` using the new context api from `tractor`.
The contexts are allocated in an async exit stack and torn down at root
daemon termination. Spawn brokerds using this method by changing the
persistence entry point to be a `@tractor.context`.
2021-05-27 13:05:23 -04:00
Tyler Goodlet
27d704b32e
To avoid feed breakage, just give up on history after too many throttles for now
2021-05-27 13:05:23 -04:00
Tyler Goodlet
82cdb176e1
Make ctrl-l highlight current text in edit
2021-05-27 13:05:23 -04:00
Tyler Goodlet
0cd3cb3328
Drop old todo
2021-05-27 13:05:23 -04:00
Tyler Goodlet
212882a5a5
Don't try to show xhair if no active plot
2021-05-27 13:05:23 -04:00
Tyler Goodlet
307afb1935
Clean some key handling
2021-05-27 13:05:23 -04:00
Tyler Goodlet
67498c60af
More UX features
...
- load previous search state on open
- show cached on empty search bar
- allow ctrl-u/d to navigate provider "sections"
2021-05-27 13:05:23 -04:00
Tyler Goodlet
8129fcc648
Ignore key auto-repeats
2021-05-27 13:05:23 -04:00
Tyler Goodlet
a4627c2b04
Send blank packet on no match to avoid blocking search stream
2021-05-27 13:05:23 -04:00
Tyler Goodlet
07d8bf1453
Add a `.select_first()` view method + more cleaning
2021-05-27 13:05:23 -04:00
Tyler Goodlet
d5e83e61d4
Reorder, drop some cruft
2021-05-27 13:05:23 -04:00
Tyler Goodlet
9d2c8a9526
Factor selection details into completer view methods
2021-05-27 13:05:23 -04:00
Tyler Goodlet
43d73b4a7c
Info log the current provider search
2021-05-27 13:05:23 -04:00
Tyler Goodlet
ddc2c8975a
Ignore whitespace patterns in ib search
2021-05-27 13:05:23 -04:00
Tyler Goodlet
64c1d9a965
Support ctrl-space to open search pane
2021-05-27 13:05:23 -04:00
Tyler Goodlet
d8a200aadc
Increase completion-tree width, support ctrl-space toggle
2021-05-27 13:05:23 -04:00
Tyler Goodlet
2471ce446e
Require `<symbol>.<provider>` format to cli
2021-05-27 13:05:23 -04:00
Tyler Goodlet
c9311dd7d0
Few more derivs symbols
2021-05-27 13:05:23 -04:00
Tyler Goodlet
6f3b799960
Skip ib exchanges we haven't tested yet
2021-05-27 13:05:23 -04:00
Tyler Goodlet
42fda2a9e6
Drop old code
2021-05-27 13:05:23 -04:00
Tyler Goodlet
e77a51f16e
Support multi-provider cache symbol switching
2021-05-27 13:05:23 -04:00
Tyler Goodlet
1bd0ee8746
Support loading multi-brokerds search at startup
2021-05-27 13:05:23 -04:00
Tyler Goodlet
fd8dc4f1a3
Make -b a multi-option for backends
2021-05-27 13:05:23 -04:00
Tyler Goodlet
59377da0ad
Load pause configs from backends on feed opens
2021-05-27 13:05:23 -04:00
Tyler Goodlet
bbd5883e52
Add search pause configs to backends
2021-05-27 13:05:23 -04:00
Tyler Goodlet
b2ff09f193
Support min and max keyboard pauses
...
Some providers do well with a "longer" debounce period (like ib) since
searching them too frequently causes latency and stalls. By supporting
both a min and max debounce period on keyboard input we can only send
patterns to the slower engines when that period is triggered via
`trio.move_on_after()` and continue to relay to faster engines when the
measured period permits. Allow search routines to register their "min
period" such that they can choose to ignore patterns that arrive before
their heuristically known ideal wait.
2021-05-27 13:05:23 -04:00
Tyler Goodlet
63363d750c
Port chart to multi-search api
2021-05-27 13:05:23 -04:00
Tyler Goodlet
cb102f692c
Top level widget `.focus()`
2021-05-27 13:05:23 -04:00
Tyler Goodlet
c9c686c98d
Register context-stream with multi-search for each feed
2021-05-27 13:05:23 -04:00
Tyler Goodlet
0163a582a5
Move search machinery to ui module, add fast cached chart selection
2021-05-27 13:05:23 -04:00
Tyler Goodlet
82ece83d33
Drop commented cruft
2021-05-27 13:05:23 -04:00
Tyler Goodlet
b39fd5e1fc
Use per-provider indented tree layout for results
2021-05-27 13:05:23 -04:00