From 1e6fa8675d1c1eb4e6d958595d4e7f09715d1310 Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Thu, 1 Jan 2026 20:06:34 -0500 Subject: [PATCH] A better dep-groups specificity breakdown Trying to start organizing non-hard deps into groups with sensible "domain names" as it were. I coulda sworn we originally had at least UI libs setup this way.. musta got lost in prior nix(os) porting. Specifics, - move all Qt and `rapidfuzz` deps into the `uis` group. - add a new `repl` group for all the `pdbp` (debugging utils) and `xonsh` (@goodboy's shell pref) related console related extensions. - add a `testing` group for the harness' needs. - add a `de` for (as of rn) TWM specific libs. - nest all the new ^ groups in the `dev` group as needed. --- pyproject.toml | 64 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 25 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 6b130778..b89c8ca5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -75,25 +75,30 @@ dependencies = [ "trio-typing>=0.10.0", "numba>=0.61.0", "pyvnc", - # TODO? mv to dev group? - "pdbp >=1.5.0, <2.0.0", ] # ------ dependencies ------ +# TODO: add an `--only daemon` group for running non-ui / pikerd +# service tree in distributed mode B) +# https://docs.astral.sh/uv/concepts/projects/dependencies/#optional-dependencies + [dependency-groups] uis = [ # https://docs.astral.sh/uv/concepts/projects/dependencies/#optional-dependencies # TODO: make sure the levenshtein shit compiles on nix.. # rapidfuzz = {extras = ["speedup"], version = "^0.18.0"} "rapidfuzz >=3.2.0, <4.0.0", + "qdarkstyle >=3.0.2, <4.0.0", + "pyqt6 >=6.7.0, <7.0.0", + "pyqtgraph", # for consideration, # - 'visidata' - # TODO: add an `--only daemon` group for running non-ui / pikerd - # service tree in distributed mode B) - # https://docs.astral.sh/uv/concepts/projects/dependencies/#optional-dependencies + "qdarkstyle >=3.0.2, <4.0.0", + "pyqt6 >=6.7.0, <7.0.0", + "pyqtgraph", ] # TODO: a toolset that makes debugging a `pikerd` service (tree) easy @@ -104,21 +109,32 @@ uis = [ # # console ehancements and eventually remote debugging extras/helpers. # use `uv --dev` to enable -dev = [ - "pytest", - "prompt-toolkit ==3.0.40", - "cython >=3.0.0, <4.0.0", +repl = [ + # debug + "pdbp >=1.5.0, <2.0.0", "greenback >=1.1.1, <2.0.0", + "xonsh", + "prompt-toolkit ==3.0.40", "pyperclip>=1.9.0", - # DE-specific - "i3ipc>=2.2.1", - # ?from git, see below. - "xonsh", - "qdarkstyle >=3.0.2, <4.0.0", - "pyqt6 >=6.7.0, <7.0.0", - "pyqtgraph", +] +testing = [ + "pytest", +] +de = [ + # DE-specific + "i3ipc>=2.2.1", +] +dev = [ + # https://docs.astral.sh/uv/concepts/projects/dependencies/#development-dependencies + "cython >=3.0.0, <4.0.0", + # nested deps-groups + # https://docs.astral.sh/uv/concepts/projects/dependencies/#nesting-groups + {include-group = 'uis'}, + {include-group = 'repl'}, + {include-group = 'testing'}, + {include-group = 'de'}, ] lint = [ # XXX, with flake.nix needs to be from nixpkgs @@ -175,12 +191,10 @@ pyqtgraph = { git = "https://github.com/pikers/pyqtgraph.git" } tomlkit = { git = "https://github.com/pikers/tomlkit.git", branch ="piker_pin" } pyvnc = { git = "https://github.com/regulad/pyvnc.git" } -# TODO, long term we should be synced to upstream `main` branch! -# tractor = { git = "https://github.com/goodboy/tractor.git", branch ="piker_pin" } -tractor = { git = "https://pikers.dev/goodboy/tractor", branch = "piker_pin" } - -# goodboy's dev-env -# XXX for @goodboy's hackin dev env, usually there's something new in -# the runtime being seriously tested here Bp -# tractor = { path = "../tractor/", editable = true } -# xonsh = { path = "../xonsh", editable = true } +# XXX since, we're like, always hacking new shite all-the-time. Bp +tractor = { git = "https://github.com/goodboy/tractor.git", branch ="piker_pin" } +# tractor = { git = "https://pikers.dev/goodboy/tractor", branch = "piker_pin" } +# tractor = { git = "https://pikers.dev/goodboy/tractor", branch = "main" } +# ------ goodboy ------ +# hackin dev-envs, usually there's something new he's hackin in.. +# tractor = { path = "../tractor", editable = true }