kaggle 2.1.2__tar.gz → 2.2.0__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 (79) hide show
  1. kaggle-2.2.0/.gcloudignore +12 -0
  2. {kaggle-2.1.2 → kaggle-2.2.0}/.gitignore +3 -0
  3. {kaggle-2.1.2 → kaggle-2.2.0}/CHANGELOG.md +8 -0
  4. {kaggle-2.1.2 → kaggle-2.2.0}/PKG-INFO +2 -2
  5. {kaggle-2.1.2 → kaggle-2.2.0}/docs/benchmarks.md +188 -28
  6. {kaggle-2.1.2 → kaggle-2.2.0}/docs/competitions.md +15 -11
  7. {kaggle-2.1.2 → kaggle-2.2.0}/docs/datasets.md +9 -9
  8. {kaggle-2.1.2 → kaggle-2.2.0}/docs/forums.md +13 -11
  9. {kaggle-2.1.2 → kaggle-2.2.0}/docs/models.md +9 -9
  10. {kaggle-2.1.2 → kaggle-2.2.0}/docs/simulation_competitions.md +6 -9
  11. {kaggle-2.1.2 → kaggle-2.2.0}/pyproject.toml +8 -1
  12. {kaggle-2.1.2 → kaggle-2.2.0}/requirements.lock +1 -1
  13. {kaggle-2.1.2 → kaggle-2.2.0}/skills/references/benchmarks.md +94 -26
  14. {kaggle-2.1.2 → kaggle-2.2.0}/src/kaggle/__init__.py +1 -1
  15. kaggle-2.2.0/src/kaggle/__main__.py +11 -0
  16. {kaggle-2.1.2 → kaggle-2.2.0}/src/kaggle/api/kaggle_api_extended.py +780 -216
  17. {kaggle-2.1.2 → kaggle-2.2.0}/src/kaggle/cli.py +393 -162
  18. kaggle-2.2.0/src/kaggle/test/test_authenticate.py +75 -0
  19. {kaggle-2.1.2 → kaggle-2.2.0}/src/kaggle/test/test_benchmarks_cli.py +1047 -49
  20. kaggle-2.2.0/src/kaggle/test/test_discussions_cli.py +441 -0
  21. kaggle-2.2.0/tests/run_tests.sh +19 -0
  22. kaggle-2.2.0/tests/sample_submission.csv +1460 -0
  23. {kaggle-2.1.2 → kaggle-2.2.0}/tests/test_commands.sh +5 -0
  24. {kaggle-2.1.2 → kaggle-2.2.0}/tests/unit_tests.py +2 -1
  25. kaggle-2.2.0/tools/releases/cloudbuild.yaml +133 -0
  26. {kaggle-2.1.2 → kaggle-2.2.0}/tools/releases/requirements.txt +6 -6
  27. kaggle-2.1.2/.gcloudignore +0 -1
  28. kaggle-2.1.2/.github/workflows/no-response.yaml +0 -33
  29. kaggle-2.1.2/src/kaggle/test/test_authenticate.py +0 -43
  30. kaggle-2.1.2/tools/releases/cloudbuild.yaml +0 -107
  31. {kaggle-2.1.2 → kaggle-2.2.0}/CONTRIBUTING.md +0 -0
  32. {kaggle-2.1.2 → kaggle-2.2.0}/Dockerfile +0 -0
  33. {kaggle-2.1.2 → kaggle-2.2.0}/GEMINI.md +0 -0
  34. {kaggle-2.1.2 → kaggle-2.2.0}/LICENSE.txt +0 -0
  35. {kaggle-2.1.2 → kaggle-2.2.0}/README.md +0 -0
  36. {kaggle-2.1.2 → kaggle-2.2.0}/SECURITY.md +0 -0
  37. {kaggle-2.1.2 → kaggle-2.2.0}/docker-hatch +0 -0
  38. {kaggle-2.1.2 → kaggle-2.2.0}/docs/Makefile +0 -0
  39. {kaggle-2.1.2 → kaggle-2.2.0}/docs/README.md +0 -0
  40. {kaggle-2.1.2 → kaggle-2.2.0}/docs/conf.py +0 -0
  41. {kaggle-2.1.2 → kaggle-2.2.0}/docs/configuration.md +0 -0
  42. {kaggle-2.1.2 → kaggle-2.2.0}/docs/datasets_metadata.md +0 -0
  43. {kaggle-2.1.2 → kaggle-2.2.0}/docs/index.rst +0 -0
  44. {kaggle-2.1.2 → kaggle-2.2.0}/docs/kernels.md +0 -0
  45. {kaggle-2.1.2 → kaggle-2.2.0}/docs/kernels_metadata.md +0 -0
  46. {kaggle-2.1.2 → kaggle-2.2.0}/docs/make.bat +0 -0
  47. {kaggle-2.1.2 → kaggle-2.2.0}/docs/model_variations.md +0 -0
  48. {kaggle-2.1.2 → kaggle-2.2.0}/docs/model_variations_versions.md +0 -0
  49. {kaggle-2.1.2 → kaggle-2.2.0}/docs/models_metadata.md +0 -0
  50. {kaggle-2.1.2 → kaggle-2.2.0}/docs/tutorials.md +0 -0
  51. {kaggle-2.1.2 → kaggle-2.2.0}/integration_tests/__init__.py +0 -0
  52. {kaggle-2.1.2 → kaggle-2.2.0}/integration_tests/test_models.py +0 -0
  53. {kaggle-2.1.2 → kaggle-2.2.0}/requirements-lint.in +0 -0
  54. {kaggle-2.1.2 → kaggle-2.2.0}/requirements-lint.lock +0 -0
  55. {kaggle-2.1.2 → kaggle-2.2.0}/requirements-test.in +0 -0
  56. {kaggle-2.1.2 → kaggle-2.2.0}/requirements-test.lock +0 -0
  57. {kaggle-2.1.2 → kaggle-2.2.0}/skills/SKILL.md +0 -0
  58. {kaggle-2.1.2 → kaggle-2.2.0}/src/kaggle/LICENSE +0 -0
  59. {kaggle-2.1.2 → kaggle-2.2.0}/src/kaggle/api/__init__.py +0 -0
  60. {kaggle-2.1.2 → kaggle-2.2.0}/src/kaggle/api/kaggle_api.py +0 -0
  61. {kaggle-2.1.2 → kaggle-2.2.0}/src/kaggle/models/__init__.py +0 -0
  62. {kaggle-2.1.2 → kaggle-2.2.0}/src/kaggle/models/kaggle_models_extended.py +0 -0
  63. {kaggle-2.1.2 → kaggle-2.2.0}/src/kaggle/models/upload_file.py +0 -0
  64. {kaggle-2.1.2 → kaggle-2.2.0}/src/kaggle/test/conftest.py +0 -0
  65. {kaggle-2.1.2 → kaggle-2.2.0}/tests/__init__.py +0 -0
  66. {kaggle-2.1.2 → kaggle-2.2.0}/tests/dataset/data.csv +0 -0
  67. {kaggle-2.1.2 → kaggle-2.2.0}/tests/kernel/testing-x.ipynb +0 -0
  68. {kaggle-2.1.2 → kaggle-2.2.0}/tests/model/instance/data.csv +0 -0
  69. {kaggle-2.1.2 → kaggle-2.2.0}/tests/model/instance/version/metadata.json +0 -0
  70. {kaggle-2.1.2 → kaggle-2.2.0}/tests/test_dataset_status.py +0 -0
  71. {kaggle-2.1.2 → kaggle-2.2.0}/tests/test_kernels_logs.py +0 -0
  72. {kaggle-2.1.2 → kaggle-2.2.0}/tests/test_retry_after.py +0 -0
  73. {kaggle-2.1.2 → kaggle-2.2.0}/tools/cicd/Dockerfile +0 -0
  74. {kaggle-2.1.2 → kaggle-2.2.0}/tools/cicd/cloudbuild.yaml +0 -0
  75. {kaggle-2.1.2 → kaggle-2.2.0}/tools/cicd/integration-tests.yaml +0 -0
  76. {kaggle-2.1.2 → kaggle-2.2.0}/tools/releases/Dockerfile +0 -0
  77. {kaggle-2.1.2 → kaggle-2.2.0}/tools/releases/requirements.in +0 -0
  78. {kaggle-2.1.2 → kaggle-2.2.0}/tools/use-localhost.sh +0 -0
  79. {kaggle-2.1.2 → kaggle-2.2.0}/tools/use-prod.sh +0 -0
