Rename to pqn-node; extract hardware to pqn-hardware dependency#144
Merged
marcosfrenkel merged 3 commits intomasterfrom May 8, 2026
Merged
Rename to pqn-node; extract hardware to pqn-hardware dependency#144marcosfrenkel merged 3 commits intomasterfrom
marcosfrenkel merged 3 commits intomasterfrom
Conversation
Renames src/pqnstack → src/pqn_node, rewrites all imports that used
pqnstack.{base,network,pqn} to pull from the new pqn-hardware package,
and pins pqn-hardware via a git URL in pyproject.toml.
- Distribution: pqnstack → pqn-node
- Entry point: pqn → pqn-node
- Drops hardware deps (numpy, pyfirmata2, pyzmq, thorlabs-apt-device) —
they now come transitively via pqn-hardware.
- CLI retains app-only commands (toggle-game, daily-report); provider
and router commands live in pqn-hardware's pqn-hw CLI.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
pqn-hardwarerepo (already merged there, pinned here by commit SHA).src/pqnstack/→src/pqn_node/(theapp/level is dropped since the whole repo is now the Node).pqnstack→pqn-node. Entry point:pqn→pqn-node.pqnstack.{base,network,pqn}to pull frompqn_hardware.*; the hardware package is now a git-pinned dep inpyproject.toml.What's in here
src/pqn_node/— renamed package (FastAPI app, config, cli, cron_manager, daily_report, constants).pyproject.toml— new distribution name, entry point, and dependency onpqn-hardware @ git+...@6440be2; dropsnumpy,pyfirmata2,pyzmq,thorlabs-apt-device(they come transitively viapqn-hardware).README.md— rewritten to describe the node-only scope and point atpqn-hardwarefor router/provider docs.src/pqn_node/cli.py— keepstoggle-gameanddaily-report;start-provider/start-routermoved topqn-hwin the hardware repo.InvalidNetworkConfigurationErrorusage intoggle_gamereplaced withtyper.BadParameter(app-level input validation, not a network config error).Test plan
uv syncsucceeds and resolvespqn-hardwarefrom the pinned SHA.uv run python -c "from pqn_node.main import app; from pqn_hardware.measurement import MeasurementConfig; from pqn_hardware.network.client import Client"imports cleanly.uv run pqn-node --helpliststoggle-gameanddaily-report.chsh,coordination,debug,games,health,qkd,rng,serial,timetagger) import cleanly.pytest tests/passes.git grep "pqnstack"returns no hits in tracked source (only binary PNG metadata remains).Notes for reviewers
git log --follow src/pqn_node/main.py(and every other file under the new path) traces back to the originalsrc/pqnstack/app/location.MeasurementConfigwas moved intopqn-hardware(it's hardware-adjacent and shared); it is imported here viapqn_hardware.measurement.cron_manager.pyanddaily_report.pystayed in this repo because they're exercised only through the CLI and aren't part of the web app runtime.🤖 Generated with Claude Code