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
b06cb5bb5a
Comments clean and improvments
2021-06-10 08:24:10 -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
0bcad35c70
Set ack time on pydantic model
2021-06-08 14:31:04 -04:00
Tyler Goodlet
b689adaeb0
Throttle L1 label updates at a lower rate
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
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
c56c7b8540
Increase min debounce period, stop searching on user nav selection
2021-05-28 10:16:00 -04:00
Tyler Goodlet
ec6ea32dda
Don't pass through linked charts x-axis handle
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
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
82cdb176e1
Make ctrl-l highlight current text in edit
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
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
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
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
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
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
Tyler Goodlet
25dbe60c77
Flip to ctrl-l to pop out search/list
2021-05-27 13:05:23 -04:00
Tyler Goodlet
51c61587d2
Make list pop out next to primary y-axis
2021-05-27 13:05:23 -04:00
Tyler Goodlet
2c24c9ef2d
Compose search bar and view under parent widget
2021-05-27 13:05:23 -04:00
Tyler Goodlet
25d7122cb6
Throttle requests using a static "typing paused period"
2021-05-27 13:05:22 -04:00
Tyler Goodlet
5766dd518d
Enforce lower case symbols across providers
2021-05-27 13:05:22 -04:00
Tyler Goodlet
478b114708
First draft completion in background task
2021-05-27 13:05:22 -04:00
Tyler Goodlet
c9efbcc6d2
Drop completion list from startup
2021-05-27 13:05:22 -04:00
Tyler Goodlet
431fdd3f9c
Add initial working symbol search with async completions
2021-05-27 13:05:22 -04:00
Tyler Goodlet
a5826e6e22
Up the kb event queue size
2021-05-27 13:05:22 -04:00
Tyler Goodlet
be39e9bdf5
Load async kb search handler at startup
2021-05-27 13:05:22 -04:00
Tyler Goodlet
60d44f30ee
Make search kb handling async
2021-05-27 13:05:22 -04:00
Tyler Goodlet
2861f321ce
Add async keyboard cloner sub-sys
2021-05-27 13:05:22 -04:00
Tyler Goodlet
5e1b15f319
Repair indents from rebasing
2021-05-27 13:05:22 -04:00
Tyler Goodlet
821d5ab9ec
Bring back in and merge tractor stream api patch
2021-05-27 13:05:22 -04:00
Tyler Goodlet
da0cb9b2ac
Call search focus directly
2021-05-27 13:05:22 -04:00
Tyler Goodlet
0e83906f11
Initial WIP search completer; still a mess
2021-05-27 13:05:22 -04:00
Tyler Goodlet
157f6ab02b
Drop lingering chart focus call
2021-05-27 13:05:22 -04:00
Tyler Goodlet
1f9f2b873a
Super fast switching, just hide loaded charts
2021-05-27 13:05:22 -04:00
Tyler Goodlet
0627f7dcee
First draft: symbol switching via QLineEdit widget
2021-05-27 13:05:22 -04:00
goodboy
9c821c8cfd
Merge pull request #181 from pikers/syseng_tweaks
...
Syseng tweaks
2021-05-25 08:39:06 -04:00
Tyler Goodlet
9e367432fd
Minimize update to Qt reported display's refresh rate
2021-05-25 06:56:18 -04:00
Tyler Goodlet
e623c58754
Naively throttle graphics updates to 60 FPS
2021-05-25 06:33:22 -04:00
Tyler Goodlet
319eacd8c1
Use compact async with tuple syntax from py3.9
2021-05-24 12:26:50 -04:00
Tyler Goodlet
f6f4a0cd8d
Use tractor settings for qtractor
2021-05-24 12:26:34 -04:00
Tyler Goodlet
435e005d6e
Drop quantdum legend item
2021-05-24 12:23:02 -04:00
Tyler Goodlet
ecd94ce24d
Better indexing logic?
2021-05-24 12:17:08 -04:00
Tyler Goodlet
c08f192f77
Move charting to new tractor stream api
...
This required a fsp task spawning logic rework which ended up being
cleaner just spawning tasks in a loop sequentially instead of trying
a 2-phase spawn-then-initialize approach.
This also includes changes from the symbol search branch hacked in.
Mostly it includes isolating the main chart startup-sequence to a
function that can be run in a new task every time a new symbol is
requested by the selector/searcher. The actual search functionality
obviously isn't in here yet but minor changes are included as part of
pulling out the `tractor` stream api patch from the symbol search dev
branch.
2021-04-29 11:28:00 -04:00
Tyler Goodlet
3375735914
Port kivy monitor to new tractor stream api
2021-04-29 09:10:11 -04:00
Tyler Goodlet
7d6bc4d856
Move feed api(s) into new submodule
...
Also add a --pdb flag to chart app.
2021-04-15 10:43:29 -04:00
Tyler Goodlet
0b10c8d6d6
Make standalone mode work again
2021-04-15 08:23:08 -04:00
Tyler Goodlet
9622254cdb
Hack broadcast chan for order submissions, smh
2021-04-14 11:02:14 -04:00
Tyler Goodlet
9a15cd48f0
Just symbol info in window title
2021-04-10 14:18:40 -04:00
Tyler Goodlet
1523637979
Always update L1 labels
2021-04-10 14:18:40 -04:00
Tyler Goodlet
3506bbe05c
Nest async withs
2021-04-10 14:18:40 -04:00
Tyler Goodlet
a18a4b5a4c
Call the app what it is
2021-04-10 14:18:40 -04:00
Tyler Goodlet
20c99733b6
Let cli pass through actor name
2021-04-10 14:18:40 -04:00
Tyler Goodlet
a8a3f098cf
Drop lingering prints
2021-04-10 14:18:40 -04:00
Tyler Goodlet
3ebb7ab6b1
Only activate Qt hidpi detection on windows for now
2021-04-10 14:18:40 -04:00
goodboy
feb8d5bbad
Merge pull request #153 from wattygetlood/windows_patches
...
Windows patches
2021-04-06 11:55:51 -04:00
Tyler Goodlet
6891309abd
Fix import
2021-04-03 12:22:14 -04:00
Tyler Goodlet
fb996bfffb
Change subpkg name in cli
2021-04-03 12:22:14 -04:00
Tyler Goodlet
20a9617c18
Use open pikerd from chart entrypoint
2021-04-03 12:22:14 -04:00
Tyler Goodlet
d4395dbcbc
Make default view more zooomed in
2021-03-31 14:26:32 -04:00
Tyler Goodlet
f75b3108ce
Size execution arrows to dpi
2021-03-31 14:26:13 -04:00
Tyler Goodlet
0dfa92230d
Size level line markers to dpi aware font size
2021-03-31 14:25:51 -04:00
Tyler Goodlet
54d36f26f0
Base anchor contents labels based on dpi-aware font bounding rect
2021-03-31 14:25:17 -04:00
Tyler Goodlet
3f7d9c5c15
Base axis text offset on dpi-aware font size
2021-03-31 14:24:39 -04:00
Tyler Goodlet
3bd87caf4b
Hip shot: try making low dpi font sizes "just work"
2021-03-29 17:52:32 -04:00
wattygetlood
c39c4f11db
Forcinng trio spawner seems to work?
2021-03-28 17:24:30 -04:00
Tyler Goodlet
07a5bf4b7c
Use low dpi inches on 96 dpi
2021-03-19 09:33:47 -04:00
Tyler Goodlet
77fbde1115
Override the inverse transform func from pg
2021-03-19 00:40:39 -04:00
Tyler Goodlet
6fa1d4dc88
Show xhair even if order is filled while line is hovered
2021-03-18 21:57:08 -04:00
Tyler Goodlet
5610807b8e
Move marker factory funcs to new mod
2021-03-18 16:59:22 -04:00
Tyler Goodlet
55de079320
Add low dpi settings and different default view bars counts
2021-03-18 13:40:31 -04:00
Tyler Goodlet
67c5563090
Enable marker-on-select through order mode
2021-03-18 13:33:10 -04:00
Tyler Goodlet
68f75b582a
More fixes for kivy shit
2021-03-18 13:32:34 -04:00