Python CLI for wx-ipad automation.
Project description
wxflywheel
Python CLI for wx-ipad automation.
Install
Requirement: Python 3.10+
Published package:
pip install wxflywheel
Local development:
cd cli
make install-dev
Authentication
export WXFLYWHEEL_KEY=your-api-key
export WXFLYWHEEL_HOST=http://host:8011
WXFLYWHEEL_KEY is required for API commands. Help output never requires a key.
Usage
wxflywheel --help
wxflywheel login --help
wxflywheel login status
wxflywheel related aggregate --keyword "社群运营"
wxflywheel search related --seed "社群运营"
wxflywheel wxindex related --keyword "社群运营"
python -m wxflywheel login status
Current Command Surface
Curated commands are intentionally published one by one. The current public command surface is:
wxflywheel login statuswxflywheel related aggregate --keyword "<关键词>"wxflywheel search related --seed "<种子词>"wxflywheel wxindex related --keyword "<关键词>"
Output Contract
Command execution emits JSON. Help output remains plain text.
- Success: stdout, exit code
0 - Command/runtime errors: stderr, exit code
1 - Click argument errors: stderr, exit code
2
Schema:
{
"code": 200,
"data": {},
"message": ""
}
Adding a Command Module
Curated commands are intentionally added one by one. Do not expose a backend route directly just because it exists.
Minimum standard for a new curated command:
- One command maps to one stable user intent.
- Read-only commands are preferred by default.
- State-changing behavior must be explicit in the command name or behind an opt-in flag.
- Output must stay on the standard
code/data/messageschema. - Command logic must use shared helpers from src/wxflywheel/commands/common.py.
- Every new command must ship with tests before registration.
Workflow:
- Copy src/wxflywheel/commands/_template.py.
- Replace module/action names and API parameters.
- Add focused tests under tests.
- Register the command in src/wxflywheel/cli.py.
- Run the release checks before merging.
Release Checks
Repeatable release verification now lives in Makefile:
make release-check
This runs:
ruffmypypytest- wheel/sdist build
twine check- editable-command help smoke
- built-wheel install smoke
- package rebuild from a clean
dist//build/state
The built package ships py.typed, so installed type checkers can treat wxflywheel as a typed package.
Optional live smoke against a real service:
export WXFLYWHEEL_HOST=http://host:8011
export WXFLYWHEEL_KEY=your-api-key
make smoke-live
Development
make install-dev
make release-check
Release Management
- Package changelog: CHANGELOG.md
- Release procedure: RELEASE.md
- GitHub Actions:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wxflywheel-0.2.1.tar.gz.
File metadata
- Download URL: wxflywheel-0.2.1.tar.gz
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ccfa97bb1e00d39f6ea2de2f022c99210b929772aa6f39438a15dd7bdcbaba7
|
|
| MD5 |
3f0fd2a6412541a7169cc2a9f1d584fe
|
|
| BLAKE2b-256 |
c3229da48df0c90498d499c985c8c9db448407ff227f1d01b25dcda0e7dcea5e
|
Provenance
The following attestation bundles were made for wxflywheel-0.2.1.tar.gz:
Publisher:
wxflywheel-release.yml on vinsew/weixin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wxflywheel-0.2.1.tar.gz -
Subject digest:
4ccfa97bb1e00d39f6ea2de2f022c99210b929772aa6f39438a15dd7bdcbaba7 - Sigstore transparency entry: 1239329256
- Sigstore integration time:
-
Permalink:
vinsew/weixin@28b66ae2e2c19fc17d5bb1e5438ea0a3ae3e270d -
Branch / Tag:
refs/tags/wxflywheel-v0.2.1 - Owner: https://github.com/vinsew
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wxflywheel-release.yml@28b66ae2e2c19fc17d5bb1e5438ea0a3ae3e270d -
Trigger Event:
push
-
Statement type:
File details
Details for the file wxflywheel-0.2.1-py3-none-any.whl.
File metadata
- Download URL: wxflywheel-0.2.1-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94a2c6cc8cb24fa007f88d197d281d217a71f222b2ff47b1321e0d15c284b3df
|
|
| MD5 |
1c30a2b8ad6f52941e3c6e4acb0eabe1
|
|
| BLAKE2b-256 |
ca7b8cd7d50c852e1643dbb1696db1187946cc2471a0776e20e91b6cf6cb6a7d
|
Provenance
The following attestation bundles were made for wxflywheel-0.2.1-py3-none-any.whl:
Publisher:
wxflywheel-release.yml on vinsew/weixin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wxflywheel-0.2.1-py3-none-any.whl -
Subject digest:
94a2c6cc8cb24fa007f88d197d281d217a71f222b2ff47b1321e0d15c284b3df - Sigstore transparency entry: 1239329259
- Sigstore integration time:
-
Permalink:
vinsew/weixin@28b66ae2e2c19fc17d5bb1e5438ea0a3ae3e270d -
Branch / Tag:
refs/tags/wxflywheel-v0.2.1 - Owner: https://github.com/vinsew
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wxflywheel-release.yml@28b66ae2e2c19fc17d5bb1e5438ea0a3ae3e270d -
Trigger Event:
push
-
Statement type: