maybeai-sheet-cli 0.3.1__tar.gz → 0.3.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/PKG-INFO +79 -42
- maybeai_sheet_cli-0.3.2/README.md +224 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/pyproject.toml +1 -1
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/__init__.py +1 -1
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/tests/test_update.py +1 -1
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/uv.lock +1 -1
- maybeai_sheet_cli-0.3.1/README.md +0 -187
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/.claude/settings.local.json +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/.gitignore +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/CLAUDE.md +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/cli-packaging-plan.md +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/cli-plan.md +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/docs/agent-friendly-command-tree.md +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/docs/superpowers/plans/2026-07-01-mbs-agent-friendly-command-tree.md +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/docs/superpowers/plans/2026-07-01-mbs-agent-friendly-phase-2-routes.md +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/docs/superpowers/plans/2026-07-01-mbs-agent-friendly-phase-2.md +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/docs/superpowers/reports/2026-07-01-phase1-test-review.html +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/docs/verification-matrix-fallback.md +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/cli.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/client.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/__init__.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/formula.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/range.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/raw.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/share.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/sheet.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/table.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/workbook.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/worksheet.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/config.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/errors.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/formatters.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/models/__init__.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/models/share.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/models/sheet.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/models/workbook.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/options.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/resolver.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/update.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/tests/test_cli.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/tests/test_formatters.py +0 -0
- {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/tests/test_resolver.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: maybeai-sheet-cli
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.2
|
|
4
4
|
Summary: CLI for common MaybeAI spreadsheet operations
|
|
5
5
|
Project-URL: Homepage, https://github.com/OmniMCP-AI/maybeai-sheet-cli
|
|
6
6
|
Project-URL: Repository, https://github.com/OmniMCP-AI/maybeai-sheet-cli
|
|
@@ -57,8 +57,8 @@ pipx upgrade maybeai-sheet-cli # alternative on pipx installs
|
|
|
57
57
|
Install a specific version:
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
-
mbs update --version 0.3.
|
|
61
|
-
pipx install maybeai-sheet-cli==0.3.
|
|
60
|
+
mbs update --version 0.3.2
|
|
61
|
+
pipx install maybeai-sheet-cli==0.3.2 --force # pipx reinstall pin
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
Uninstall:
|
|
@@ -144,45 +144,82 @@ The preferred command groups are `workbook`, `worksheet`, `range`, `table`,
|
|
|
144
144
|
`formula`, `share`, and `raw`. The older `sheet ...` commands remain available
|
|
145
145
|
as compatibility aliases.
|
|
146
146
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
-
|
|
171
|
-
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
147
|
+
```text
|
|
148
|
+
mbs
|
|
149
|
+
├── update
|
|
150
|
+
│ └── Update maybeai-sheet-cli from PyPI.
|
|
151
|
+
│
|
|
152
|
+
├── workbook
|
|
153
|
+
│ ├── create Create a new workbook.
|
|
154
|
+
│ ├── create-from-file Upload/import an .xlsx file.
|
|
155
|
+
│ ├── import Preferred alias for create-from-file.
|
|
156
|
+
│ ├── manifest Inspect workbook profile and routing metadata.
|
|
157
|
+
│ └── capabilities Inspect workbook capability/profile metadata.
|
|
158
|
+
│
|
|
159
|
+
├── worksheet
|
|
160
|
+
│ ├── list List worksheets in a workbook.
|
|
161
|
+
│ └── create Create a worksheet, optionally with starter values.
|
|
162
|
+
│
|
|
163
|
+
├── range
|
|
164
|
+
│ ├── read Read a bounded A1 range.
|
|
165
|
+
│ ├── write Write a JSON matrix into an A1 range.
|
|
166
|
+
│ └── clear Clear an A1 range.
|
|
167
|
+
│
|
|
168
|
+
├── table
|
|
169
|
+
│ ├── headers Read header row metadata.
|
|
170
|
+
│ ├── append-rows Append JSON row objects.
|
|
171
|
+
│ └── upsert-rows Upsert JSON row objects by key.
|
|
172
|
+
│
|
|
173
|
+
├── formula
|
|
174
|
+
│ ├── read Read formulas with FORMULA render mode.
|
|
175
|
+
│ ├── set Set one formula cell.
|
|
176
|
+
│ ├── batch-set Set formula ranges from a JSON operations file.
|
|
177
|
+
│ └── recalculate Recalculate formulas for a worksheet/workbook.
|
|
178
|
+
│
|
|
179
|
+
├── share
|
|
180
|
+
│ ├── visibility Set workbook visibility.
|
|
181
|
+
│ ├── grant Grant a user permission.
|
|
182
|
+
│ ├── permission Read current permission.
|
|
183
|
+
│ ├── remove Remove a user's access.
|
|
184
|
+
│ └── list List sharing entries.
|
|
185
|
+
│
|
|
186
|
+
├── raw
|
|
187
|
+
│ └── post Low-level POST escape hatch for routed API paths.
|
|
188
|
+
│
|
|
189
|
+
└── sheet Legacy compatibility aliases.
|
|
190
|
+
├── read
|
|
191
|
+
├── read-range
|
|
192
|
+
├── read-many
|
|
193
|
+
├── named-range
|
|
194
|
+
├── headers
|
|
195
|
+
├── worksheets
|
|
196
|
+
├── formulas
|
|
197
|
+
├── write-range
|
|
198
|
+
├── clear-range
|
|
199
|
+
├── append
|
|
200
|
+
├── upsert
|
|
201
|
+
├── formula-set
|
|
202
|
+
├── formula-batch-set
|
|
203
|
+
├── recalculate
|
|
204
|
+
└── create-worksheet
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Relationship guide:
|
|
208
|
+
|
|
209
|
+
- Use `workbook` for file-level creation, upload/import, and manifest checks.
|
|
210
|
+
- Use `worksheet` for tab lifecycle operations.
|
|
211
|
+
- Use `range` for coordinate-based reads and writes.
|
|
212
|
+
- Use `table` when data is row-object shaped and keyed by headers.
|
|
213
|
+
- Use `formula` when preserving or changing formulas matters.
|
|
214
|
+
- Use `share` for visibility and collaborator access.
|
|
215
|
+
- Use `raw post` only when a first-class command does not exist yet.
|
|
216
|
+
|
|
217
|
+
Targeting notes:
|
|
218
|
+
|
|
219
|
+
- Most commands accept `--doc-id`, `--url`, or `--uri`.
|
|
220
|
+
- Prefer `--worksheet-name` when the backend route supports names.
|
|
221
|
+
- Use `--gid` for gid-specific table operations; live verification showed
|
|
222
|
+
`table upsert-rows` is safest with `--gid`.
|
|
186
223
|
|
|
187
224
|
## Input Rules
|
|
188
225
|
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
# maybeai-sheet-cli
|
|
2
|
+
|
|
3
|
+
CLI for MaybeAI spreadsheet operations.
|
|
4
|
+
|
|
5
|
+
`mbs` wraps the MaybeAI spreadsheet HTTP APIs behind a stable command-line interface for humans, CI jobs, and agents.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
On Debian/Ubuntu and other **PEP 668** systems, do **not** use bare `pip install` on system Python. Use **pipx** (recommended for CLIs):
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
sudo apt install -y pipx python3-venv
|
|
13
|
+
pipx ensurepath
|
|
14
|
+
# re-login or: source ~/.bashrc
|
|
15
|
+
|
|
16
|
+
pipx install maybeai-sheet-cli
|
|
17
|
+
mbs --version
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
For local venvs or macOS/dev machines, plain pip is fine:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
pip install maybeai-sheet-cli
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Upgrade to the latest release:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
mbs update # when installed via pip or pipx
|
|
30
|
+
pipx upgrade maybeai-sheet-cli # alternative on pipx installs
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Install a specific version:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
mbs update --version 0.3.2
|
|
37
|
+
pipx install maybeai-sheet-cli==0.3.2 --force # pipx reinstall pin
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Uninstall:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
pipx uninstall maybeai-sheet-cli
|
|
44
|
+
# not: pip uninstall -U (-U is invalid for uninstall)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Requirements
|
|
48
|
+
|
|
49
|
+
- Python 3.10+
|
|
50
|
+
- `MAYBEAI_API_TOKEN`
|
|
51
|
+
|
|
52
|
+
## Configure
|
|
53
|
+
|
|
54
|
+
Set your API token:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
export MAYBEAI_API_TOKEN="YOUR_TOKEN"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Optional global flags:
|
|
61
|
+
|
|
62
|
+
- `--base-url` to point at a different MaybeAI API host
|
|
63
|
+
- `--output json|table|yaml`
|
|
64
|
+
- `--timeout <seconds>`
|
|
65
|
+
- `--verbose`
|
|
66
|
+
|
|
67
|
+
## Quick Start
|
|
68
|
+
|
|
69
|
+
Read a bounded range:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
mbs range read --doc-id abc123 --worksheet-name Sheet1 --range A1:D20
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
List worksheets:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
mbs worksheet list --doc-id abc123
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Read headers from a worksheet:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
mbs table headers --doc-id abc123 --gid 3
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Create a workbook:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
mbs workbook create --title "Board Pack"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Upload a workbook-style `.xlsx` through the default Excelize path:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
mbs workbook import ./report.xlsx
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Import a large table-like `.xlsx` into SheetTable/PG:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
mbs workbook import ./large-table.xlsx --engine postgres
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Append rows and verify:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
mbs table append-rows --doc-id abc123 --gid 3 --rows rows.json --verify
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Make a workbook public for viewers:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
mbs share visibility --doc-id abc123 --visibility public --public-permission viewer
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Commands
|
|
118
|
+
|
|
119
|
+
The preferred command groups are `workbook`, `worksheet`, `range`, `table`,
|
|
120
|
+
`formula`, `share`, and `raw`. The older `sheet ...` commands remain available
|
|
121
|
+
as compatibility aliases.
|
|
122
|
+
|
|
123
|
+
```text
|
|
124
|
+
mbs
|
|
125
|
+
├── update
|
|
126
|
+
│ └── Update maybeai-sheet-cli from PyPI.
|
|
127
|
+
│
|
|
128
|
+
├── workbook
|
|
129
|
+
│ ├── create Create a new workbook.
|
|
130
|
+
│ ├── create-from-file Upload/import an .xlsx file.
|
|
131
|
+
│ ├── import Preferred alias for create-from-file.
|
|
132
|
+
│ ├── manifest Inspect workbook profile and routing metadata.
|
|
133
|
+
│ └── capabilities Inspect workbook capability/profile metadata.
|
|
134
|
+
│
|
|
135
|
+
├── worksheet
|
|
136
|
+
│ ├── list List worksheets in a workbook.
|
|
137
|
+
│ └── create Create a worksheet, optionally with starter values.
|
|
138
|
+
│
|
|
139
|
+
├── range
|
|
140
|
+
│ ├── read Read a bounded A1 range.
|
|
141
|
+
│ ├── write Write a JSON matrix into an A1 range.
|
|
142
|
+
│ └── clear Clear an A1 range.
|
|
143
|
+
│
|
|
144
|
+
├── table
|
|
145
|
+
│ ├── headers Read header row metadata.
|
|
146
|
+
│ ├── append-rows Append JSON row objects.
|
|
147
|
+
│ └── upsert-rows Upsert JSON row objects by key.
|
|
148
|
+
│
|
|
149
|
+
├── formula
|
|
150
|
+
│ ├── read Read formulas with FORMULA render mode.
|
|
151
|
+
│ ├── set Set one formula cell.
|
|
152
|
+
│ ├── batch-set Set formula ranges from a JSON operations file.
|
|
153
|
+
│ └── recalculate Recalculate formulas for a worksheet/workbook.
|
|
154
|
+
│
|
|
155
|
+
├── share
|
|
156
|
+
│ ├── visibility Set workbook visibility.
|
|
157
|
+
│ ├── grant Grant a user permission.
|
|
158
|
+
│ ├── permission Read current permission.
|
|
159
|
+
│ ├── remove Remove a user's access.
|
|
160
|
+
│ └── list List sharing entries.
|
|
161
|
+
│
|
|
162
|
+
├── raw
|
|
163
|
+
│ └── post Low-level POST escape hatch for routed API paths.
|
|
164
|
+
│
|
|
165
|
+
└── sheet Legacy compatibility aliases.
|
|
166
|
+
├── read
|
|
167
|
+
├── read-range
|
|
168
|
+
├── read-many
|
|
169
|
+
├── named-range
|
|
170
|
+
├── headers
|
|
171
|
+
├── worksheets
|
|
172
|
+
├── formulas
|
|
173
|
+
├── write-range
|
|
174
|
+
├── clear-range
|
|
175
|
+
├── append
|
|
176
|
+
├── upsert
|
|
177
|
+
├── formula-set
|
|
178
|
+
├── formula-batch-set
|
|
179
|
+
├── recalculate
|
|
180
|
+
└── create-worksheet
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Relationship guide:
|
|
184
|
+
|
|
185
|
+
- Use `workbook` for file-level creation, upload/import, and manifest checks.
|
|
186
|
+
- Use `worksheet` for tab lifecycle operations.
|
|
187
|
+
- Use `range` for coordinate-based reads and writes.
|
|
188
|
+
- Use `table` when data is row-object shaped and keyed by headers.
|
|
189
|
+
- Use `formula` when preserving or changing formulas matters.
|
|
190
|
+
- Use `share` for visibility and collaborator access.
|
|
191
|
+
- Use `raw post` only when a first-class command does not exist yet.
|
|
192
|
+
|
|
193
|
+
Targeting notes:
|
|
194
|
+
|
|
195
|
+
- Most commands accept `--doc-id`, `--url`, or `--uri`.
|
|
196
|
+
- Prefer `--worksheet-name` when the backend route supports names.
|
|
197
|
+
- Use `--gid` for gid-specific table operations; live verification showed
|
|
198
|
+
`table upsert-rows` is safest with `--gid`.
|
|
199
|
+
|
|
200
|
+
## Input Rules
|
|
201
|
+
|
|
202
|
+
- Use `--doc-id`, `--url`, or `--uri` to identify a workbook.
|
|
203
|
+
- Use `--worksheet-name` when the endpoint supports it.
|
|
204
|
+
- Use `--gid` for gid-specific sheet targeting.
|
|
205
|
+
- File inputs like `--rows`, `--values`, `--targets`, and `--operations` must be JSON.
|
|
206
|
+
|
|
207
|
+
## Output
|
|
208
|
+
|
|
209
|
+
Default output is JSON. `table` is optimized for sheet-like payloads; `yaml` is also supported.
|
|
210
|
+
|
|
211
|
+
## Development
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
python3 -m venv .venv
|
|
215
|
+
. .venv/bin/activate
|
|
216
|
+
pip install -U pip
|
|
217
|
+
pip install -e .
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Run tests:
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
python -m unittest discover -s tests -v
|
|
224
|
+
```
|
|
@@ -31,7 +31,7 @@ class UpdateTests(unittest.TestCase):
|
|
|
31
31
|
"maybeai_sheet.update.version",
|
|
32
32
|
side_effect=PackageNotFoundError("maybeai-sheet-cli"),
|
|
33
33
|
):
|
|
34
|
-
self.assertEqual(installed_version(), "0.3.
|
|
34
|
+
self.assertEqual(installed_version(), "0.3.2")
|
|
35
35
|
|
|
36
36
|
def test_build_pip_install_command_latest(self) -> None:
|
|
37
37
|
command = build_pip_install_command(target_version=None)
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
# maybeai-sheet-cli
|
|
2
|
-
|
|
3
|
-
CLI for MaybeAI spreadsheet operations.
|
|
4
|
-
|
|
5
|
-
`mbs` wraps the MaybeAI spreadsheet HTTP APIs behind a stable command-line interface for humans, CI jobs, and agents.
|
|
6
|
-
|
|
7
|
-
## Install
|
|
8
|
-
|
|
9
|
-
On Debian/Ubuntu and other **PEP 668** systems, do **not** use bare `pip install` on system Python. Use **pipx** (recommended for CLIs):
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
sudo apt install -y pipx python3-venv
|
|
13
|
-
pipx ensurepath
|
|
14
|
-
# re-login or: source ~/.bashrc
|
|
15
|
-
|
|
16
|
-
pipx install maybeai-sheet-cli
|
|
17
|
-
mbs --version
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
For local venvs or macOS/dev machines, plain pip is fine:
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
pip install maybeai-sheet-cli
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Upgrade to the latest release:
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
mbs update # when installed via pip or pipx
|
|
30
|
-
pipx upgrade maybeai-sheet-cli # alternative on pipx installs
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Install a specific version:
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
mbs update --version 0.3.1
|
|
37
|
-
pipx install maybeai-sheet-cli==0.3.1 --force # pipx reinstall pin
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
Uninstall:
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
pipx uninstall maybeai-sheet-cli
|
|
44
|
-
# not: pip uninstall -U (-U is invalid for uninstall)
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## Requirements
|
|
48
|
-
|
|
49
|
-
- Python 3.10+
|
|
50
|
-
- `MAYBEAI_API_TOKEN`
|
|
51
|
-
|
|
52
|
-
## Configure
|
|
53
|
-
|
|
54
|
-
Set your API token:
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
export MAYBEAI_API_TOKEN="YOUR_TOKEN"
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
Optional global flags:
|
|
61
|
-
|
|
62
|
-
- `--base-url` to point at a different MaybeAI API host
|
|
63
|
-
- `--output json|table|yaml`
|
|
64
|
-
- `--timeout <seconds>`
|
|
65
|
-
- `--verbose`
|
|
66
|
-
|
|
67
|
-
## Quick Start
|
|
68
|
-
|
|
69
|
-
Read a bounded range:
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
mbs range read --doc-id abc123 --worksheet-name Sheet1 --range A1:D20
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
List worksheets:
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
mbs worksheet list --doc-id abc123
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
Read headers from a worksheet:
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
mbs table headers --doc-id abc123 --gid 3
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Create a workbook:
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
mbs workbook create --title "Board Pack"
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
Upload a workbook-style `.xlsx` through the default Excelize path:
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
mbs workbook import ./report.xlsx
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
Import a large table-like `.xlsx` into SheetTable/PG:
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
mbs workbook import ./large-table.xlsx --engine postgres
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
Append rows and verify:
|
|
106
|
-
|
|
107
|
-
```bash
|
|
108
|
-
mbs table append-rows --doc-id abc123 --gid 3 --rows rows.json --verify
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
Make a workbook public for viewers:
|
|
112
|
-
|
|
113
|
-
```bash
|
|
114
|
-
mbs share visibility --doc-id abc123 --visibility public --public-permission viewer
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
## Commands
|
|
118
|
-
|
|
119
|
-
The preferred command groups are `workbook`, `worksheet`, `range`, `table`,
|
|
120
|
-
`formula`, `share`, and `raw`. The older `sheet ...` commands remain available
|
|
121
|
-
as compatibility aliases.
|
|
122
|
-
|
|
123
|
-
- `update`
|
|
124
|
-
- `workbook create`
|
|
125
|
-
- `workbook create-from-file`
|
|
126
|
-
- `workbook import`
|
|
127
|
-
- `workbook manifest`
|
|
128
|
-
- `workbook capabilities`
|
|
129
|
-
- `worksheet list`
|
|
130
|
-
- `worksheet create`
|
|
131
|
-
- `range read`
|
|
132
|
-
- `range write`
|
|
133
|
-
- `range clear`
|
|
134
|
-
- `table headers`
|
|
135
|
-
- `table append-rows`
|
|
136
|
-
- `table upsert-rows`
|
|
137
|
-
- `formula read`
|
|
138
|
-
- `formula set`
|
|
139
|
-
- `formula batch-set`
|
|
140
|
-
- `formula recalculate`
|
|
141
|
-
- `share visibility`
|
|
142
|
-
- `share grant`
|
|
143
|
-
- `share permission`
|
|
144
|
-
- `share remove`
|
|
145
|
-
- `share list`
|
|
146
|
-
- `sheet read`
|
|
147
|
-
- `sheet read-range`
|
|
148
|
-
- `sheet read-many`
|
|
149
|
-
- `sheet named-range`
|
|
150
|
-
- `sheet headers`
|
|
151
|
-
- `sheet worksheets`
|
|
152
|
-
- `sheet formulas`
|
|
153
|
-
- `sheet write-range`
|
|
154
|
-
- `sheet clear-range`
|
|
155
|
-
- `sheet append`
|
|
156
|
-
- `sheet formula-set`
|
|
157
|
-
- `sheet formula-batch-set`
|
|
158
|
-
- `sheet recalculate`
|
|
159
|
-
- `sheet upsert`
|
|
160
|
-
- `sheet create-worksheet`
|
|
161
|
-
- `raw post`
|
|
162
|
-
|
|
163
|
-
## Input Rules
|
|
164
|
-
|
|
165
|
-
- Use `--doc-id`, `--url`, or `--uri` to identify a workbook.
|
|
166
|
-
- Use `--worksheet-name` when the endpoint supports it.
|
|
167
|
-
- Use `--gid` for gid-specific sheet targeting.
|
|
168
|
-
- File inputs like `--rows`, `--values`, `--targets`, and `--operations` must be JSON.
|
|
169
|
-
|
|
170
|
-
## Output
|
|
171
|
-
|
|
172
|
-
Default output is JSON. `table` is optimized for sheet-like payloads; `yaml` is also supported.
|
|
173
|
-
|
|
174
|
-
## Development
|
|
175
|
-
|
|
176
|
-
```bash
|
|
177
|
-
python3 -m venv .venv
|
|
178
|
-
. .venv/bin/activate
|
|
179
|
-
pip install -U pip
|
|
180
|
-
pip install -e .
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
Run tests:
|
|
184
|
-
|
|
185
|
-
```bash
|
|
186
|
-
python -m unittest discover -s tests -v
|
|
187
|
-
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|