From ab6796dd456173423dc5e087dd78eb824a742602 Mon Sep 17 00:00:00 2001 From: goodboy Date: Tue, 9 Jun 2026 20:18:04 -0400 Subject: [PATCH] Split py-version-gated uv dependency-groups Reshuffle `pyproject.toml` deps into per-python-version `[tool.uv.dependency-groups]`: - `subints` group: `msgspec>=0.21.0`, py>=3.14 - `eventfd` group: `cffi>=1.17.1`, py>=3.13,<3.14 - `sync_pause` group: `greenback`, py>=3.13,<3.14 (was in `devx`; moved out bc no 3.14 yet) Bump top-level `msgspec>=0.20.0` too. (this commit msg was generated in some part by [`claude-code`][claude-code-gh]) [claude-code-gh]: https://github.com/anthropics/claude-code (cherry picked from commit 34d9d482e407f61362e7d5b186a5d7ae95bd426a) (factored: kept only the pyproject dep-group parts of "Raise `subint` floor to py3.14 and split dep-groups"; dropped tractor/spawn/_spawn.py + tractor/spawn/_subint.py) --- pyproject.toml | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index dd7df3b0..ebf044f8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,11 +44,12 @@ dependencies = [ "tricycle>=0.4.1,<0.5", "wrapt>=1.16.0,<2", "colorlog>=6.8.2,<7", + # built-in multi-actor `pdb` REPL "pdbp>=1.8.2,<2", # windows only (from `pdbp`) + # typed IPC msging "msgspec>=0.20.0", - "cffi>=1.17.1", "bidict>=0.23.1", "multiaddr>=0.2.0", "platformdirs>=4.4.0", @@ -64,10 +65,13 @@ dev = [ ] devx = [ # `tractor.devx` tooling - "greenback>=1.2.1,<2", # TODO? 3.14 greenlet on nix? "stackscope>=0.2.2,<0.3", # ^ requires this? "typing-extensions>=4.14.1", + # {include-group = 'sync_pause'}, # XXX, no 3.14 yet! +] +sync_pause = [ + "greenback>=1.2.1,<2", # TODO? 3.14 greenlet on nix? ] testing = [ # test suite @@ -85,6 +89,14 @@ repl = [ lint = [ "ruff>=0.9.6" ] +# XXX, used for linux-only hi perf eventfd+shm channels +# now mostly moved over to `hotbaud`. +eventfd = [ + "cffi>=1.17.1", +] +subints = [ + "msgspec>=0.21.0", +] # TODO, add these with sane versions; were originally in # `requirements-docs.txt`.. # docs = [ @@ -93,6 +105,17 @@ lint = [ # ] # ------ dependency-groups ------ +[tool.uv.dependency-groups] +# for subints, we require 3.14+ due to 2 issues, +# - hanging behaviour for various multi-task teardown cases (see +# "Availability" section in the `tractor.spawn._subints` doc string). +# - `msgspec` support which is oustanding per PEP 684 upstream tracker: +# https://github.com/jcrist/msgspec/issues/563 +# +# https://docs.astral.sh/uv/concepts/projects/dependencies/#group-requires-python +subints = {requires-python = ">=3.14"} +eventfd = {requires-python = ">=3.13, <3.14"} +sync_pause = {requires-python = ">=3.13, <3.14"} [tool.uv.sources] # XXX NOTE, only for @goodboy's hacking on `pprint(sort_dicts=False)`