kaggle 2.2.3__tar.gz → 2.2.5__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.
- {kaggle-2.2.3 → kaggle-2.2.5}/CHANGELOG.md +80 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/PKG-INFO +37 -3
- {kaggle-2.2.3 → kaggle-2.2.5}/README.md +33 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/README.md +31 -4
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/benchmarks.md +133 -15
- kaggle-2.2.5/docs/competition_creation.md +737 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/competitions.md +121 -2
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/conf.py +1 -1
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/datasets.md +18 -2
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/index.rst +2 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/kernels.md +42 -12
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/kernels_metadata.md +1 -1
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/model_variations.md +2 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/model_variations_versions.md +2 -0
- kaggle-2.2.5/docs/search.md +76 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/pyproject.toml +6 -2
- {kaggle-2.2.3 → kaggle-2.2.5}/requirements.lock +6 -3
- {kaggle-2.2.3 → kaggle-2.2.5}/skills/SKILL.md +3 -1
- {kaggle-2.2.3 → kaggle-2.2.5}/skills/references/auth.md +7 -4
- {kaggle-2.2.3 → kaggle-2.2.5}/skills/references/competitions.md +38 -4
- {kaggle-2.2.3 → kaggle-2.2.5}/skills/references/datasets.md +3 -2
- {kaggle-2.2.3 → kaggle-2.2.5}/skills/references/kernels.md +13 -3
- kaggle-2.2.5/skills/references/search.md +65 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/src/kaggle/__init__.py +5 -2
- {kaggle-2.2.3 → kaggle-2.2.5}/src/kaggle/api/kaggle_api_extended.py +3208 -439
- {kaggle-2.2.3 → kaggle-2.2.5}/src/kaggle/cli.py +778 -22
- {kaggle-2.2.3 → kaggle-2.2.5}/src/kaggle/models/kaggle_models_extended.py +67 -14
- {kaggle-2.2.3 → kaggle-2.2.5}/src/kaggle/models/upload_file.py +2 -2
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/backend/backend_tests.py +76 -43
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/integration/test_models.py +1 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/test_commands.sh +6 -1
- kaggle-2.2.5/tests/unit/conftest.py +87 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/unit/test_authenticate.py +130 -75
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/unit/test_benchmarks_cli.py +182 -5
- kaggle-2.2.5/tests/unit/test_benchmarks_leaderboard.py +351 -0
- kaggle-2.2.5/tests/unit/test_benchmarks_quota.py +177 -0
- kaggle-2.2.5/tests/unit/test_cli_benchmarks.py +322 -0
- kaggle-2.2.5/tests/unit/test_cli_commands.py +102 -0
- kaggle-2.2.5/tests/unit/test_cli_competitions.py +623 -0
- kaggle-2.2.5/tests/unit/test_cli_datasets.py +367 -0
- kaggle-2.2.5/tests/unit/test_cli_errors.py +141 -0
- kaggle-2.2.5/tests/unit/test_cli_forums.py +71 -0
- kaggle-2.2.5/tests/unit/test_cli_kernels.py +330 -0
- kaggle-2.2.5/tests/unit/test_cli_main.py +167 -0
- kaggle-2.2.5/tests/unit/test_cli_models.py +464 -0
- kaggle-2.2.5/tests/unit/test_cli_pagination.py +116 -0
- kaggle-2.2.5/tests/unit/test_cli_search.py +64 -0
- kaggle-2.2.5/tests/unit/test_competition_add_host.py +139 -0
- kaggle-2.2.5/tests/unit/test_competition_create.py +196 -0
- kaggle-2.2.5/tests/unit/test_competition_create_page.py +166 -0
- kaggle-2.2.5/tests/unit/test_competition_create_solution.py +125 -0
- kaggle-2.2.5/tests/unit/test_competition_data_update.py +310 -0
- kaggle-2.2.5/tests/unit/test_competition_delete_page.py +117 -0
- kaggle-2.2.5/tests/unit/test_competition_launch.py +100 -0
- kaggle-2.2.5/tests/unit/test_competition_list_hosts.py +115 -0
- kaggle-2.2.5/tests/unit/test_competition_settings_get.py +121 -0
- kaggle-2.2.5/tests/unit/test_competition_settings_update.py +228 -0
- kaggle-2.2.5/tests/unit/test_competition_solution_status.py +185 -0
- kaggle-2.2.5/tests/unit/test_competition_submission_download.py +112 -0
- kaggle-2.2.5/tests/unit/test_competition_submission_limits.py +110 -0
- kaggle-2.2.5/tests/unit/test_competition_submit.py +501 -0
- kaggle-2.2.5/tests/unit/test_competition_submit_wait.py +426 -0
- kaggle-2.2.5/tests/unit/test_competition_update_page.py +187 -0
- kaggle-2.2.5/tests/unit/test_competitions_list.py +200 -0
- kaggle-2.2.5/tests/unit/test_dataset_create.py +473 -0
- kaggle-2.2.5/tests/unit/test_dataset_delete.py +111 -0
- kaggle-2.2.5/tests/unit/test_dataset_download.py +213 -0
- kaggle-2.2.5/tests/unit/test_dataset_list.py +205 -0
- kaggle-2.2.5/tests/unit/test_dataset_metadata_update.py +282 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/unit/test_discussions_cli.py +33 -5
- kaggle-2.2.5/tests/unit/test_download_file_paths.py +186 -0
- kaggle-2.2.5/tests/unit/test_download_resume.py +351 -0
- kaggle-2.2.5/tests/unit/test_download_unzip.py +378 -0
- kaggle-2.2.5/tests/unit/test_help_version_auth.py +85 -0
- kaggle-2.2.5/tests/unit/test_http_client.py +36 -0
- kaggle-2.2.5/tests/unit/test_ignore_patterns.py +152 -0
- kaggle-2.2.5/tests/unit/test_kernel_delete.py +73 -0
- kaggle-2.2.5/tests/unit/test_kernel_versions.py +178 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/unit/test_kernels_logs.py +71 -3
- kaggle-2.2.5/tests/unit/test_kernels_output_download.py +120 -0
- kaggle-2.2.5/tests/unit/test_kernels_output_paths.py +83 -0
- kaggle-2.2.5/tests/unit/test_kernels_pull.py +358 -0
- kaggle-2.2.5/tests/unit/test_kernels_push.py +358 -0
- kaggle-2.2.5/tests/unit/test_kernels_push_no_run.py +153 -0
- kaggle-2.2.5/tests/unit/test_kernels_push_retired_accelerator.py +154 -0
- kaggle-2.2.5/tests/unit/test_model_create.py +839 -0
- kaggle-2.2.5/tests/unit/test_model_delete.py +127 -0
- kaggle-2.2.5/tests/unit/test_model_download.py +216 -0
- kaggle-2.2.5/tests/unit/test_model_list.py +190 -0
- kaggle-2.2.5/tests/unit/test_parse_duration.py +62 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/unit/test_quota.py +33 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/unit/test_retry_after.py +109 -9
- kaggle-2.2.5/tests/unit/test_search.py +362 -0
- kaggle-2.2.5/tests/unit/test_tar_extraction_safety.py +110 -0
- kaggle-2.2.5/tests/unit/test_upload_helpers.py +963 -0
- kaggle-2.2.5/tools/cicd/Dockerfile +13 -0
- kaggle-2.2.5/tools/cicd/cloudbuild.yaml +89 -0
- kaggle-2.2.5/tools/releases/requirements.in +1 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tools/releases/requirements.txt +67 -120
- kaggle-2.2.3/src/kaggle/api/kaggle_api.py +0 -603
- kaggle-2.2.3/tests/unit/conftest.py +0 -18
- kaggle-2.2.3/tests/unit/test_dataset_metadata_update.py +0 -133
- kaggle-2.2.3/tests/unit/test_kernels_pull.py +0 -141
- kaggle-2.2.3/tools/cicd/Dockerfile +0 -12
- kaggle-2.2.3/tools/cicd/cloudbuild.yaml +0 -48
- kaggle-2.2.3/tools/releases/requirements.in +0 -2
- {kaggle-2.2.3 → kaggle-2.2.5}/.gcloudignore +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/.gitignore +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/CONTRIBUTING.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/Dockerfile +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/GEMINI.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/LICENSE.txt +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/SECURITY.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/docker-hatch +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/Makefile +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/configuration.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/datasets_metadata.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/forums.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/make.bat +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/models.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/models_metadata.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/output_format.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/simulation_competitions.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/docs/tutorials.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/requirements-lint.in +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/requirements-lint.lock +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/requirements-test.in +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/requirements-test.lock +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/skills/references/benchmarks.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/skills/references/configuration.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/skills/references/files.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/skills/references/forums.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/skills/references/model_variations.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/skills/references/model_variations_versions.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/skills/references/models.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/skills/references/quota.md +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/src/kaggle/LICENSE +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/src/kaggle/__main__.py +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/src/kaggle/api/__init__.py +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/src/kaggle/models/__init__.py +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/backend/dataset/data.csv +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/backend/kernel/testing-x.ipynb +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/backend/model/instance/data.csv +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/backend/model/instance/version/metadata.json +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/backend/sample_submission.csv +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/run_tests.sh +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/unit/test_dataset_status.py +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/unit/test_kernel_parsing.py +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tests/unit/test_team_submissions.py +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tools/cicd/integration-tests.yaml +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tools/releases/Dockerfile +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tools/releases/cloudbuild.yaml +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tools/use-localhost.sh +0 -0
- {kaggle-2.2.3 → kaggle-2.2.5}/tools/use-prod.sh +0 -0
|
@@ -3,6 +3,86 @@ Changelog
|
|
|
3
3
|
|
|
4
4
|
### Next
|
|
5
5
|
|
|
6
|
+
### 2.2.5
|
|
7
|
+
|
|
8
|
+
* Require `certifi >= 2026.10.19`, which drops the compromised emSign/eMudhra root CAs ([GHSA-6q48-6c7w-9gw2](https://github.com/certifi/python-certifi/security/advisories/GHSA-6q48-6c7w-9gw2)). `kaggle` only pulled in certifi through `requests`, which sets no minimum, so an existing install could keep a certifi that would accept a forged kaggle.com certificate and leak the user's API token to a man-in-the-middle
|
|
9
|
+
* Reject kernel version numbers in `kaggle kernels delete` instead of failing with a `ValueError` when a version is included in `<owner>/<kernel>/<version>`
|
|
10
|
+
* Report a 404 from `kaggle competitions submit` with a competition-specific hint on stderr, naming the notebook and version for code submissions. The check never matched a 404, so users got the generic `<owner>/<slug>` hint instead
|
|
11
|
+
* Exit non-zero from `kaggle competitions submit` when the submission file upload fails. It printed "Could not submit to competition" and exited 0, so scripts treated the failed submission as a success
|
|
12
|
+
* Include the UTC offset (`+00:00`) in `refreshAt` timestamps displayed by `kaggle quota`
|
|
13
|
+
* Recommend installing with `pipx` or `uv` and add troubleshooting guidance for `externally-managed-environment` errors in the installation docs
|
|
14
|
+
* Stream `kaggle kernels output` files to disk through the same download path as datasets and competitions, with a read timeout, a size check, and resume after a dropped connection. Each file used to be read into memory whole, so a 512 MiB output took about 1.2 GB of RAM, and a dropped connection failed the command and left an empty file behind
|
|
15
|
+
* Honor the version in `<owner>/<kernel>/<version>` for `kaggle kernels pull`, `output`, `status`, `files` and `logs`, which previously returned 403 for `pull` and acted on the latest version for the others
|
|
16
|
+
* Clarify in `--accelerator` help and kernels docs that `NvidiaTeslaT4` maps to GPU T4 x2 and `TpuV5E8` maps to TPU v5e-8
|
|
17
|
+
* Reject dataset version numbers in `kaggle datasets delete` to prevent unintentionally deleting an entire dataset when targeting a single version
|
|
18
|
+
* Show why a submission failed in `kaggle competitions submission <ref>`, which already comes back in the API response but was not displayed
|
|
19
|
+
* Honor `-k/--kernel` in `kaggle kernels pull`, which was ignored when the positional kernel argument was omitted, causing the CLI to fall back to the local `kernel-metadata.json` and pull a different kernel
|
|
20
|
+
* Refuse to write a `kaggle kernels output` file whose server-supplied name resolves outside the requested `--path` directory
|
|
21
|
+
* Add `--no-run` to `kaggle kernels push` to save a new version without executing the notebook, the equivalent of Quick Save in the web UI
|
|
22
|
+
* Honor `--unzip` when downloading a single file with `kaggle datasets download -f`, which extracts the file from the zip archive the server wraps large files in, and add `--unzip` to `kaggle competitions download`
|
|
23
|
+
* Fix misleading validation error messages in `kaggle competitions submit` when `--kernel`, `--version`, or `--file` is missing for a code competition submission
|
|
24
|
+
* Keep the requested folder when downloading a single file with `kaggle datasets download -f` or `kaggle competitions download -f`, instead of writing it to the download root
|
|
25
|
+
* Report `slug` instead of `title` in the `kaggle datasets create` error message when the requested slug is already in use
|
|
26
|
+
* Prevent HTTP errors during resumed `Range` downloads from overwriting existing partial download files
|
|
27
|
+
* Check the HTTP status when downloading `kaggle kernels output` files so error responses are not saved as output files
|
|
28
|
+
* Add `kaggle competitions host-add <comp> -u <user>` to grant host access on a competition to a Kaggle user
|
|
29
|
+
* Suggest a next step on 403/404/429/5xx API errors, report unexpected errors as bugs instead of a traceback (with a new `--debug` flag), and list common examples in `kaggle --help`
|
|
30
|
+
* Guard tar extraction in `kaggle models instances versions download --untar` against path traversal
|
|
31
|
+
* Store resumable upload state in a private per-user directory (`0700`) and verify directory ownership and permissions before use
|
|
32
|
+
* Add `kaggle benchmarks quota` to show Model Proxy (AI inference) spend quota, and bump `kagglesdk` to `>= 0.1.38`
|
|
33
|
+
* Honor `--untar` in `kaggle models instances versions download` when the archive is already cached locally
|
|
34
|
+
* Write kernel log files using UTF-8 in `kaggle kernels output` to avoid `UnicodeEncodeError` on Windows
|
|
35
|
+
* Exclude omitted `overview` and `usage` fields from the update mask when updating a model instance
|
|
36
|
+
* Add `kaggle competitions submission-download <id>` to download the submitted file for a single submission (requires `kagglesdk >= 0.1.36`)
|
|
37
|
+
* Add `deadline` (Competition Deadline) to the competition settings command and bump `kagglesdk` to `>= 0.1.36`
|
|
38
|
+
* Warn when `kaggle kernels push` requests a retired accelerator (`NvidiaTeslaP100`, `TpuV38`, `Tpu1VmV38`, `TpuV232` or `TpuV2256`), since the server runs the session on a replacement instead. Drop the retired shapes from the docs
|
|
39
|
+
* Abort dataset, model version, and competition data uploads when a file upload fails instead of skipping the failed file and creating a partial upload
|
|
40
|
+
* Use GitHub alerts and fix the `LLMS_AVAILABLE` token reference in the benchmarks documentation
|
|
41
|
+
* Add unified `kaggle search` command across competitions, datasets, notebooks, models, users, and discussions
|
|
42
|
+
* Parse duration suffixes (`s`, `m`, `h`, `d`, `w`) in `kaggle auth print-access-token --expiration` instead of raising a `TypeError`
|
|
43
|
+
* Add `--wait`/`--poll-interval` to `kaggle competitions submit` to wait for scoring, and add `kaggle competitions submission <ref>` to look up a single submission's status and score
|
|
44
|
+
* Show `N/A` instead of `Fail` in `kaggle benchmarks leaderboard` for a task result the server returned without a pass/fail or numeric score, which was reported as a failed task
|
|
45
|
+
|
|
46
|
+
### 2.2.4
|
|
47
|
+
|
|
48
|
+
* fix(benchmarks): support owner/task separator in benchmark commands (#1146)
|
|
49
|
+
* Feat/competition submissions limits (#1144)
|
|
50
|
+
* add competitions solution create/status commands (#1141)
|
|
51
|
+
* fix(cli): prevent stale file corruption when resuming downloads (#1142)
|
|
52
|
+
* fix(cli): fix collaborator role handling in dataset metadata update (#1138)
|
|
53
|
+
* Refactor paging to use Protocols (#1137)
|
|
54
|
+
* fix(cli): retry transient connection errors in with_retry (#1132)
|
|
55
|
+
* Add Kaggle Secrets documentation (#1131)
|
|
56
|
+
* Fix model and owner slug validation (#1134)
|
|
57
|
+
* Implement ignore_patterns in uploading (combined) (#1130)
|
|
58
|
+
* Refactor parser fixtures (#1118)
|
|
59
|
+
* fix(auth): avoid skipping auth for programmatic imports (#1117)
|
|
60
|
+
* fix(cli): resumable upload start offset when zero bytes uploaded (#1113)
|
|
61
|
+
* refactor(cli): reuse _resolve_projection in dataset_status (#1116)
|
|
62
|
+
* update supported model list (#1115)
|
|
63
|
+
* fix(cli): handle deleted comments in topics show (#1114)
|
|
64
|
+
* Add leaderboard subcommand to kaggle benchmarks (#1112)
|
|
65
|
+
* feat(cli): add competitions settings update command (#1104)
|
|
66
|
+
* feat(cli): add competitions hosts list command (#1107)
|
|
67
|
+
* feat(cli): add competitions settings get command (#1103)
|
|
68
|
+
* feat(cli): support --page-token and --page-size, preserve --page (#1098)
|
|
69
|
+
* feat(cli): expose userRank in competitions list output (#1094)
|
|
70
|
+
* fix(cli): read kernel metadata and source files using UTF-8 in kernels_push (#1093)
|
|
71
|
+
* Fix crash when running kaggle command with invalid credentials (#1092)
|
|
72
|
+
* feat(cli): add competitions data push command (#1085)
|
|
73
|
+
* fix(cli): restore fallback for unknown kernel language/type in kernels_pull (#1091)
|
|
74
|
+
* fix(auth): prioritize OAuth credentials over anonymous fallback (#1089)
|
|
75
|
+
* feat(cli): add competitions pages update command (#1083)
|
|
76
|
+
* fix(cli): stop treating subcommand -v as version flag (#1082)
|
|
77
|
+
* fix(cli): honor --unzip for cached dataset downloads (#1086)
|
|
78
|
+
* feat(cli): add competitions pages delete command (#1084)
|
|
79
|
+
* feat(cli): add competitions init and create commands (#1080)
|
|
80
|
+
* docs(competitions): add competition_creation.md for new host commands (#1081)
|
|
81
|
+
* feat(cli): add competitions launch command (#1079)
|
|
82
|
+
* feat(cli): add competitions pages create command (#1078)
|
|
83
|
+
* fix(cli): avoid success message after canceled model deletion (#1077)
|
|
84
|
+
* fix(cli): avoid success message after canceled dataset deletion (#1073)
|
|
85
|
+
|
|
6
86
|
### 2.2.3
|
|
7
87
|
|
|
8
88
|
* Update --format help text to reference output_format.md (#1074)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: kaggle
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.5
|
|
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
|
|
@@ -213,8 +213,9 @@ Classifier: Operating System :: OS Independent
|
|
|
213
213
|
Classifier: Programming Language :: Python :: 3
|
|
214
214
|
Requires-Python: >=3.11
|
|
215
215
|
Requires-Dist: bleach
|
|
216
|
+
Requires-Dist: certifi>=2026.10.19
|
|
216
217
|
Requires-Dist: jupytext
|
|
217
|
-
Requires-Dist: kagglesdk<1.0,>=0.1.
|
|
218
|
+
Requires-Dist: kagglesdk<1.0,>=0.1.38
|
|
218
219
|
Requires-Dist: packaging
|
|
219
220
|
Requires-Dist: protobuf
|
|
220
221
|
Requires-Dist: python-dateutil
|
|
@@ -265,6 +266,14 @@ kaggle --help
|
|
|
265
266
|
|
|
266
267
|
See the [User documentation](docs/README.md) for more examples & tutorials.
|
|
267
268
|
|
|
269
|
+
## Hosting a competition
|
|
270
|
+
|
|
271
|
+
End-to-end host commands — scaffold a new competition, author its pages,
|
|
272
|
+
tune its settings, and launch it — are documented in
|
|
273
|
+
[docs/competition_creation.md](docs/competition_creation.md). Covers
|
|
274
|
+
`kaggle competitions init`, `create`, `pages create`, `hosts`,
|
|
275
|
+
`settings get`, `settings update`, and `launch`.
|
|
276
|
+
|
|
268
277
|
## Development
|
|
269
278
|
|
|
270
279
|
### `kagglesdk` Updates
|
|
@@ -333,6 +342,31 @@ After setting up your credentials, you can run the integration tests as follows:
|
|
|
333
342
|
hatch run test:integration
|
|
334
343
|
```
|
|
335
344
|
|
|
345
|
+
### Code Coverage
|
|
346
|
+
|
|
347
|
+
We measure code coverage using `pytest-cov`.
|
|
348
|
+
|
|
349
|
+
To run unit tests with coverage and generate reports:
|
|
350
|
+
|
|
351
|
+
```sh
|
|
352
|
+
hatch run test:cov
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
This generates:
|
|
356
|
+
* Terminal output with a coverage summary.
|
|
357
|
+
* `coverage.xml` (XML report in the root, used by IDE integrations).
|
|
358
|
+
* `htmlcov/index.html` (HTML report for browser viewing).
|
|
359
|
+
|
|
360
|
+
#### Editor Integration
|
|
361
|
+
|
|
362
|
+
##### VSCode
|
|
363
|
+
Install the **Coverage Gutters** extension. After running the coverage command, click the **Watch** button in the status bar to see coverage indicators in the editor margins.
|
|
364
|
+
|
|
365
|
+
##### JetBrains Rider
|
|
366
|
+
With the **Python** plugin installed:
|
|
367
|
+
* **Run with Coverage:** Create a Pytest run configuration and click the shield icon ("Run with Coverage").
|
|
368
|
+
* **Import Report:** Go to **Tools** -> **Show Code Coverage Data**, click **Add** (+), and select `coverage.xml`.
|
|
369
|
+
|
|
336
370
|
### Running `hatch` commands inside Docker
|
|
337
371
|
|
|
338
372
|
This is useful to run in a consistent environment and easily switch between Python versions.
|
|
@@ -38,6 +38,14 @@ kaggle --help
|
|
|
38
38
|
|
|
39
39
|
See the [User documentation](docs/README.md) for more examples & tutorials.
|
|
40
40
|
|
|
41
|
+
## Hosting a competition
|
|
42
|
+
|
|
43
|
+
End-to-end host commands — scaffold a new competition, author its pages,
|
|
44
|
+
tune its settings, and launch it — are documented in
|
|
45
|
+
[docs/competition_creation.md](docs/competition_creation.md). Covers
|
|
46
|
+
`kaggle competitions init`, `create`, `pages create`, `hosts`,
|
|
47
|
+
`settings get`, `settings update`, and `launch`.
|
|
48
|
+
|
|
41
49
|
## Development
|
|
42
50
|
|
|
43
51
|
### `kagglesdk` Updates
|
|
@@ -106,6 +114,31 @@ After setting up your credentials, you can run the integration tests as follows:
|
|
|
106
114
|
hatch run test:integration
|
|
107
115
|
```
|
|
108
116
|
|
|
117
|
+
### Code Coverage
|
|
118
|
+
|
|
119
|
+
We measure code coverage using `pytest-cov`.
|
|
120
|
+
|
|
121
|
+
To run unit tests with coverage and generate reports:
|
|
122
|
+
|
|
123
|
+
```sh
|
|
124
|
+
hatch run test:cov
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
This generates:
|
|
128
|
+
* Terminal output with a coverage summary.
|
|
129
|
+
* `coverage.xml` (XML report in the root, used by IDE integrations).
|
|
130
|
+
* `htmlcov/index.html` (HTML report for browser viewing).
|
|
131
|
+
|
|
132
|
+
#### Editor Integration
|
|
133
|
+
|
|
134
|
+
##### VSCode
|
|
135
|
+
Install the **Coverage Gutters** extension. After running the coverage command, click the **Watch** button in the status bar to see coverage indicators in the editor margins.
|
|
136
|
+
|
|
137
|
+
##### JetBrains Rider
|
|
138
|
+
With the **Python** plugin installed:
|
|
139
|
+
* **Run with Coverage:** Create a Pytest run configuration and click the shield icon ("Run with Coverage").
|
|
140
|
+
* **Import Report:** Go to **Tools** -> **Show Code Coverage Data**, click **Add** (+), and select `coverage.xml`.
|
|
141
|
+
|
|
109
142
|
### Running `hatch` commands inside Docker
|
|
110
143
|
|
|
111
144
|
This is useful to run in a consistent environment and easily switch between Python versions.
|
|
@@ -4,15 +4,42 @@ Welcome to the Kaggle CLI documentation. This guide provides detailed informatio
|
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
|
-
Note: Ensure you have Python 3.11
|
|
7
|
+
Note: Ensure you have Python 3.11+.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Recommended: install with [pipx](https://pipx.pypa.io/) or [uv](https://docs.astral.sh/uv/),
|
|
10
|
+
which installs the CLI in an isolated environment and works on all platforms:
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
pipx install kaggle
|
|
14
|
+
# or
|
|
15
|
+
uv tool install kaggle
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### Alternative: pip
|
|
19
|
+
|
|
20
|
+
You can also install the package with [pip](https://pypi.org/project/pip/):
|
|
10
21
|
|
|
11
22
|
```sh
|
|
12
23
|
pip install kaggle
|
|
13
24
|
```
|
|
14
25
|
|
|
15
|
-
|
|
26
|
+
### Troubleshooting
|
|
27
|
+
|
|
28
|
+
If you see `error: externally-managed-environment`, your operating system protects its
|
|
29
|
+
system Python (this is the default on recent Debian and Ubuntu releases, among others).
|
|
30
|
+
Use pipx or uv as described above. If that is not an option, you can override the
|
|
31
|
+
protection with `--break-system-packages`:
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
pip install --break-system-packages kaggle
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Note: this installs the package into the system Python and may conflict with packages
|
|
38
|
+
managed by your OS.
|
|
39
|
+
|
|
40
|
+
If you run into a `Command kaggle not found` error, ensure that your Python executable
|
|
41
|
+
scripts are in your $PATH. For a local user install on Linux, the default location is
|
|
42
|
+
`~/.local/bin`. On Windows, the default location is `$PYTHON_HOME/Scripts`.
|
|
16
43
|
|
|
17
44
|
## Authentication
|
|
18
45
|
|
|
@@ -55,7 +82,7 @@ The Kaggle CLI is organized into several command groups:
|
|
|
55
82
|
* [Competitions](./competitions.md): Manage and participate in Kaggle competitions.
|
|
56
83
|
* [Datasets](./datasets.md): Search, download, and manage Kaggle datasets.
|
|
57
84
|
* [Forums](./forums.md): Browse and read Kaggle discussion forums.
|
|
58
|
-
* [Kernels](./kernels.md): Interact with Kaggle Kernels (notebooks and scripts).
|
|
85
|
+
* [Kernels](./kernels.md): Interact with Kaggle Kernels (notebooks and scripts). Includes information on using [Kaggle Secrets](./kernels.md#using-secrets-in-kernels).
|
|
59
86
|
* [Models](./models.md): Manage your Kaggle Models.
|
|
60
87
|
* [Model Variations](./model_variations.md): Manage variations of your Kaggle Models.
|
|
61
88
|
* [Model Variation Versions](./model_variations_versions.md): Manage versions of your Kaggle Model Variations.
|
|
@@ -2,11 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
Commands for interacting with Kaggle Benchmarks. Benchmarks let you define evaluation tasks as Python scripts, run them against one or more LLM models via the Kaggle Model Proxy, and download the results.
|
|
4
4
|
|
|
5
|
-
The top-level command is `kaggle benchmarks` (alias: `kaggle b`), which has
|
|
5
|
+
The top-level command is `kaggle benchmarks` (alias: `kaggle b`), which has the following subcommands and groups:
|
|
6
6
|
|
|
7
7
|
* **`auth`** — Fetch Model Proxy credentials.
|
|
8
8
|
* **`init`** — Fetch credentials and default environment variables for local development.
|
|
9
|
+
* **`quota`** — Show your Model Proxy (AI inference) spend quota.
|
|
10
|
+
* **`leaderboard`** — Get benchmark leaderboard information.
|
|
9
11
|
* **`tasks`** (alias: `t`) — Manage benchmark tasks (push, run, list, status, download, log, models, delete, publish).
|
|
12
|
+
* **`topics`** — Browse discussion topics for a benchmark.
|
|
10
13
|
|
|
11
14
|
## `kaggle benchmarks auth`
|
|
12
15
|
|
|
@@ -77,7 +80,8 @@ In addition to the three credential variables written by `auth`, `init` also wri
|
|
|
77
80
|
* `LLM_DEFAULT_EVAL` — Default model slug for evaluation.
|
|
78
81
|
* `LLMS_AVAILABLE` — Comma-separated list of available model slugs.
|
|
79
82
|
|
|
80
|
-
>
|
|
83
|
+
> [!WARNING]
|
|
84
|
+
> `LLMS_AVAILABLE` is a curated subset of models intended for local development and testing — it is **not** the full set of available models, and the Model Proxy token minted for local development **is** restricted to these models. To see all available models, use `kaggle benchmarks tasks models`. To run a task against any model (including those not in `LLMS_AVAILABLE`), use `kaggle benchmarks tasks run`, which executes on Kaggle's infrastructure with access to the full model catalog.
|
|
81
85
|
|
|
82
86
|
`init` also creates two files alongside the example file:
|
|
83
87
|
|
|
@@ -88,10 +92,105 @@ If either file already exists, it is skipped without overwriting.
|
|
|
88
92
|
|
|
89
93
|
---
|
|
90
94
|
|
|
95
|
+
## `kaggle benchmarks quota`
|
|
96
|
+
|
|
97
|
+
Shows your current Model Proxy (AI inference) spend quota, one row per refill period.
|
|
98
|
+
|
|
99
|
+
**Usage:**
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
kaggle benchmarks quota [options]
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Options:**
|
|
106
|
+
|
|
107
|
+
* `-v, --csv`: Print results in CSV format.
|
|
108
|
+
* `--format <FORMAT>`: Print results in the selected format (`csv`, `table`, `json`).
|
|
109
|
+
|
|
110
|
+
**Example:**
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
$ kaggle b quota
|
|
114
|
+
period used remaining total refillAt
|
|
115
|
+
------- ------ --------- ------- -------------------------
|
|
116
|
+
Daily $1.20 $3.80 $5.00 2026-08-08T00:00:00+00:00
|
|
117
|
+
Monthly $14.50 $85.50 $100.00 2026-09-01T00:00:00+00:00
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**Purpose:**
|
|
121
|
+
|
|
122
|
+
Amounts are in USD and reflect inference spend through the Model Proxy — this is separate from the top-level `kaggle quota` command, which reports weekly GPU and TPU accelerator *hours*. `remaining` is derived as `total - used` and is clamped at `$0.00`, so an overage shows as zero remaining rather than a negative balance.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## `kaggle benchmarks leaderboard`
|
|
127
|
+
|
|
128
|
+
Get benchmark leaderboard information.
|
|
129
|
+
|
|
130
|
+
**Usage:**
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
kaggle benchmarks leaderboard <BENCHMARK> [options]
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Arguments:**
|
|
137
|
+
|
|
138
|
+
* `<BENCHMARK>`: Benchmark slug (e.g., `owner/benchmark-slug`).
|
|
139
|
+
|
|
140
|
+
**Options:**
|
|
141
|
+
|
|
142
|
+
* `--version <VERSION>`: Benchmark version (optional).
|
|
143
|
+
* `-s, --show`: Show the leaderboard in the terminal.
|
|
144
|
+
* `-d, --download`: Download the leaderboard as a CSV file.
|
|
145
|
+
* `-p, --path <DIRECTORY>`: Folder where the leaderboard will be downloaded (defaults to current working directory).
|
|
146
|
+
* `-v, --csv`: Print results in CSV format (when used with `--show`).
|
|
147
|
+
* `--format <FORMAT>`: Print results in a specific format (e.g., `json`).
|
|
148
|
+
|
|
149
|
+
**Examples:**
|
|
150
|
+
|
|
151
|
+
1. Show the leaderboard for a benchmark:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
kaggle b leaderboard owner/my-benchmark --show
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
2. Download the leaderboard as CSV:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
kaggle b leaderboard owner/my-benchmark --download
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
3. Show a specific version of the leaderboard in JSON format:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
kaggle b leaderboard owner/my-benchmark --version 2 --show --format json
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**Purpose:**
|
|
170
|
+
|
|
171
|
+
Displays or downloads the evaluation results for all models that have run tasks in the specified benchmark. The leaderboard is represented as a table where rows are model versions and columns are benchmark tasks, showing the score achieved by each model on each task.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
91
175
|
## Tasks Commands
|
|
92
176
|
|
|
93
177
|
All tasks commands live under `kaggle benchmarks tasks` (alias: `kaggle b t`).
|
|
94
178
|
|
|
179
|
+
### Task Name Format
|
|
180
|
+
|
|
181
|
+
Task arguments (`<TASK>`) support two formats:
|
|
182
|
+
|
|
183
|
+
* **Bare slug** (`my-task`): Refers to a task owned by the current user.
|
|
184
|
+
* **Owner prefix** (`owner/my-task`): Refers to a specific owner's task (e.g., another user's public task, or `your-username/my-task`).
|
|
185
|
+
|
|
186
|
+
| Command Group | Supported Formats | Description |
|
|
187
|
+
|---|---|---|
|
|
188
|
+
| **View & Run** (`run`, `status`, `download`, `log`) | `my-task`, `owner/my-task` | Interact with your own tasks or public tasks from other users |
|
|
189
|
+
| **Publish** (`publish`) | `my-task`, `your-username/my-task` | Make your own task public (must be task owner) |
|
|
190
|
+
| **Create** (`push`) | `my-task` only | Must match the `@task(name="...")` decorator in your Python source file |
|
|
191
|
+
|
|
192
|
+
> **Slug Normalization:** Task names are automatically converted to URL-safe slugs (`My Task` → `my-task`). For `owner/task` arguments, each segment is slugified independently (`Owner/My Task` → `owner/my-task`) so the `/` separator is preserved.
|
|
193
|
+
|
|
95
194
|
### `kaggle benchmarks tasks push`
|
|
96
195
|
|
|
97
196
|
Creates or updates a benchmark task from a local Python source file. The file must contain at least one function decorated with `@task`.
|
|
@@ -151,7 +250,8 @@ kaggle benchmarks tasks push <TASK> -f <FILE> [options]
|
|
|
151
250
|
|
|
152
251
|
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.
|
|
153
252
|
|
|
154
|
-
|
|
253
|
+
> [!NOTE]
|
|
254
|
+
> **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>`.
|
|
155
255
|
|
|
156
256
|
---
|
|
157
257
|
|
|
@@ -167,7 +267,7 @@ kaggle benchmarks tasks run <TASK> [options]
|
|
|
167
267
|
|
|
168
268
|
**Arguments:**
|
|
169
269
|
|
|
170
|
-
* `<TASK>`: Task name (slug, e.g. `my-task`).
|
|
270
|
+
* `<TASK>`: Task name (slug, e.g. `my-task` or `owner/my-task`).
|
|
171
271
|
|
|
172
272
|
**Options:**
|
|
173
273
|
|
|
@@ -249,7 +349,7 @@ kaggle benchmarks tasks status <TASK> [options]
|
|
|
249
349
|
|
|
250
350
|
**Arguments:**
|
|
251
351
|
|
|
252
|
-
* `<TASK>`: Task name (slug, e.g. `my-task`).
|
|
352
|
+
* `<TASK>`: Task name (slug, e.g. `my-task` or `owner/my-task`).
|
|
253
353
|
|
|
254
354
|
**Options:**
|
|
255
355
|
|
|
@@ -263,7 +363,13 @@ kaggle benchmarks tasks status <TASK> [options]
|
|
|
263
363
|
kaggle b t status my-task
|
|
264
364
|
```
|
|
265
365
|
|
|
266
|
-
2. Show status for
|
|
366
|
+
2. Show status for another user's task:
|
|
367
|
+
|
|
368
|
+
```bash
|
|
369
|
+
kaggle b t status someuser/their-task
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
3. Show status for specific models only:
|
|
267
373
|
|
|
268
374
|
```bash
|
|
269
375
|
kaggle b t status my-task -m gemini-2.5-pro
|
|
@@ -289,7 +395,7 @@ kaggle benchmarks tasks download <TASK> [options]
|
|
|
289
395
|
|
|
290
396
|
**Arguments:**
|
|
291
397
|
|
|
292
|
-
* `<TASK>`: Task name (slug, e.g. `my-task`).
|
|
398
|
+
* `<TASK>`: Task name (slug, e.g. `my-task` or `owner/my-task`).
|
|
293
399
|
|
|
294
400
|
**Options:**
|
|
295
401
|
|
|
@@ -306,19 +412,25 @@ kaggle benchmarks tasks download <TASK> [options]
|
|
|
306
412
|
kaggle b t download my-task
|
|
307
413
|
```
|
|
308
414
|
|
|
309
|
-
2. Download outputs
|
|
415
|
+
2. Download outputs from another user's public task:
|
|
416
|
+
|
|
417
|
+
```bash
|
|
418
|
+
kaggle b t download someuser/their-task
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
3. Download outputs for a specific model into a custom directory:
|
|
310
422
|
|
|
311
423
|
```bash
|
|
312
424
|
kaggle b t download my-task -m gemini-2.5-pro -o ./results
|
|
313
425
|
```
|
|
314
426
|
|
|
315
|
-
|
|
427
|
+
4. Download outputs with source notebooks included:
|
|
316
428
|
|
|
317
429
|
```bash
|
|
318
430
|
kaggle b t download my-task --include-source
|
|
319
431
|
```
|
|
320
432
|
|
|
321
|
-
|
|
433
|
+
5. Force re-download of previously downloaded runs:
|
|
322
434
|
|
|
323
435
|
```bash
|
|
324
436
|
kaggle b t download my-task --force
|
|
@@ -370,7 +482,7 @@ kaggle benchmarks tasks log <TASK> [options]
|
|
|
370
482
|
|
|
371
483
|
**Arguments:**
|
|
372
484
|
|
|
373
|
-
* `<TASK>`: Task name (slug, e.g. `my-task`).
|
|
485
|
+
* `<TASK>`: Task name (slug, e.g. `my-task` or `owner/my-task`).
|
|
374
486
|
|
|
375
487
|
**Options:**
|
|
376
488
|
|
|
@@ -386,13 +498,19 @@ kaggle benchmarks tasks log <TASK> [options]
|
|
|
386
498
|
kaggle b t log my-task
|
|
387
499
|
```
|
|
388
500
|
|
|
389
|
-
2. Show logs for
|
|
501
|
+
2. Show logs for another user's task:
|
|
502
|
+
|
|
503
|
+
```bash
|
|
504
|
+
kaggle b t log someuser/their-task
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
3. Show logs for a specific model's run(s):
|
|
390
508
|
|
|
391
509
|
```bash
|
|
392
510
|
kaggle b t log my-task -m gemini-2.5-pro
|
|
393
511
|
```
|
|
394
512
|
|
|
395
|
-
|
|
513
|
+
4. Show logs for multiple models:
|
|
396
514
|
|
|
397
515
|
```bash
|
|
398
516
|
kaggle b t logs my-task -m gemini-2.5-pro -m claude-sonnet-4
|
|
@@ -480,7 +598,7 @@ kaggle benchmarks tasks delete <TASK> [options]
|
|
|
480
598
|
|
|
481
599
|
**Arguments:**
|
|
482
600
|
|
|
483
|
-
* `<TASK>`: Task name (slug, e.g. `my-task`).
|
|
601
|
+
* `<TASK>`: Task name (slug, e.g. `my-task` or `owner/my-task`).
|
|
484
602
|
|
|
485
603
|
**Options:**
|
|
486
604
|
|
|
@@ -510,7 +628,7 @@ kaggle benchmarks tasks publish <TASK> [options]
|
|
|
510
628
|
|
|
511
629
|
**Arguments:**
|
|
512
630
|
|
|
513
|
-
* `<TASK>`: Task name (slug, e.g. `my-task`).
|
|
631
|
+
* `<TASK>`: Task name (slug, e.g. `my-task` or `owner/my-task`).
|
|
514
632
|
|
|
515
633
|
**Options:**
|
|
516
634
|
|