feat(rawcli): interactive raw-command TUI skeleton (Phase 1)
First slice of `pm3py rawcli` — the interactive, annotated raw-command tool (separate from pyws and from the future `pm3py client` CLI). - pm3py/cli: a top-level `pm3py` console-script dispatcher (argparse) with a `rawcli` subcommand; prompt_toolkit gated behind a [rawcli] extra - rawcli/session.py: RawSession — device/field/transponder/entry-mode state + the segmented breadcrumb `[raw / hf|lf / $tag / 0x|0b]` - rawcli/trace_view.py: render a reader<->tag exchange as annotated, Proxmark-style trace lines, reusing TraceFormatter + the 14a/15693 decoders - rawcli/app.py: minimal PromptSession loop (connect best-effort, breadcrumb prompt, help/quit, raw-hex -> annotated exchange) Entry-mode toggle, identify/connection, the command catalog, and TLV editing follow in later phases. 9 hardware-free tests (session, trace render, CLI dispatch); device I/O is the user's local hardware test. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -42,9 +42,11 @@ dependencies = [
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = ["pytest"]
|
||||
rawcli = ["prompt_toolkit>=3.0"]
|
||||
|
||||
[project.scripts]
|
||||
pm3flash = "pm3py.flash_cli:main"
|
||||
pm3py = "pm3py.cli:main"
|
||||
|
||||
# pyws workspace plugin — discovered by the pyws engine (installed alongside) via this group.
|
||||
[project.entry-points."pyws.plugins"]
|
||||
|
||||
Reference in New Issue
Block a user