port_to_latest_tractor #45

Open
goodboy wants to merge 11 commits from port_to_latest_tractor into decimal_prices_thru_ems

Getting us on tractor::main branch and thus with py3.13 support!

Currently still some small warts todo with strict ExceptionGroup nursieries in trio mostly just with large tracebacks on SIGINT.

Still todo prolly

  • ensure the nixos peeps can survive on this
  • obvi landing all the branches that come before XD
  • ideally minimizing more of the egs of nested multi-cancelleds..
Getting us on `tractor::main` branch and thus with py3.13 support! Currently still some small warts todo with strict `ExceptionGroup` nursieries in `trio` mostly just with large tracebacks on SIGINT. --- #### Summary of required adjustments - use `tractor.trionics.collapse_eg()` to smooth over strict-exception-group nurseries now the default in `trio`. - adjust the `brokerd` sidepane info to pull from new actor/IPC-transport meta-data fields like `tractor.Channel.aid: Aid` and **not** presume TCP as the IPC tpt proto B) --- #### Still todo prolly - ensure the nixos peeps can survive on this - obvi landing all the branches that come before XD - ideally minimizing more of the egs of nested multi-cancelleds..
goodboy added 7 commits 2025-06-26 14:43:58 +00:00
b87ca76700 Bump to (latest) `polars`, the `0.20.6x` series B)
Since I was trying out the neat lookin `polars-fuzzy-match` (also added
for now as a core dep here) which requires the new plugin sys, plus it's
about time we synced with upstream!

Adjust some column syntax to the new `.name` sub-field-space and the
`uv` lock-file to match.

Other,
- add back `trio-typing` bc i guess something else needs it (debug
  tooling stuff in new `tractor`?)
- flip back to the `tractor` pre-main pin since the new `main`-branch
  requires new `trio` stuff we haven't ported yet..
f1b4550483 Flip to latest `tractor` @ `branch = main` deps
Namely requiring a `trio` that supports py3.13, so "trio >=0.27".
Unfortunately this brings in strict egs and drops various `trio`-related
sub-deps we also import in `piker`, like `trio-typing`. So there's a few
"rough edges", mostly todo with the REPL activating on graceful cancels
(SIGINT) of `piker` CLIs atm - due to the new strict-egs in recent
`trio`, but nothing we can't work out pretty quickly i'd imagine with
the new `tractor.collapse_eg()` stacker.

Note that we're pinning to `tractor`'s main branch for the moment since
it should be "stable" vs. the `repl_fixture` i'm likely running local Bp
7e82bf0729 Support python 3.13 !!
Luckily all core deps are already ported so this was pretty easy!

B)

I've opted (via `tool.uv` settings) to prefer the user's system
(installed) python distro and disable auto-download of astral's
distros for now since I recently hit some strange silent core dumping
(`brokerd` actors just disappearing..)
with their binaries; an introspect showed it seemingly todo with
p_threading in cpython internals? We can figure out how to
better accommodate users with the opposite pref later, presumably
non-opinionated-linux hackers?

Core pkg upgrades of note,
- manually re-pinned most numerics libs including `numpy`, `numba`,
  `pyarrow`.
- for AOT ext-libs (thanks to `uv.lock` being so detailed), new
  `cython`, `llvmlite`, `cffi`, `rapidfuzz`, `uvloop`, `wrapt` and
  `PyQt6` wheels pulled in.
- `cryptofeed` did a required bump to `2.4.0` looks like which also
  required the above (and notable?) `cffi` update.
goodboy added 3 commits 2025-06-26 15:06:54 +00:00
b01edcf65a kraken: `Pair.costmin` is now optional?
Some pairs don't seem to define it but it's not listed as deprecated on
official API page (new one now linked in type def's doc string).
baff466ee0 kraken: add crash-handling around `Pair()` init
Since it can otherwise be difficult to debug due to nursery cancellation
(we need that taskman yo!).
6f782862f8 Adjust to `trio`'s strict eg nurseries throughout!
Using `tractor.trionics.collapse_eg()` as needed to avoid, at the least,
crash-worthy (in debug-mode REPL-ing terms) nested cancellation egs that
exhibit on SIGINT/ctl-c of each "app" (chart & daemon).

Also a bit of renaming of all `trio.Nursery`s to `tn`, the new "task
nursery" shorthand-var-name being used in all our other `tractor`
related projects.
goodboy force-pushed port_to_latest_tractor from 6f782862f8 to f50202a6af 2025-06-26 15:08:09 +00:00 Compare
goodboy added 1 commit 2025-06-26 15:24:44 +00:00
28ba1392bb Adjust feed status fields/display-pane to new actor-ID
That is to use the new `tractor.msg.types.Aid` struct to pull the
`brokerd` info from the `tractor.Channel.aid: Aid` attr as well as more
generally handling the new `Channel.raddr.proto_key: str` and no longer
assuming a TCP IPC transport; this per the recent `tractor.ipc`
subsys which adds multi-IPC-transports!

Downstream tweaks to match,
- use an "opt-in" field set to display in the `brokerd` info pane in
  `.ui._feedstatus.mk_feed_label()`.
 |_ also add some todos and drop some seemingly unneeded form sizing
    calcs?
- tweak `.ui._label` to allow not using markdown, though ended up not
  doing that since it looked too plain..
This pull request can be merged automatically.
You are not authorized to merge this pull request.
You can also view command line instructions.

Step 1:

From your project repository, check out a new branch and test the changes.
git checkout -b port_to_latest_tractor decimal_prices_thru_ems
git pull origin port_to_latest_tractor

Step 2:

Merge the changes and update on Gitea.
git checkout decimal_prices_thru_ems
git merge --no-ff port_to_latest_tractor
git push origin decimal_prices_thru_ems
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#45
There is no content yet.