Add CLI adapter, examples, tests, and docs#9
Open
liquid-releasing wants to merge 2 commits intoedger477:mainfrom
Open
Add CLI adapter, examples, tests, and docs#9liquid-releasing wants to merge 2 commits intoedger477:mainfrom
liquid-releasing wants to merge 2 commits intoedger477:mainfrom
Conversation
Adds a stable cli.py adapter layer that wraps the restim processor behind a clean public API (load_file, process, list_outputs, preview_*). Includes bash/Python examples, a full pytest test suite, and CLI reference documentation. The adapter isolates upstream internals so callers never import processor or config classes directly. - cli.py: public API + argparse CLI (info, process, list-outputs, algorithms, config show/save, preview electrode-path/frequency-blend/pulse-shape) - examples/: process_default.sh, process_default.py, sample.funscript, README - tests/: test_cli.py (8 test classes, pytest + unittest), conftest.py - docs/CLI_REFERENCE.md: full command reference with --help text and examples Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Explains what each of the 10 output files controls in terms of sensation, translates the three main creative decisions (algorithm, frequency blend, pulse shape) into physical terms without requiring signal processing knowledge, and shows toolchain automation patterns including batch processing and --json piping. Co-Authored-By: Claude Sonnet 4.6 <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
This PR adds a
cli.pyadapter layer and supporting resources that make the restim processor accessible from the command line and programmatically — without changing any existing processor code.cli.py— stable public API +argparseCLI; wrapsRestimProcessor,Funscript, andConfigManagerso callers never import upstream classes directlyexamples/— bash and Python examples for a default processing run, plus a minimalsample.funscriptfor testingtests/— fullpytesttest suite covering all public functions (TestLoadFile,TestProcess,TestListOutputs,TestPreviewElectrodePath,TestPreviewFrequencyBlend,TestPreviewPulseShape,TestPreviewOutput)docs/CLI_REFERENCE.md— complete command reference with flags, examples, and output file tableCLI commands added
Design intent
cli.pyis intentionally a thin adapter — it owns the stable function signatures while all processing logic stays in the existing files. The goal is to let downstream tools (scripts, UIs, CI pipelines) callload_file()/process()/preview_*()without coupling to internal class structures. When you update the processor internals, onlycli.pyneeds updating.No existing files changed
This PR only adds new files. No changes to
processor.py,funscript.py,config_manager.py, or any other existing file.Built on top of edger477's excellent restim processor. Standing on the shoulders of giants.
🤖 Generated with Claude Code