Implement ignore_patterns core logic#1125
Closed
stevemessick wants to merge 2 commits into
Closed
Google Cloud Build / kaggle-cli-branch-3-12-13 (kaggle-cicd)
succeeded
Jul 16, 2026 in 2m 11s
Summary
Build Information
| Trigger | kaggle-cli-branch-3-12-13 |
| Build | 580ca14b-1303-4990-9e71-3856942b45ca |
| Start | 2026-07-16T13:36:43-07:00 |
| Duration | 2m7.996s |
| Status | SUCCESS |
Steps
| Step | Status | Duration |
|---|---|---|
| check_substitutions | SUCCESS | 33.757s |
| build-hatch-image | SUCCESS | 3.668s |
| tests | SUCCESS | 1m23.624s |
| lint | SUCCESS | 1m19.669s |
| download-secrets | SUCCESS | 8.466s |
| integration-tests | SUCCESS | 59.477s |
Details
starting build "580ca14b-1303-4990-9e71-3856942b45ca"
FETCHSOURCE
From https://github.com/Kaggle/kaggle-cli
* branch 3a98ee56ae1e92678d80d2283cf7d6e10156e746 -> FETCH_HEAD
HEAD is now at 3a98ee5 Reformat Python files using black
GitCommit:
3a98ee56ae1e92678d80d2283cf7d6e10156e746
BUILD
Starting Step #0 - "check_substitutions"
Starting Step #4 - "download-secrets"
Step #4 - "download-secrets": Already have image (with digest): gcr.io/cloud-builders/gcloud
Step #0 - "check_substitutions": Already have image (with digest): gcr.io/cloud-builders/docker
Step #0 - "check_substitutions": 3.12.13: Pulling from kaggle-cicd/tools/cli-builder
Step #0 - "check_substitutions": b890c9407285: Pulling fs layer
Step #0 - "check_substitutions": b453535073b6: Pulling fs layer
Step #0 - "check_substitutions": 9e002cae30c4: Pulling fs layer
Step #0 - "check_substitutions": 65956eab0c1c: Pulling fs layer
Step #0 - "check_substitutions": 15215efaca49: Pulling fs layer
Step #0 - "check_substitutions": 2b87fe8d0f10: Pulling fs layer
Step #0 - "check_substitutions": 90d1f3b8a822: Pulling fs layer
Step #0 - "check_substitutions": 9c2f8c15b46b: Pulling fs layer
Step #0 - "check_substitutions": 658084988337: Pulling fs layer
Step #0 - "check_substitutions": 90d1f3b8a822: Waiting
Step #0 - "check_substitutions": 9c2f8c15b46b: Waiting
Step #0 - "check_substitutions": 658084988337: Waiting
Step #0 - "check_substitutions": 15215efaca49: Download complete
Step #0 - "check_substitutions": 90d1f3b8a822: Verifying Checksum
Step #0 - "check_substitutions": 90d1f3b8a822: Download complete
Step #0 - "check_substitutions": b453535073b6: Verifying Checksum
Step #0 - "check_substitutions": b453535073b6: Download complete
Step #0 - "check_substitutions": 2b87fe8d0f10: Verifying Checksum
Step #0 - "check_substitutions": 2b87fe8d0f10: Download complete
Step #0 - "check_substitutions": 9c2f8c15b46b: Verifying Checksum
Step #0 - "check_substitutions": 9c2f8c15b46b: Download complete
Step #0 - "check_substitutions": b890c9407285: Verifying Checksum
Step #0 - "check_substitutions": b890c9407285: Download complete
Step #0 - "check_substitutions": 9e002cae30c4: Verifying Checksum
Step #0 - "check_substitutions": 9e002cae30c4: Download complete
Step #0 - "check_substitutions": 658084988337: Verifying Checksum
Step #0 - "check_substitutions": 658084988337: Download complete
Step #0 - "check_substitutions": 65956eab0c1c: Verifying Checksum
Step #0 - "check_substitutions": 65956eab0c1c: Download complete
Finished Step #4 - "download-secrets"
Step #0 - "check_substitutions": b890c9407285: Pull complete
Step #0 - "check_substitutions": b453535073b6: Pull complete
Step #0 - "check_substitutions": 9e002cae30c4: Pull complete
Step #0 - "check_substitutions": 65956eab0c1c: Pull complete
Step #0 - "check_substitutions": 15215efaca49: Pull complete
Step #0 - "check_substitutions": 2b87fe8d0f10: Pull complete
Step #0 - "check_substitutions": 90d1f3b8a822: Pull complete
Step #0 - "check_substitutions": 9c2f8c15b46b: Pull complete
Step #0 - "check_substitutions": 658084988337: Pull complete
Step #0 - "check_substitutions": Digest: sha256:06f374422a9b85feced88378cf7184fab3ee56765ac4224f0a604211d4cd348f
Step #0 - "check_substitutions": Status: Downloaded newer image for us-docker.pkg.dev/kaggle-cicd/tools/cli-builder:3.12.13
Step #0 - "check_substitutions": us-docker.pkg.dev/kaggle-cicd/tools/cli-builder:3.12.13
Finished Step #0 - "check_substitutions"
Starting Step #1 - "build-hatch-image"
Step #1 - "build-hatch-image": Already have image (with digest): gcr.io/cloud-builders/docker
Step #1 - "build-hatch-image": Sending build context to Docker daemon 6.656kB
Step #1 - "build-hatch-image": Step 1/5 : ARG PYTHON_VERSION
Step #1 - "build-hatch-image": Step 2/5 : FROM python:${PYTHON_VERSION}
Step #1 - "build-hatch-image": 3.12.13: Pulling from library/python
Step #1 - "build-hatch-image": b890c9407285: Already exists
Step #1 - "build-hatch-image": b453535073b6: Already exists
Step #1 - "build-hatch-image": 9e002cae30c4: Already exists
Step #1 - "build-hatch-image": 65956eab0c1c: Already exists
Step #1 - "build-hatch-image": 15215efaca49: Already exists
Step #1 - "build-hatch-image": 2b87fe8d0f10: Already exists
Step #1 - "build-hatch-image": 90d1f3b8a822: Already exists
Step #1 - "build-hatch-image": Digest: sha256:1a7dbae78e9568b95a8e2934719c4bf984d7ae319b3659ed129f59d8aca6d7a8
Step #1 - "build-hatch-image": Status: Downloaded newer image for python:3.12.13
Step #1 - "build-hatch-image": ---> b0414210acc5
Step #1 - "build-hatch-image": Step 3/5 : RUN python -m pip install --upgrade pip
Step #1 - "build-hatch-image": ---> Using cache
Step #1 - "build-hatch-image": ---> 4ce2af121ded
Step #1 - "build-hatch-image": Step 4/5 : RUN python -m pip install hatch==1.16.5
Step #1 - "build-hatch-image": ---> Using cache
Step #1 - "build-hatch-image": ---> 1b6fe2f73dc7
Step #1 - "build-hatch-image": Step 5/5 : ENTRYPOINT ["hatch"]
Step #1 - "build-hatch-image": ---> Using cache
Step #1 - "build-hatch-image": ---> e2c3e606f3af
Step #1 - "build-hatch-image": Successfully built e2c3e606f3af
Step #1 - "build-hatch-image": Successfully tagged us-docker.pkg.dev/kaggle-cicd/tools/cli-builder:3.12.13
Finished Step #1 - "build-hatch-image"
Starting Step #5 - "integration-tests"
Starting Step #3 - "lint"
Starting Step #2 - "tests"
Step #2 - "tests": Already have image (with digest): us-docker.pkg.dev/kaggle-cicd/tools/cli-builder:3.12.13
Step #5 - "integration-tests": Already have image (with digest): us-docker.pkg.dev/kaggle-cicd/tools/cli-builder:3.12.13
Step #3 - "lint": Already have image (with digest): us-docker.pkg.dev/kaggle-cicd/tools/cli-builder:3.12.13
Step #2 - "tests": Creating environment: test
Step #3 - "lint": Creating environment: lint
Step #5 - "integration-tests": Creating environment: test
Step #5 - "integration-tests": Installing project in development mode
Step #2 - "tests": Installing project in development mode
Step #3 - "lint": Checking dependencies
Step #3 - "lint": Syncing dependencies
Step #3 - "lint": cmd [1] | black --check --diff .
Step #3 - "lint": Skipping .ipynb files as Jupyter dependencies are not installed.
Step #3 - "lint": You can fix this by running ``pip install "black[jupyter]"``
Step #2 - "tests": Checking dependencies
Step #2 - "tests": Syncing dependencies
Step #5 - "integration-tests": Checking dependencies
Step #5 - "integration-tests": Syncing dependencies
Step #5 - "integration-tests": ============================= test session starts ==============================
Step #5 - "integration-tests": platform linux -- Python 3.12.13, pytest-9.1.1, pluggy-1.6.0
Step #5 - "integration-tests": rootdir: /workspace
Step #5 - "integration-tests": configfile: pyproject.toml
Step #5 - "integration-tests": plugins: cov-7.1.0
Step #5 - "integration-tests": collected 2 items
Step #5 - "integration-tests":
Step #5 - "integration-tests": tests/integration/test_models.py .. [100%]
Step #5 - "integration-tests":
Step #5 - "integration-tests": ============================== 2 passed in 1.96s ===============================
Finished Step #5 - "integration-tests"
Step #3 - "lint": All done! ✨ 🍰 ✨
Step #3 - "lint": 57 files would be left unchanged.
Step #3 - "lint": cmd [2] | mypy --install-types --non-interactive src/kaggle tests
Step #2 - "tests": ============================= test session starts ==============================
Step #2 - "tests": platform linux -- Python 3.12.13, pytest-9.1.1, pluggy-1.6.0
Step #2 - "tests": rootdir: /workspace
Step #2 - "tests": configfile: pyproject.toml
Step #2 - "tests": testpaths: tests/unit
Step #2 - "tests": plugins: cov-7.1.0
Step #2 - "tests": collected 1016 items
Step #2 - "tests":
Step #2 - "tests": tests/unit/test_authenticate.py ...... [ 0%]
Step #2 - "tests": tests/unit/test_benchmarks_cli.py ...................................... [ 4%]
Step #2 - "tests": ........................................................................ [ 11%]
Step #2 - "tests": ........................................................................ [ 18%]
Step #2 - "tests": ........................................................................ [ 25%]
Step #2 - "tests": ................................... [ 29%]
Step #2 - "tests": tests/unit/test_benchmarks_leaderboard.py ............ [ 30%]
Step #2 - "tests": tests/unit/test_cli_benchmarks.py ............................. [ 33%]
Step #2 - "tests": tests/unit/test_cli_commands.py .............. [ 34%]
Step #3 - "lint": Collecting types-PySocks
Step #3 - "lint": Downloading types_pysocks-1.7.1.20260518-py3-none-any.whl.metadata (1.7 kB)
Step #3 - "lint": Collecting types-PyYAML
Step #3 - "lint": Downloading types_pyyaml-6.0.12.20260518-py3-none-any.whl.metadata (1.7 kB)
Step #3 - "lint": Collecting types-Pygments
Step #3 - "lint": Downloading types_pygments-2.20.0.20260518-py3-none-any.whl.metadata (2.0 kB)
Step #3 - "lint": Collecting types-bleach
Step #3 - "lint": Downloading types_bleach-6.4.0.20260607-py3-none-any.whl.metadata (1.7 kB)
Step #3 - "lint": Collecting types-pexpect
Step #3 - "lint": Downloading types_pexpect-4.9.0.20260518-py3-none-any.whl.metadata (1.7 kB)
Step #3 - "lint": Collecting types-protobuf
Step #3 - "lint": Downloading types_protobuf-7.34.1.20260518-py3-none-any.whl.metadata (2.2 kB)
Step #3 - "lint": Collecting types-python-dateutil
Step #3 - "lint": Downloading types_python_dateutil-2.9.0.20260716-py3-none-any.whl.metadata (1.8 kB)
Step #3 - "lint": Collecting types-six
Step #3 - "lint": Downloading types_six-1.17.0.20260518-py3-none-any.whl.metadata (1.7 kB)
Step #3 - "lint": Collecting types-docutils (from types-Pygments)
Step #2 - "tests": tests/unit/test_cli_competitions.py .................................... [ 37%]
Step #3 - "lint": Downloading types_docutils-0.22.3.20260712-py3-none-any.whl.metadata (1.7 kB)
Step #3 - "lint": Collecting types-html5lib (from types-bleach)
Step #3 - "lint": Downloading types_html5lib-1.1.11.20260518-py3-none-any.whl.metadata (1.8 kB)
Step #3 - "lint": Collecting types-webencodings (from types-html5lib->types-bleach)
Step #3 - "lint": Downloading types_webencodings-0.5.0.20260408-py3-none-any.whl.metadata (1.8 kB)
Step #3 - "lint": Downloading types_pysocks-1.7.1.20260518-py3-none-any.whl (9.6 kB)
Step #3 - "lint": Downloading types_pyyaml-6.0.12.20260518-py3-none-any.whl (20 kB)
Step #3 - "lint": Downloading types_pygments-2.20.0.20260518-py3-none-any.whl (29 kB)
Step #3 - "lint": Downloading types_bleach-6.4.0.20260607-py3-none-any.whl (11 kB)
Step #3 - "lint": Downloading types_pexpect-4.9.0.20260518-py3-none-any.whl (17 kB)
Step #3 - "lint": Downloading types_protobuf-7.34.1.20260518-py3-none-any.whl (85 kB)
Step #3 - "lint": Downloading types_python_dateutil-2.9.0.20260716-py3-none-any.whl (18 kB)
Step #3 - "lint": Downloading types_six-1.17.0.20260518-py3-none-any.whl (19 kB)
Step #3 - "lint": Downloading types_docutils-0.22.3.20260712-py3-none-any.whl (91 kB)
Step #3 - "lint": Downloading types_html5lib-1.1.11.20260518-py3-none-any.whl (24 kB)
Step #3 - "lint": Downloading types_webencodings-0.5.0.20260408-py3-none-any.whl (8.7 kB)
Step #3 - "lint": Installing collected packages: types-webencodings, types-six, types-PyYAML, types-python-dateutil, types-PySocks, types-protobuf, types-pexpect, types-docutils, types-Pygments, types-html5lib, types-bleach
Step #2 - "tests": ........... [ 39%]
Step #3 - "lint":
Step #3 - "lint": Successfully installed types-PySocks-1.7.1.20260518 types-PyYAML-6.0.12.20260518 types-Pygments-2.20.0.20260518 types-bleach-6.4.0.20260607 types-docutils-0.22.3.20260712 types-html5lib-1.1.11.20260518 types-pexpect-4.9.0.20260518 types-protobuf-7.34.1.20260518 types-python-dateutil-2.9.0.20260716 types-six-1.17.0.20260518 types-webencodings-0.5.0.20260408
Step #2 - "tests": tests/unit/test_cli_datasets.py .......................... [ 41%]
Step #2 - "tests": tests/unit/test_cli_forums.py ....... [ 42%]
Step #2 - "tests": tests/unit/test_cli_kernels.py .............................. [ 45%]
Step #2 - "tests": tests/unit/test_cli_main.py .......... [ 46%]
Step #2 - "tests": tests/unit/test_cli_models.py ......................................... [ 50%]
Step #2 - "tests": tests/unit/test_cli_pagination.py ....... [ 50%]
Step #2 - "tests": tests/unit/test_competition_create.py ............ [ 52%]
Step #2 - "tests": tests/unit/test_competition_create_page.py ........ [ 52%]
Step #2 - "tests": tests/unit/test_competition_data_update.py ............... [ 54%]
Step #2 - "tests": tests/unit/test_competition_delete_page.py ........ [ 55%]
Step #3 - "lint": src/kaggle/api/kaggle_api_extended.py:2722: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked]
Step #3 - "lint": src/kaggle/api/kaggle_api_extended.py:6923: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked]
Step #3 - "lint": src/kaggle/api/kaggle_api_extended.py:7380: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked]
Step #3 - "lint": Installing missing stub packages:
Step #3 - "lint": /builder/home/lint/.local/share/hatch/env/virtual/kaggle/xS3fZVNL/lint/bin/python -m pip install types-PySocks types-PyYAML types-Pygments types-bleach types-pexpect types-protobuf types-python-dateutil types-six
Step #3 - "lint":
Step #3 - "lint":
Step #3 - "lint": Success: no issues found in 56 source files
Step #2 - "tests": tests/unit/test_competition_launch.py ......... [ 56%]
Step #2 - "tests": tests/unit/test_competition_list_hosts.py ........ [ 56%]
Step #2 - "tests": tests/unit/test_competition_settings_get.py ........ [ 57%]
Step #2 - "tests": tests/unit/test_competition_settings_update.py ................. [ 59%]
Step #2 - "tests": tests/unit/test_competition_submit.py ............ [ 60%]
Step #2 - "tests": tests/unit/test_competition_update_page.py ............ [ 61%]
Step #2 - "tests": tests/unit/test_competitions_list.py ............. [ 62%]
Step #2 - "tests": tests/unit/test_dataset_create.py ....................... [ 65%]
Step #2 - "tests": tests/unit/test_dataset_delete.py .. [ 65%]
Finished Step #3 - "lint"
Step #2 - "tests": tests/unit/test_dataset_download.py ........ [ 66%]
Step #2 - "tests": tests/unit/test_dataset_list.py ................ [ 67%]
Step #2 - "tests": tests/unit/test_dataset_metadata_update.py ......... [ 68%]
Step #2 - "tests": tests/unit/test_dataset_status.py .............. [ 70%]
Step #2 - "tests": tests/unit/test_discussions_cli.py ..................................... [ 73%]
Step #2 - "tests": .......................................................... [ 79%]
Step #2 - "tests": tests/unit/test_help_version_auth.py .......... [ 80%]
Step #2 - "tests": tests/unit/test_http_client.py x.. [ 80%]
Step #2 - "tests": tests/unit/test_ignore_patterns.py .... [ 81%]
Step #2 - "tests": tests/unit/test_kernel_parsing.py ....... [ 81%]
Step #2 - "tests": tests/unit/test_kernels_logs.py ...................... [ 83%]
Step #2 - "tests": tests/unit/test_kernels_pull.py ......... [ 84%]
Step #2 - "tests": tests/unit/test_kernels_push.py ................. [ 86%]
Step #2 - "tests": tests/unit/test_model_create.py ................................ [ 89%]
Step #2 - "tests": tests/unit/test_model_delete.py ...... [ 90%]
Step #2 - "tests": tests/unit/test_model_download.py .......... [ 91%]
Step #2 - "tests": tests/unit/test_model_list.py ........... [ 92%]
Step #2 - "tests": tests/unit/test_quota.py .......... [ 93%]
Step #2 - "tests": tests/unit/test_retry_after.py ............... [ 94%]
Step #2 - "tests": tests/unit/test_team_submissions.py ........ [ 95%]
Step #2 - "tests": tests/unit/test_upload_helpers.py ...................................... [ 99%]
Step #2 - "tests": ....... [100%]
Step #2 - "tests":
Step #2 - "tests": =============================== warnings summary ===============================
Step #2 - "tests": tests/unit/test_benchmarks_cli.py:827
Step #2 - "tests": /workspace/tests/unit/test_benchmarks_cli.py:827: SyntaxWarning: invalid escape sequence '\('
Step #2 - "tests": with patch("time.sleep"), pytest.raises(ValueError, match="run\(s\) failed"):
Step #2 - "tests":
Step #2 - "tests": tests/unit/test_ignore_patterns.py::TestIgnorePatterns::test_directory_archive_tar_filtering
Step #2 - "tests": /workspace/tests/unit/test_ignore_patterns.py:138: DeprecationWarning: Python 3.14 will, by default, filter extracted tar archives and reject files or modify their metadata. Use the filter argument to control this behavior.
Step #2 - "tests": tar_ref.extractall(extract_dir)
Step #2 - "tests":
Step #2 - "tests": tests/unit/test_model_download.py::TestModelDownload::test_download_untar_succeeds
Step #2 - "tests": /workspace/src/kaggle/api/kaggle_api_extended.py:7543: DeprecationWarning: Python 3.14 will, by default, filter extracted tar archives and reject files or modify their metadata. Use the filter argument to control this behavior.
Step #2 - "tests": t.extractall(effective_path)
Step #2 - "tests":
Step #2 - "tests": -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
Step #2 - "tests": ================= 1015 passed, 1 xfailed, 3 warnings in 25.95s =================
Finished Step #2 - "tests"
PUSH
Pushing us-docker.pkg.dev/kaggle-cicd/tools/cli-builder:3.12.13
The push refers to repository [us-docker.pkg.dev/kaggle-cicd/tools/cli-builder]
a718a50dfb27: Preparing
1bf074c8f374: Preparing
3633525a1e91: Preparing
51a4baac3e18: Preparing
5f9c44b262f5: Preparing
9ba280139d95: Preparing
21ac065449b5: Preparing
f86e5327aae0: Preparing
102f96b3f4ce: Preparing
5f9c44b262f5: Layer already exists
3633525a1e91: Layer already exists
f86e5327aae0: Layer already exists
a718a50dfb27: Layer already exists
9ba280139d95: Layer already exists
102f96b3f4ce: Layer already exists
21ac065449b5: Layer already exists
51a4baac3e18: Layer already exists
1bf074c8f374: Layer already exists
3.12.13: digest: sha256:06f374422a9b85feced88378cf7184fab3ee56765ac4224f0a604211d4cd348f size: 2219
DONE
Loading