ib_2025_updates: to make it not suck despite edwault's epic exit #59

Merged
goodboy merged 15 commits from ib_2025_updates into main 2026-01-07 18:40:52 +00:00

Mostly fixes from having not run this backend for a while (over the summer of 2025) when a bit of my infra “died” and I had to re-hack various deps, error handling, and order ctl jigging after #44, #45 and #52.


Summary of “improvements”

  • stopped relaying “warning” API errors-msgs through the EMS since most are benign and shouldn’t cause order-entry-session-cancellation (which can leave actual stale live orders with ib’s EMS and piker.clearing thinking they’re rejected/cancelled).

  • 5342f16 adds legit venue “hours checking”,

    Such that we can avoid other (pretty unreliable) “alternative” checks to determine whether a real-time quote should be waited on or (when venue is closed) we should just signal that historical backfilling can commence immediately.

  • type-annots and code styling modernizations.

  • 43e505e8 solves an inter-API-connector issue with solving asyncio-side push() exc propagation,

    Such that if/when the push() ticker callback (closure) errors internally, we actually eventually bubble the error out-and-up from the asyncio.Task and from there out the .to_asyncio.open_channel_from() to the parent trio.Task..

  • porting to modern tractor.to_asyncio API updates, namely:

    .to_asyncio.open_channel_from()tochan` fn-sig usage

  • 007e7e3 switches to the new VNC client lib, pyvnc, since asyncvnc appears to be un-maintained and i already could never get the password submission to work with our container, the new version of which enforces it,

    It actually works for vncAuth(2) (thank god!) which the previous asyncvnc did not, and seems to be mostly based on the work from the asyncvnc author anyway (so all my past efforts don’t seem to have been in vain XD).

    • relatedly, i orig added back the “manual” try_xdo_manual() to work around this in 8283a1d4.
    • 4cdef4d adds support for per-ib.vnc_addrs vnc passwords in the brokers.toml config.
  • Set .bs_mktid on all IB position-msg emissions so that order-tracking in .ui.order_mode never is erroneous..

    • coming in follow up, we have to add the field to BrokerPosition first!
  • Bump docker/ib/README.rst after moving to the new GH project/image.

    • a63c7b1 also does for container docs and compose file.
    • and db34999 for brokers.toml.
  • rando .brokers.core doc str updates.

Mostly fixes from having not run this backend for a while (over the summer of 2025) when a bit of my infra "died" and I had to re-hack various deps, error handling, and order ctl jigging after #44, #45 and #52. --- #### Summary of "improvements" - stopped relaying "warning" API errors-msgs through the EMS since most are benign and shouldn't cause order-entry-session-cancellation (which can leave actual stale live orders with ib's EMS and `piker.clearing` thinking they're rejected/cancelled). - 5342f16 adds legit venue "hours checking", > Such that we can avoid other (pretty unreliable) "alternative" > checks to determine whether a real-time quote should be waited on > or (when venue is closed) we should just signal that historical > backfilling can commence immediately. - type-annots and code styling modernizations. - 43e505e8 solves an inter-API-connector issue with solving `asyncio`-side `push()` exc propagation, > Such that if/when the `push()` ticker callback (closure) errors > internally, we actually eventually bubble the error out-and-up > from the `asyncio.Task` and from there out the > `.to_asyncio.open_channel_from()` to the parent `trio.Task`.. - porting to modern `tractor.to_asyncio` API updates, namely: > .to_asyncio.open_channel_from()` to `chan` fn-sig usage - 007e7e3 switches to the new VNC client lib, `pyvnc`, since `asyncvnc` appears to be un-maintained and i already could never get the password submission to work with our container, the new version of which enforces it, > It actually works for vncAuth(2) (thank god!) which the previous > `asyncvnc` **did not**, and seems to be mostly based on the work > from the `asyncvnc` author anyway (so all my past efforts don't > seem to have been in vain XD). * relatedly, i orig added back the "manual" `try_xdo_manual()` to work around this in 8283a1d4. * 4cdef4d adds support for per-`ib.vnc_addrs` vnc passwords in the `brokers.toml` config. - ~~Set `.bs_mktid` on all IB position-msg emissions so that order-tracking in `.ui.order_mode` never is erroneous..~~ * coming in follow up, we have to add the field to `BrokerPosition` first! - Bump `docker/ib/README.rst` after moving to the new GH project/image. * a63c7b1 also does for container docs and compose file. * and db34999 for `brokers.toml`. - rando `.brokers.core` doc str updates.
goodboy force-pushed ib_2025_updates from 1674f99214 to db34999553 2026-01-07 05:05:20 +00:00 Compare
goodboy force-pushed ib_2025_updates from db34999553 to 4cb240adbe 2026-01-07 18:23:48 +00:00 Compare
goodboy force-pushed ib_2025_updates from 4cb240adbe to 55116eea01 2026-01-07 18:39:56 +00:00 Compare
goodboy merged commit 2ca50348ce into main 2026-01-07 18:40:52 +00:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: pikers/piker#59
There is no content yet.