@@ -0,0 +1,12 @@
1
+ # Source control
2
+ .git/
3
+ .github/
4
+
5
+ # Byte-compiled / optimized / DLL files
6
+ __pycache__/
7
+
8
+ # Builds & related cache
9
+ dist/
10
+ .mypy_cache/
11
+ .pytest_cache/
12
+ .ruff_cache/
@@ -79,3 +79,6 @@ target/
79
79
 
80
80
  # Kagent
81
81
  .kagent-context/**
82
+
83
+ # Jetski
84
+ .jetskicli/
@@ -3,6 +3,14 @@ Changelog
3
3
 
4
4
  ### Next
5
5
 
6
+ ### 2.2.0
7
+
8
+ * Add test runner workflow
9
+ * Patch discussions code (#1018)
10
+ * fix(benchmarks): normalize provider-prefixed and @-containing model s… (#1016)
11
+ * fix(benchmarks): handle EOF when selecting models without -m (#1013)
12
+ * fix(benchmarks): dual layer rate limiting (#1014)
13
+ * Small changes to improve debugging (#1008)
6
14
  * feat: add forums commands for browsing Kaggle discussions (#993)
7
15
  * Add competitions topics CLI command (#982)
8
16
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kaggle
3
- Version: 2.1.2
3
+ Version: 2.2.0
4
4
  Summary: Access Kaggle resources anywhere
5
5
  Project-URL: Homepage, https://github.com/Kaggle/kaggle-cli
6
6
  Project-URL: Issues, https://github.com/Kaggle/kaggle-cli/issues
@@ -214,7 +214,7 @@ Classifier: Programming Language :: Python :: 3
214
214
  Requires-Python: >=3.11
215
215
  Requires-Dist: bleach
216
216
  Requires-Dist: jupytext
217
- Requires-Dist: kagglesdk<1.0,>=0.1.23
217
+ Requires-Dist: kagglesdk<1.0,>=0.1.24
218
218
  Requires-Dist: packaging
219
219
  Requires-Dist: protobuf
220
220
  Requires-Dist: python-dateutil
@@ -6,7 +6,7 @@ The top-level command is `kaggle benchmarks` (alias: `kaggle b`), which has thre
6
6
 
7
7
  * **`auth`** — Fetch Model Proxy credentials.
8
8
  * **`init`** — Fetch credentials and default environment variables for local development.
9
- * **`tasks`** (alias: `t`) — Manage benchmark tasks (push, run, list, status, download, models, delete).
9
+ * **`tasks`** (alias: `t`) — Manage benchmark tasks (push, run, list, status, download, log, models, delete, publish).
10
10
 
11
11
  ## `kaggle benchmarks auth`
12
12
 
@@ -108,7 +108,10 @@ kaggle benchmarks tasks push <TASK> -f <FILE> [options]
108
108
 
109
109
  * `-f, --file <FILE>` *(required)*: Path to the source Python file defining the task.
110
110
  * `--wait [TIMEOUT]`: Wait for the task creation to complete. Optionally specify a timeout in seconds (`0` or omit value = wait indefinitely).
111
- * `--poll-interval <SECONDS>`: Seconds between status polls when using `--wait` (default: `10`).
111
+ * `--poll-interval <SECONDS>`: Maximum seconds between status polls (default: `60`). Polling starts at 5s and increases by 50% each iteration until reaching this value.
112
+ * `-v, --verbose`: Enable verbose polling logs.
113
+ * `-d, --kaggle-dataset <DATASET>`: Kaggle dataset to attach to the task's underlying notebook (format: `owner/dataset-slug`). Repeat for multiple datasets (e.g. `-d kaggle/titanic -d user/my-dataset`). Mounted at `/kaggle/input/<dataset-slug>/` by default. If a naming conflict occurs, the fully qualified mount path `/kaggle/input/<owner>/<dataset-slug>/` is used instead.
114
+
112
115
 
113
116
  **Examples:**
114
117
 
@@ -125,14 +128,28 @@ kaggle benchmarks tasks push <TASK> -f <FILE> [options]
125
128
  ```
126
129
 
127
130
  3. Push a task and wait with a 60-second timeout, polling every 5 seconds:
128
-
129
- ```bash
130
- kaggle b t push my-task -f benchmark.py --wait 60 --poll-interval 5
131
- ```
131
+
132
+ ```bash
133
+ kaggle b t push my-task -f benchmark.py --wait 60 --poll-interval 5
134
+ ```
135
+
136
+ 4. Push a task with Kaggle datasets attached:
137
+
138
+ ```bash
139
+ kaggle b t push my-task -f benchmark.py -d kaggle/titanic -d user/my-dataset
140
+ ```
141
+
142
+ 5. Push a task with datasets and wait:
143
+
144
+ ```bash
145
+ kaggle b t push my-task -f benchmark.py --wait -d kaggle/titanic
146
+ ```
132
147
 
133
148
  **Purpose:**
134
149
 
135
150
  This command reads a `.py` file, converts it to a Jupyter notebook format, and uploads it to Kaggle as a benchmark task. If a task with the same slug already exists, a new version is created. The file is validated to ensure it contains a `@task` decorator matching the given task name.
151
+
152
+ **Note on dataset attachment:** When `--kaggle-dataset` / `-d` is specified, the listed datasets are attached to the task's underlying notebook kernel. During execution, they are accessible at `/kaggle/input/<dataset-slug>/` by default, falling back to `/kaggle/input/<owner>/<dataset-slug>/` in the event of a naming conflict. If you re-push without `-d`, all previously-attached datasets are detached (a warning is printed). To preserve datasets across pushes, re-specify them each time. If any specified dataset is invalid, non-existent, or inaccessible, the push command will **fail** with an error: `Failed to push task: Failed to attach the following data sources (not found or inaccessible): <dataset>`.
136
153
 
137
154
  ---
138
155
 
@@ -148,13 +165,14 @@ kaggle benchmarks tasks run <TASK> [options]
148
165
 
149
166
  **Arguments:**
150
167
 
151
- * `<TASK>`: Task name (slug).
168
+ * `<TASK>`: Task name (slug, e.g. `my-task`).
152
169
 
153
170
  **Options:**
154
171
 
155
- * `-m, --model <MODEL> [MODEL ...]`: One or more model slugs to run against. If omitted, an interactive model picker is displayed.
172
+ * `-m, --model <MODEL>`: Model slug (e.g. `gemini-2.5-pro`) to run against. Repeat for multiple models (e.g. `-m gemini-2.5-pro -m claude-sonnet-4`). If omitted, an interactive model picker is displayed.
156
173
  * `--wait [TIMEOUT]`: Wait for runs to complete. Optionally specify a timeout in seconds (`0` or omit value = wait indefinitely).
157
- * `--poll-interval <SECONDS>`: Seconds between status polls when using `--wait` (default: `10`).
174
+ * `--poll-interval <SECONDS>`: Maximum seconds between status polls (default: `60`). Polling starts at 5s and increases by 50% each iteration until reaching this value.
175
+ * `-v, --verbose`: Enable verbose polling logs.
158
176
 
159
177
  **Examples:**
160
178
 
@@ -167,13 +185,13 @@ kaggle benchmarks tasks run <TASK> [options]
167
185
  2. Run a task against specific models:
168
186
 
169
187
  ```bash
170
- kaggle b t run my-task -m google/gemini-2.5-pro anthropic/claude-sonnet-4
188
+ kaggle b t run my-task -m gemini-2.5-pro -m claude-sonnet-4
171
189
  ```
172
190
 
173
191
  3. Run a task and wait for all runs to finish:
174
192
 
175
193
  ```bash
176
- kaggle b t run my-task -m google/gemini-2.5-pro --wait
194
+ kaggle b t run my-task -m gemini-2.5-pro --wait
177
195
  ```
178
196
 
179
197
  **Purpose:**
@@ -229,11 +247,11 @@ kaggle benchmarks tasks status <TASK> [options]
229
247
 
230
248
  **Arguments:**
231
249
 
232
- * `<TASK>`: Task name (slug).
250
+ * `<TASK>`: Task name (slug, e.g. `my-task`).
233
251
 
234
252
  **Options:**
235
253
 
236
- * `-m, --model <MODEL> [MODEL ...]`: Filter the run table to specific model slug(s).
254
+ * `-m, --model <MODEL>`: Filter the run table to a specific model slug (e.g. `gemini-2.5-pro`). Repeat for multiple models.
237
255
 
238
256
  **Examples:**
239
257
 
@@ -246,7 +264,7 @@ kaggle benchmarks tasks status <TASK> [options]
246
264
  2. Show status for specific models only:
247
265
 
248
266
  ```bash
249
- kaggle b t status my-task -m google/gemini-2.5-pro
267
+ kaggle b t status my-task -m gemini-2.5-pro
250
268
  ```
251
269
 
252
270
  **Purpose:**
@@ -267,12 +285,14 @@ kaggle benchmarks tasks download <TASK> [options]
267
285
 
268
286
  **Arguments:**
269
287
 
270
- * `<TASK>`: Task name (slug).
288
+ * `<TASK>`: Task name (slug, e.g. `my-task`).
271
289
 
272
290
  **Options:**
273
291
 
274
- * `-m, --model <MODEL> [MODEL ...]`: Download outputs only for specific model slug(s).
292
+ * `-m, --model <MODEL>`: Download outputs only for a specific model slug (e.g. `gemini-2.5-pro`). Repeat for multiple models.
275
293
  * `-o, --output <DIRECTORY>`: Directory to download output files into (defaults to current working directory).
294
+ * `-s, --include-source`: Also download the kernel session's source notebooks.
295
+ * `-f, --force`: Force re-download of already completed runs, overwriting local files.
276
296
 
277
297
  **Examples:**
278
298
 
@@ -285,7 +305,19 @@ kaggle benchmarks tasks download <TASK> [options]
285
305
  2. Download outputs for a specific model into a custom directory:
286
306
 
287
307
  ```bash
288
- kaggle b t download my-task -m google/gemini-2.5-pro -o ./results
308
+ kaggle b t download my-task -m gemini-2.5-pro -o ./results
309
+ ```
310
+
311
+ 3. Download outputs with source notebooks included:
312
+
313
+ ```bash
314
+ kaggle b t download my-task --include-source
315
+ ```
316
+
317
+ 4. Force re-download of previously downloaded runs:
318
+
319
+ ```bash
320
+ kaggle b t download my-task --force
289
321
  ```
290
322
 
291
323
  **Purpose:**
@@ -297,7 +329,97 @@ Downloads and extracts the output zip archive for each completed run. Files are
297
329
  ├── output files...
298
330
  ```
299
331
 
300
- Already-downloaded runs (where the output directory exists) are automatically skipped.
332
+ Already-downloaded runs (where the output directory exists) are automatically skipped unless the `-f` / `--force` flag is used, in which case they are overwritten.
333
+
334
+ When `--include-source` is used, the downloaded zip also contains the kernel session's source files (e.g., `__notebook__.ipynb` and `__notebook_source__.ipynb`).
335
+
336
+ ---
337
+
338
+ ### `kaggle benchmarks tasks log`
339
+
340
+ Get execution logs for benchmark task run(s).
341
+
342
+ **Usage:**
343
+
344
+ ```bash
345
+ kaggle benchmarks tasks log <TASK> [options]
346
+ ```
347
+
348
+ **Arguments:**
349
+
350
+ * `<TASK>`: Task name (slug, e.g. `my-task`).
351
+
352
+ **Options:**
353
+
354
+ * `-m, --model <MODEL>`: Filter logs to a specific model slug (e.g. `gemini-2.5-pro`). Repeat for multiple models. If omitted, logs for all runs are shown.
355
+
356
+ **Aliases:** `log`, `logs`
357
+
358
+ **Examples:**
359
+
360
+ 1. Show logs for all runs of a task:
361
+
362
+ ```bash
363
+ kaggle b t log my-task
364
+ ```
365
+
366
+ 2. Show logs for a specific model's run(s):
367
+
368
+ ```bash
369
+ kaggle b t log my-task -m gemini-2.5-pro
370
+ ```
371
+
372
+ 3. Show logs for multiple models:
373
+
374
+ ```bash
375
+ kaggle b t logs my-task -m gemini-2.5-pro -m claude-sonnet-4
376
+ ```
377
+
378
+ **Purpose:**
379
+
380
+ Fetches and displays execution logs for benchmark task runs. Each run's logs are printed with a structured header and footer for clear identification:
381
+
382
+ ```
383
+ ═══ Logs for gemini-2.5-pro (Run 123) [COMPLETED] ═══
384
+ <log output>
385
+ ═══ (42 lines) ═══
386
+
387
+ ═══ Logs for claude-sonnet-4 (Run 456) [ERRORED] ═══
388
+ <log output>
389
+ ═══ (18 lines) ═══
390
+
391
+ Showed logs for 2 run(s) across 2 model(s).
392
+ ```
393
+
394
+ * **Header**: Shows model name, run ID, and run state (`COMPLETED`, `ERRORED`, `RUNNING`, etc.).
395
+ * **Footer**: Shows the line count for each run's log output.
396
+ * **Summary**: Printed at the end with total run and model counts.
397
+
398
+ The command handles two response types from the server:
399
+
400
+ * **Active runs**: Logs are streamed in real-time via Server-Sent Events (SSE).
401
+ * **Completed runs**: The persisted log file is returned and printed.
402
+
403
+ ### Concurrency & Streaming Order
404
+
405
+ When viewing logs for multiple concurrent model runs, the CLI processes and outputs them **sequentially** to prevent logs from interleaving and garbling your terminal output:
406
+ 1. The CLI prints the header for the first model run in the queue.
407
+ 2. If that run is currently active, the CLI blocks and streams its log output in real-time via SSE until it completes.
408
+ 3. The log output for the next model run will **only** be printed once the previous model run's log stream finishes and closes.
409
+ 4. Any model runs that complete in the background while you are watching the first stream will print instantly as completed persisted logs once their turn in the sequence is reached.
410
+
411
+ ### Model Slug Normalization
412
+
413
+ Benchmark model names are automatically normalized on both input and output. This makes it easy to pass various formats interchangeably while keeping displays and directories clean.
414
+
415
+ * **Flexible Inputs**: The CLI accepts model names in several formats:
416
+ * **Canonical Slugs (recommended)**: `gemini-2.5-pro` or `claude-sonnet-4`
417
+ * **With Provider Prefix**: `google/gemini-2.5-pro` or `anthropic/claude-sonnet-4`
418
+ * **With Version/Proxy `@` symbols**: `anthropic/claude-haiku-4-5@20251001` or `claude-sonnet-4-6@default`
419
+ * **Unified Normalization**: The client automatically strips any provider prefix (e.g., `google/` or `anthropic/`) and replaces `@` characters with `-` to match the server's canonical database slug format.
420
+ * **Clean Outputs**:
421
+ * **Status Display**: Tables and error logs display the canonical, hyphenated slugs (e.g., `claude-haiku-4-5-20251001` and `gemini-2.0-flash-lite-001`) for readability.
422
+ * **Hierarchical Downloads**: Run outputs are extracted into clean folders using the canonical slugs (e.g., `./<task>/<version>/claude-haiku-4-5-20251001/<run_id>/`), with no `@` or `/` symbols in folder names.
301
423
 
302
424
  ---
303
425
 
@@ -335,7 +457,7 @@ kaggle benchmarks tasks delete <TASK> [options]
335
457
 
336
458
  **Arguments:**
337
459
 
338
- * `<TASK>`: Task name (slug).
460
+ * `<TASK>`: Task name (slug, e.g. `my-task`).
339
461
 
340
462
  **Options:**
341
463
 
@@ -350,15 +472,53 @@ kaggle b t delete my-task -y
350
472
  **Purpose:**
351
473
 
352
474
  Deletes a benchmark task and all associated runs. **Note:** This command is not yet supported by the server.
475
+
476
+ ---
477
+
478
+ ### `kaggle benchmarks tasks publish`
479
+
480
+ Publishes a benchmark task, making it publicly visible. By default, the backing notebook is also published.
481
+
482
+ **Usage:**
483
+
484
+ ```bash
485
+ kaggle benchmarks tasks publish <TASK> [options]
486
+ ```
487
+
488
+ **Arguments:**
489
+
490
+ * `<TASK>`: Task name (slug, e.g. `my-task`).
491
+
492
+ **Options:**
493
+
494
+ * `--no-publish-backing-notebook`: Do not publish the backing notebook (it is published by default).
495
+
496
+ **Examples:**
497
+
498
+ 1. Publish a task and its backing notebook (default):
499
+
500
+ ```bash
501
+ kaggle b t publish my-task
502
+ ```
503
+
504
+ 2. Publish a task without its backing notebook:
505
+
506
+ ```bash
507
+ kaggle b t publish my-task --no-publish-backing-notebook
508
+ ```
509
+
510
+ **Purpose:**
511
+
512
+ This command changes the task's visibility from private to public. By default, the backing notebook (the kernel associated with the task) is also published. Use `--no-publish-backing-notebook` to publish only the task metadata. Publishing is idempotent — re-publishing an already-public task prints a message and returns successfully. Unpublishing is not supported through this command.
353
513
 
354
- ## `kaggle benchmarks topics`
514
+ ## `kaggle benchmarks topics list`
355
515
 
356
516
  Lists discussion topics for a benchmark.
357
517
 
358
518
  **Usage:**
359
519
 
360
520
  ```bash
361
- kaggle benchmarks topics <BENCHMARK> [options]
521
+ kaggle benchmarks topics list <BENCHMARK> [options]
362
522
  ```
363
523
 
364
524
  **Arguments:**
@@ -368,16 +528,16 @@ kaggle benchmarks topics <BENCHMARK> [options]
368
528
  **Options:**
369
529
 
370
530
  * `--sort-by <SORT_BY>`: Sort order. Valid options: `hot`, `top`, `new`, `recent`, `active`, `relevance`.
531
+ * `-s, --search <SEARCH_TERM>`: Search query to filter topics.
371
532
  * `--page-size <PAGE_SIZE>`: Number of items per page.
372
533
  * `--page-token <PAGE_TOKEN>`: Page token for pagination.
373
- * `-s, --search <SEARCH_TERM>`: Search query.
374
534
  * `-v, --csv`: Print results in CSV format.
375
535
  * `-q, --quiet`: Suppress verbose output.
376
536
 
377
537
  **Example:**
378
538
 
379
539
  ```bash
380
- kaggle benchmarks topics kaggle/chess
540
+ kaggle benchmarks topics list kaggle/chess
381
541
  ```
382
542
 
383
543
  **Purpose:**
@@ -391,22 +551,22 @@ Displays a benchmark discussion topic with all comments in tree form.
391
551
  **Usage:**
392
552
 
393
553
  ```bash
394
- kaggle benchmarks topics show <BENCHMARK>/<TOPIC_ID> [options]
554
+ kaggle benchmarks topics show <TOPIC_REF> [options]
395
555
  ```
396
556
 
397
557
  **Arguments:**
398
558
 
399
559
  * `<TOPIC_REF>`: A topic reference, which can be:
400
- * `<benchmark>/<topic-id>` (e.g., `kaggle/chess/614080`)
401
- * `<benchmark> <topic-id>` (two separate arguments)
560
+ * `<benchmark>/<topic-id>` (e.g., `kaggle/chess/614080` - note that this supports multi-slash benchmark slugs)
561
+ * `<benchmark> <topic-id>` (two separate arguments, where `<topic-id>` is passed as second argument)
402
562
  * `<topic-id>` (bare numeric ID)
403
563
 
404
564
  **Options:**
405
565
 
406
- * `-v, --csv`: Print results in CSV format.
407
- * `-q, --quiet`: Suppress verbose output.
408
566
  * `--page-size <PAGE_SIZE>`: Number of comments to show per page.
409
567
  * `--page-token <PAGE_TOKEN>`: Page token for comment pagination.
568
+ * `-v, --csv`: Print results in CSV format.
569
+ * `-q, --quiet`: Suppress verbose output.
410
570
 
411
571
  **Example:**
412
572
 
@@ -224,24 +224,28 @@ kaggle competitions leaderboard <COMPETITION> [options]
224
224
 
225
225
  This command lets you view your ranking and the scores of other participants in a competition.
226
226
 
227
- ## `kaggle competitions topics`
227
+ ## `kaggle competitions topics list`
228
228
 
229
229
  Lists discussion topics for a competition.
230
230
 
231
231
  **Usage:**
232
232
 
233
233
  ```bash
234
- kaggle competitions topics <COMPETITION> [options]
234
+ kaggle competitions topics list [COMPETITION] [options]
235
235
  ```
236
236
 
237
+ Note: `kaggle competitions topics` (without `list` subcommand) is supported as a shortcut to list topics for the default competition (configured via `kaggle config set competition`).
238
+
237
239
  **Arguments:**
238
240
 
239
- * `<COMPETITION>`: Competition URL suffix (e.g., `titanic`).
241
+ * `[COMPETITION]`: Competition URL suffix (e.g., `titanic`). Optional if default competition is configured.
240
242
 
241
243
  **Options:**
242
244
 
243
- * `--sort-by <SORT_BY>`: Sort order. Valid options: `hot`, `top`, `new`, `recent`, `active`, `relevance`.
244
- * `-p, --page <PAGE>`: Page number (1-based).
245
+ * `-s, --sort-by <SORT_BY>`: Sort order. Valid options: `hot`, `top`, `new`, `recent`, `active`, `relevance`.
246
+ * `--search <SEARCH>`: Search query to filter topics.
247
+ * `--page-size <PAGE_SIZE>`: Number of items to show on a page. Default is 20, max is 200.
248
+ * `--page-token <PAGE_TOKEN>`: Page token for results paging.
245
249
  * `-v, --csv`: Print results in CSV format.
246
250
  * `-q, --quiet`: Suppress verbose output.
247
251
 
@@ -250,7 +254,7 @@ kaggle competitions topics <COMPETITION> [options]
250
254
  List discussion topics for the "titanic" competition sorted by most recent:
251
255
 
252
256
  ```bash
253
- kaggle competitions topics titanic --sort-by recent
257
+ kaggle competitions topics list titanic -s recent
254
258
  ```
255
259
 
256
260
  **Purpose:**
@@ -264,22 +268,22 @@ Displays a competition discussion topic with all comments in tree form.
264
268
  **Usage:**
265
269
 
266
270
  ```bash
267
- kaggle competitions topics show <COMPETITION>/<TOPIC_ID> [options]
271
+ kaggle competitions topics show <TOPIC_REF> [options]
268
272
  ```
269
273
 
270
274
  **Arguments:**
271
275
 
272
276
  * `<TOPIC_REF>`: A topic reference, which can be:
273
277
  * `<competition>/<topic-id>` (e.g., `titanic/12345`)
274
- * `<competition> <topic-id>` (two separate arguments)
278
+ * `<competition> <topic-id>` (two separate arguments, where `<topic-id>` is passed as second argument)
275
279
  * `<topic-id>` (bare numeric ID)
276
280
 
277
281
  **Options:**
278
282
 
279
- * `-v, --csv`: Print results in CSV format.
280
- * `-q, --quiet`: Suppress verbose output.
281
283
  * `--page-size <PAGE_SIZE>`: Number of comments to show per page.
282
284
  * `--page-token <PAGE_TOKEN>`: Page token for comment pagination.
285
+ * `-v, --csv`: Print results in CSV format.
286
+ * `-q, --quiet`: Suppress verbose output.
283
287
 
284
288
  **Example:**
285
289
 
@@ -291,7 +295,7 @@ kaggle competitions topics show titanic/12345
291
295
 
292
296
  **Purpose:**
293
297
 
294
- This command displays a full discussion topic along with all of its comments rendered in an indented tree structure. This replaces the older `topic-messages` command.
298
+ This command displays a full discussion topic along with all of its comments rendered in an indented tree structure.
295
299
 
296
300
  ## `kaggle competitions topic-messages`
297
301
 
@@ -308,14 +308,14 @@ kaggle datasets delete username/dataset-slug --yes
308
308
 
309
309
  This command permanently removes one of your datasets from Kaggle. Use with caution.
310
310
 
311
- ## `kaggle datasets topics`
311
+ ## `kaggle datasets topics list`
312
312
 
313
313
  Lists discussion topics for a dataset.
314
314
 
315
315
  **Usage:**
316
316
 
317
317
  ```bash
318
- kaggle datasets topics <DATASET> [options]
318
+ kaggle datasets topics list <DATASET> [options]
319
319
  ```
320
320
 
321
321
  **Arguments:**
@@ -325,9 +325,9 @@ kaggle datasets topics <DATASET> [options]
325
325
  **Options:**
326
326
 
327
327
  * `--sort-by <SORT_BY>`: Sort order. Valid options: `hot`, `top`, `new`, `recent`, `active`, `relevance`.
328
+ * `-s, --search <SEARCH_TERM>`: Search query to filter topics.
328
329
  * `--page-size <PAGE_SIZE>`: Number of items per page.
329
330
  * `--page-token <PAGE_TOKEN>`: Page token for pagination.
330
- * `-s, --search <SEARCH_TERM>`: Search query.
331
331
  * `-v, --csv`: Print results in CSV format.
332
332
  * `-q, --quiet`: Suppress verbose output.
333
333
 
@@ -336,7 +336,7 @@ kaggle datasets topics <DATASET> [options]
336
336
  List recent topics for the zillow/zecon dataset:
337
337
 
338
338
  ```bash
339
- kaggle datasets topics zillow/zecon --sort-by recent
339
+ kaggle datasets topics list zillow/zecon --sort-by recent
340
340
  ```
341
341
 
342
342
  **Purpose:**
@@ -350,22 +350,22 @@ Displays a dataset discussion topic with all comments in tree form.
350
350
  **Usage:**
351
351
 
352
352
  ```bash
353
- kaggle datasets topics show <DATASET>/<TOPIC_ID> [options]
353
+ kaggle datasets topics show <TOPIC_REF> [options]
354
354
  ```
355
355
 
356
356
  **Arguments:**
357
357
 
358
358
  * `<TOPIC_REF>`: A topic reference, which can be:
359
- * `<dataset>/<topic-id>` (e.g., `zillow/zecon/12345`)
360
- * `<dataset> <topic-id>` (two separate arguments)
359
+ * `<dataset>/<topic-id>` (e.g., `zillow/zecon/12345` - note that this supports multi-slash dataset slugs)
360
+ * `<dataset> <topic-id>` (two separate arguments, where `<topic-id>` is passed as second argument)
361
361
  * `<topic-id>` (bare numeric ID)
362
362
 
363
363
  **Options:**
364
364
 
365
- * `-v, --csv`: Print results in CSV format.
366
- * `-q, --quiet`: Suppress verbose output.
367
365
  * `--page-size <PAGE_SIZE>`: Number of comments to show per page.
368
366
  * `--page-token <PAGE_TOKEN>`: Page token for comment pagination.
367
+ * `-v, --csv`: Print results in CSV format.
368
+ * `-q, --quiet`: Suppress verbose output.
369
369
 
370
370
  **Example:**
371
371
 
@@ -6,7 +6,7 @@ Commands for browsing and reading Kaggle discussion forums.
6
6
 
7
7
  Lists all discussion forums. Also available as `kaggle forums list`.
8
8
 
9
- **Alias:** `fo`
9
+ **Alias:** `f`
10
10
 
11
11
  **Usage:**
12
12
 
@@ -31,28 +31,30 @@ kaggle forums -v
31
31
 
32
32
  This command helps you discover all available discussion forums on Kaggle.
33
33
 
34
- ## `kaggle forums topics`
34
+ ## `kaggle forums topics list`
35
35
 
36
36
  Lists discussion topics in a forum.
37
37
 
38
38
  **Usage:**
39
39
 
40
40
  ```bash
41
- kaggle forums topics <FORUM> [options]
41
+ kaggle forums topics list [FORUM] [options]
42
42
  ```
43
43
 
44
+ Note: `kaggle forums topics` (without `list` subcommand) is supported as a shortcut to list all topics (without forum filtering).
45
+
44
46
  **Arguments:**
45
47
 
46
- * `<FORUM>`: Forum slug (e.g., `getting-started`, `product-feedback`).
48
+ * `[FORUM]`: Forum slug (e.g., `1`, `product-feedback`). Optional.
47
49
 
48
50
  **Options:**
49
51
 
50
52
  * `--sort-by <SORT_BY>`: Sort order. Valid options: `hot`, `top`, `new`, `recent`, `active`, `relevance`.
51
- * `--page-size <PAGE_SIZE>`: Number of items per page.
52
- * `--page-token <PAGE_TOKEN>`: Page token for pagination.
53
- * `-s, --search <SEARCH_TERM>`: Search query.
53
+ * `-s, --search <SEARCH_TERM>`: Search query to filter topics.
54
54
  * `--category <CATEGORY>`: Filter by category. Valid options: `all`, `forums`, `competitions`, `datasets`, `competition_write_ups`, `models`, `benchmarks`.
55
55
  * `--group <GROUP>`: Filter by group. Valid options: `all`, `owned`, `upvoted`, `bookmarked`, `my_activity`, `drafts`.
56
+ * `--page-size <PAGE_SIZE>`: Number of items per page.
57
+ * `--page-token <PAGE_TOKEN>`: Page token for pagination.
56
58
  * `-v, --csv`: Print results in CSV format.
57
59
  * `-q, --quiet`: Suppress verbose output.
58
60
 
@@ -61,7 +63,7 @@ kaggle forums topics <FORUM> [options]
61
63
  List topics in the "getting-started" forum sorted by most recent, showing 5 per page:
62
64
 
63
65
  ```bash
64
- kaggle forums topics getting-started --sort-by recent --page-size 5
66
+ kaggle forums topics list getting-started --sort-by recent --page-size 5
65
67
  ```
66
68
 
67
69
  **Purpose:**
@@ -82,15 +84,15 @@ kaggle forums topics show <TOPIC_REF> [options]
82
84
 
83
85
  * `<TOPIC_REF>`: A topic reference, which can be:
84
86
  * `<forum-name>/<topic-id>` (e.g., `getting-started/12345`)
85
- * `<forum-name> <topic-id>` (two separate arguments)
87
+ * `<forum-name> <topic-id>` (two separate arguments, where `<topic-id>` is passed as second argument)
86
88
  * `<topic-id>` (bare numeric ID)
87
89
 
88
90
  **Options:**
89
91
 
90
- * `-v, --csv`: Print results in CSV format.
91
- * `-q, --quiet`: Suppress verbose output.
92
92
  * `--page-size <PAGE_SIZE>`: Number of comments to show per page.
93
93
  * `--page-token <PAGE_TOKEN>`: Page token for comment pagination.
94
+ * `-v, --csv`: Print results in CSV format.
95
+ * `-q, --quiet`: Suppress verbose output.
94
96
 
95
97
  **Example:**
96
98