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.
Files changed (42) hide show
  1. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/PKG-INFO +79 -42
  2. maybeai_sheet_cli-0.3.2/README.md +224 -0
  3. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/pyproject.toml +1 -1
  4. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/__init__.py +1 -1
  5. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/tests/test_update.py +1 -1
  6. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/uv.lock +1 -1
  7. maybeai_sheet_cli-0.3.1/README.md +0 -187
  8. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/.claude/settings.local.json +0 -0
  9. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/.gitignore +0 -0
  10. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/CLAUDE.md +0 -0
  11. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/cli-packaging-plan.md +0 -0
  12. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/cli-plan.md +0 -0
  13. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/docs/agent-friendly-command-tree.md +0 -0
  14. {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
  15. {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
  16. {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
  17. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/docs/superpowers/reports/2026-07-01-phase1-test-review.html +0 -0
  18. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/docs/verification-matrix-fallback.md +0 -0
  19. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/cli.py +0 -0
  20. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/client.py +0 -0
  21. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/__init__.py +0 -0
  22. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/formula.py +0 -0
  23. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/range.py +0 -0
  24. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/raw.py +0 -0
  25. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/share.py +0 -0
  26. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/sheet.py +0 -0
  27. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/table.py +0 -0
  28. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/workbook.py +0 -0
  29. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/commands/worksheet.py +0 -0
  30. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/config.py +0 -0
  31. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/errors.py +0 -0
  32. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/formatters.py +0 -0
  33. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/models/__init__.py +0 -0
  34. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/models/share.py +0 -0
  35. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/models/sheet.py +0 -0
  36. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/models/workbook.py +0 -0
  37. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/options.py +0 -0
  38. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/resolver.py +0 -0
  39. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/src/maybeai_sheet/update.py +0 -0
  40. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/tests/test_cli.py +0 -0
  41. {maybeai_sheet_cli-0.3.1 → maybeai_sheet_cli-0.3.2}/tests/test_formatters.py +0 -0
  42. {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.1
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.1
61
- pipx install maybeai-sheet-cli==0.3.1 --force # pipx reinstall pin
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
- - `update`
148
- - `workbook create`
149
- - `workbook create-from-file`
150
- - `workbook import`
151
- - `workbook manifest`
152
- - `workbook capabilities`
153
- - `worksheet list`
154
- - `worksheet create`
155
- - `range read`
156
- - `range write`
157
- - `range clear`
158
- - `table headers`
159
- - `table append-rows`
160
- - `table upsert-rows`
161
- - `formula read`
162
- - `formula set`
163
- - `formula batch-set`
164
- - `formula recalculate`
165
- - `share visibility`
166
- - `share grant`
167
- - `share permission`
168
- - `share remove`
169
- - `share list`
170
- - `sheet read`
171
- - `sheet read-range`
172
- - `sheet read-many`
173
- - `sheet named-range`
174
- - `sheet headers`
175
- - `sheet worksheets`
176
- - `sheet formulas`
177
- - `sheet write-range`
178
- - `sheet clear-range`
179
- - `sheet append`
180
- - `sheet formula-set`
181
- - `sheet formula-batch-set`
182
- - `sheet recalculate`
183
- - `sheet upsert`
184
- - `sheet create-worksheet`
185
- - `raw post`
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
+ ```
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "maybeai-sheet-cli"
7
- version = "0.3.1"
7
+ version = "0.3.2"
8
8
  description = "CLI for common MaybeAI spreadsheet operations"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -2,4 +2,4 @@
2
2
 
3
3
  __all__ = ["__version__"]
4
4
 
5
- __version__ = "0.3.1"
5
+ __version__ = "0.3.2"
@@ -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.1")
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)
@@ -123,7 +123,7 @@ wheels = [
123
123
 
124
124
  [[package]]
125
125
  name = "maybeai-sheet-cli"
126
- version = "0.3.1"
126
+ version = "0.3.2"
127
127
  source = { editable = "." }
128
128
  dependencies = [
129
129
  { name = "httpx" },
@@ -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
- ```