kaggle 1.7.3b1__tar.gz → 1.7.4.1__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-1.7.3b1 → kaggle-1.7.4.1}/CHANGELOG.md +30 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/PKG-INFO +1 -1
- kaggle-1.7.4.1/dataset_results.csv +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/README.md +17 -10
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/api/kaggle_api_extended.py +111 -30
- {kaggle-1.7.3b1/src → kaggle-1.7.4.1}/kaggle/cli.py +29 -14
- {kaggle-1.7.3b1/src → kaggle-1.7.4.1}/kaggle/models/kaggle_models_extended.py +4 -1
- {kaggle-1.7.3b1/src → kaggle-1.7.4.1}/kagglesdk/competitions/services/competition_api_service.py +13 -1
- {kaggle-1.7.3b1/src → kaggle-1.7.4.1}/kagglesdk/competitions/types/competition_api_service.py +161 -6
- {kaggle-1.7.3b1/src → kaggle-1.7.4.1}/kagglesdk/kaggle_http_client.py +1 -1
- {kaggle-1.7.3b1/src → kaggle-1.7.4.1}/kagglesdk/kaggle_object.py +4 -1
- {kaggle-1.7.3b1/src → kaggle-1.7.4.1}/kagglesdk/models/types/model_api_service.py +0 -16
- kaggle-1.7.4.1/leaders/titanic.zip +0 -0
- kaggle-1.7.4.1/pixar-films.zip +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/setup.py +1 -1
- kaggle-1.7.4.1/src/__init__.py +1 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/api/kaggle_api_extended.py +111 -30
- {kaggle-1.7.3b1 → kaggle-1.7.4.1/src}/kaggle/cli.py +29 -14
- {kaggle-1.7.3b1 → kaggle-1.7.4.1/src}/kaggle/models/kaggle_models_extended.py +4 -1
- {kaggle-1.7.3b1 → kaggle-1.7.4.1/src}/kagglesdk/competitions/services/competition_api_service.py +13 -1
- {kaggle-1.7.3b1 → kaggle-1.7.4.1/src}/kagglesdk/competitions/types/competition_api_service.py +161 -6
- {kaggle-1.7.3b1 → kaggle-1.7.4.1/src}/kagglesdk/kaggle_http_client.py +1 -1
- {kaggle-1.7.3b1 → kaggle-1.7.4.1/src}/kagglesdk/kaggle_object.py +4 -1
- {kaggle-1.7.3b1 → kaggle-1.7.4.1/src}/kagglesdk/models/types/model_api_service.py +0 -16
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/setup.py +1 -1
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/tests/test_commands.sh +25 -16
- kaggle-1.7.3b1/src/__init__.py +0 -1
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/.gcloudignore +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/.gitignore +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/CONTRIBUTING.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/LICENSE.txt +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/MANIFEST.in +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/README.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/SECURITY.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/ApiBlobType.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/Collaborator.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/CreateInboxFileRequest.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/DatasetColumn.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/DatasetNewRequest.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/DatasetNewVersionRequest.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/DatasetUpdateSettingsRequest.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/Error.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/KaggleApi.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/KernelPushRequest.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/License.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/ModelInstanceNewVersionRequest.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/ModelInstanceUpdateRequest.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/ModelNewInstanceRequest.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/ModelNewRequest.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/ModelUpdateRequest.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/Result.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/StartBlobUploadRequest.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/StartBlobUploadResponse.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/UploadFile.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/conf.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/datasets_metadata.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/index.rst +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/kernels_metadata.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/model_card.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/modelinstance_usage.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/docs/models_metadata.md +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/integration_tests/test_models.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/LICENSE +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/api/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/api/kaggle_api.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/configuration.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/models/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/models/api_blob_type.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/models/dataset_column.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/models/dataset_new_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/models/dataset_new_version_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/models/dataset_update_settings_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/models/kernel_push_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/models/model_instance_new_version_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/models/model_instance_update_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/models/model_new_instance_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/models/model_new_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/models/model_update_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/models/start_blob_upload_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/models/start_blob_upload_response.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/models/upload_file.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/test/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kaggle/test/test_authenticate.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/LICENSE +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/admin/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/admin/services/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/admin/services/inbox_file_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/admin/types/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/admin/types/inbox_file_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/blobs/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/blobs/services/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/blobs/services/blob_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/blobs/types/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/blobs/types/blob_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/common/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/common/types/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/common/types/file_download.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/common/types/http_redirect.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/competitions/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/competitions/services/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/competitions/types/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/competitions/types/competition_enums.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/competitions/types/submission_status.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/datasets/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/datasets/services/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/datasets/services/dataset_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/datasets/types/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/datasets/types/dataset_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/datasets/types/dataset_enums.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/datasets/types/dataset_types.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/education/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/education/services/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/education/services/education_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/education/types/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/education/types/education_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/education/types/education_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/kaggle_client.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/kaggle_env.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/kernels/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/kernels/services/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/kernels/services/kernels_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/kernels/types/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/kernels/types/kernels_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/kernels/types/kernels_enums.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/models/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/models/services/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/models/services/model_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/models/services/model_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/models/types/__init__.py +0 -0
- {kaggle-1.7.3b1/src → kaggle-1.7.4.1}/kagglesdk/models/types/model_enums.py +5 -5
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/models/types/model_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/models/types/model_types.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/test/test_client.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/users/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/users/types/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/kagglesdk/users/types/users_enums.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/pyproject.toml +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/requirements.in +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/requirements.txt +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/setup.cfg +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/LICENSE +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/api/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/api/kaggle_api.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/configuration.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/models/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/models/api_blob_type.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/models/dataset_column.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/models/dataset_new_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/models/dataset_new_version_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/models/dataset_update_settings_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/models/kernel_push_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/models/model_instance_new_version_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/models/model_instance_update_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/models/model_new_instance_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/models/model_new_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/models/model_update_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/models/start_blob_upload_request.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/models/start_blob_upload_response.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/models/upload_file.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/test/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kaggle/test/test_authenticate.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/LICENSE +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/admin/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/admin/services/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/admin/services/inbox_file_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/admin/types/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/admin/types/inbox_file_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/blobs/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/blobs/services/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/blobs/services/blob_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/blobs/types/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/blobs/types/blob_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/common/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/common/types/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/common/types/file_download.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/common/types/http_redirect.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/competitions/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/competitions/services/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/competitions/types/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/competitions/types/competition_enums.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/competitions/types/submission_status.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/datasets/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/datasets/services/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/datasets/services/dataset_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/datasets/types/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/datasets/types/dataset_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/datasets/types/dataset_enums.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/datasets/types/dataset_types.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/education/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/education/services/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/education/services/education_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/education/types/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/education/types/education_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/education/types/education_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/kaggle_client.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/kaggle_env.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/kernels/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/kernels/services/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/kernels/services/kernels_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/kernels/types/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/kernels/types/kernels_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/kernels/types/kernels_enums.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/models/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/models/services/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/models/services/model_api_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/models/services/model_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/models/types/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1/src}/kagglesdk/models/types/model_enums.py +5 -5
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/models/types/model_service.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/models/types/model_types.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/test/test_client.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/users/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/users/types/__init__.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/kagglesdk/users/types/users_enums.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/src/setup.cfg +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/tests/dataset/data.csv +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/tests/kernel/testing.ipynb +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/tests/model/instance/data.csv +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/tests/model/instance/version/metadata.json +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/tests/sample_submission.csv +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/tests/unit_tests.py +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/tools/GeneratePythonLibrary.sh +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/tools/cicd/integration-tests.yaml +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/tools/releases/Dockerfile +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/tools/releases/cloudbuild.yaml +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/tools/releases/requirements.in +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/tools/releases/requirements.txt +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/tools/use-localhost.sh +0 -0
- {kaggle-1.7.3b1 → kaggle-1.7.4.1}/tools/use-prod.sh +0 -0
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
====
|
|
3
|
+
|
|
4
|
+
### 1.7.4.1
|
|
5
|
+
|
|
6
|
+
* Fix a dataset download problem. Datasets that had a license were failing to download.
|
|
7
|
+
* Update the documentation to include code competition submit.
|
|
8
|
+
|
|
9
|
+
### 1.7.4
|
|
10
|
+
|
|
11
|
+
Version 1.7.3 was never released. There were errors in versioning on
|
|
12
|
+
test.pypi.org. For consistency, we decided to jump several version numbers.
|
|
13
|
+
This is the first release since 1.6.17.
|
|
14
|
+
|
|
15
|
+
The actual changes are described in 1.7.3.
|
|
16
|
+
|
|
17
|
+
### 1.7.3
|
|
18
|
+
|
|
19
|
+
There was an error in versioning. We went from 1.6.17 to 1.7.3.
|
|
20
|
+
|
|
21
|
+
* Added the ability to submit to a code competition. Some required arguments have been made optional.
|
|
22
|
+
* Added a `--timeout` option to `kaggle kernels push` to limit the run-time to the specified number of seconds.
|
|
23
|
+
* Removed Swagger. Projects that use `kaggle/api/kaggle_api.py` may be affected. That file is deprecated and will be
|
|
24
|
+
removed. Most of its functions still work, but those that involve uploading files no longer work.
|
|
25
|
+
The command-line tool uses a higher-level abstraction for uploading, and client code needs
|
|
26
|
+
to be converted to use that.
|
|
27
|
+
|
|
28
|
+
### 1.7.3b2
|
|
29
|
+
|
|
30
|
+
* Added the ability to submit to a code competition. Some required arguments have been made optional.
|
|
31
|
+
* Added a `--timeout` option to `kaggle kernels push` to limit the run-time to the specified number of seconds.
|
|
32
|
+
|
|
3
33
|
### 1.7.3b1
|
|
4
34
|
|
|
5
35
|
* Fix escaped-quote issue in HTTP requests.
|
|
Binary file
|
|
@@ -159,25 +159,30 @@ Note: you will need to accept competition rules at `https://www.kaggle.com/c/<co
|
|
|
159
159
|
##### Submit to a competition
|
|
160
160
|
|
|
161
161
|
```
|
|
162
|
-
usage: kaggle competitions submit [-h] -f FILE_NAME -m MESSAGE [-q]
|
|
163
|
-
[competition]
|
|
162
|
+
usage: kaggle competitions submit [-h] [-f FILE_NAME] [-k KERNEL] -m MESSAGE [-v VERSION] [-q] [competition]
|
|
164
163
|
|
|
165
|
-
|
|
166
|
-
-f FILE_NAME, --file FILE_NAME
|
|
167
|
-
File for upload (full path)
|
|
168
|
-
-m MESSAGE, --message MESSAGE
|
|
169
|
-
Message describing this submission
|
|
170
|
-
|
|
171
|
-
optional arguments:
|
|
164
|
+
options:
|
|
172
165
|
-h, --help show this help message and exit
|
|
173
166
|
competition Competition URL suffix (use "kaggle competitions list" to show options)
|
|
174
167
|
If empty, the default competition will be used (use "kaggle config set competition")"
|
|
168
|
+
-f FILE_NAME, --file FILE_NAME
|
|
169
|
+
File for upload (full path), or the name of the output file produced by a kernel (for code competitions)
|
|
170
|
+
-k KERNEL, --kernel KERNEL
|
|
171
|
+
Name of kernel (notebook) to submit to a code competition
|
|
172
|
+
-m MESSAGE, --message MESSAGE
|
|
173
|
+
Message describing this submission
|
|
174
|
+
-v VERSION, --version VERSION
|
|
175
|
+
Version of kernel to submit to a code competition, e.g. "Version 1"
|
|
175
176
|
-q, --quiet Suppress printing information about the upload/download progress
|
|
176
177
|
```
|
|
177
178
|
|
|
178
179
|
Example:
|
|
179
180
|
|
|
180
|
-
`kaggle competitions submit favorita-grocery-sales-forecasting
|
|
181
|
+
`kaggle competitions submit favorita-grocery-sales-forecasting \
|
|
182
|
+
-f sample_submission_favorita.csv.7z -m "My submission message"`
|
|
183
|
+
|
|
184
|
+
`kaggle competitions submit llms-you-cant-please-them-all \
|
|
185
|
+
-k username/llms-can-t-please-all-submission -v 9 -f submission.csv -m "My submission message"'`
|
|
181
186
|
|
|
182
187
|
Note: you will need to accept competition rules at `https://www.kaggle.com/c/<competition-name>/rules`.
|
|
183
188
|
|
|
@@ -503,6 +508,8 @@ usage: kaggle kernels push [-h] -p FOLDER
|
|
|
503
508
|
|
|
504
509
|
optional arguments:
|
|
505
510
|
-h, --help show this help message and exit
|
|
511
|
+
-t N, --timeout N Limit the run time of a kernel to the given number of seconds.
|
|
512
|
+
The global maximum time will not be exceeded.
|
|
506
513
|
-p FOLDER, --path FOLDER
|
|
507
514
|
Folder for upload, containing data files and a special kernel-metadata.json file (https://github.com/Kaggle/kaggle-api/wiki/Kernel-Metadata). Defaults to current working directory
|
|
508
515
|
```
|
|
@@ -34,7 +34,8 @@ import requests
|
|
|
34
34
|
import urllib3.exceptions as urllib3_exceptions
|
|
35
35
|
from requests import RequestException
|
|
36
36
|
|
|
37
|
-
from kaggle.models.kaggle_models_extended import ResumableUploadResult, File
|
|
37
|
+
from kaggle.models.kaggle_models_extended import ResumableUploadResult, File, \
|
|
38
|
+
Kernel
|
|
38
39
|
|
|
39
40
|
from requests.adapters import HTTPAdapter
|
|
40
41
|
from slugify import slugify
|
|
@@ -61,7 +62,8 @@ from kagglesdk.datasets.types.dataset_types import DatasetSettings, \
|
|
|
61
62
|
SettingsLicense, DatasetCollaborator
|
|
62
63
|
from kagglesdk.kernels.types.kernels_api_service import ApiListKernelsRequest, \
|
|
63
64
|
ApiListKernelFilesRequest, ApiSaveKernelRequest, ApiGetKernelRequest, \
|
|
64
|
-
ApiListKernelSessionOutputRequest, ApiGetKernelSessionStatusRequest
|
|
65
|
+
ApiListKernelSessionOutputRequest, ApiGetKernelSessionStatusRequest, \
|
|
66
|
+
ApiSaveKernelResponse
|
|
65
67
|
from kagglesdk.kernels.types.kernels_enums import KernelsListSortType, \
|
|
66
68
|
KernelsListViewType
|
|
67
69
|
from kagglesdk.models.types.model_api_service import ApiListModelsRequest, \
|
|
@@ -251,7 +253,7 @@ class ResumableFileUpload(object):
|
|
|
251
253
|
|
|
252
254
|
|
|
253
255
|
class KaggleApi:
|
|
254
|
-
__version__ = '1.7.
|
|
256
|
+
__version__ = '1.7.4.1'
|
|
255
257
|
|
|
256
258
|
CONFIG_NAME_PROXY = 'proxy'
|
|
257
259
|
CONFIG_NAME_COMPETITION = 'competition'
|
|
@@ -290,7 +292,7 @@ class KaggleApi:
|
|
|
290
292
|
|
|
291
293
|
args = {} # DEBUG Add --local to use localhost
|
|
292
294
|
if os.environ.get('KAGGLE_API_ENVIRONMENT') == 'LOCALHOST':
|
|
293
|
-
args = {'--local'}
|
|
295
|
+
args = {'--verbose','--local'}
|
|
294
296
|
|
|
295
297
|
# Kernels valid types
|
|
296
298
|
valid_push_kernel_types = ['script', 'notebook']
|
|
@@ -700,7 +702,16 @@ class KaggleApi:
|
|
|
700
702
|
return enum_class[item]
|
|
701
703
|
except KeyError:
|
|
702
704
|
prefix = self.camel_to_snake(enum_class.__name__).upper()
|
|
703
|
-
|
|
705
|
+
full_name = f'{prefix}_{self.camel_to_snake(item_name).upper()}'
|
|
706
|
+
try:
|
|
707
|
+
return enum_class[full_name]
|
|
708
|
+
except KeyError:
|
|
709
|
+
# Handle PY_TORCH vs PYTORCH, etc.
|
|
710
|
+
full_name = full_name.replace('_', '')
|
|
711
|
+
for item in vars(enum_class):
|
|
712
|
+
if item.replace('_', '') == full_name:
|
|
713
|
+
return enum_class[item]
|
|
714
|
+
raise
|
|
704
715
|
|
|
705
716
|
def short_enum_name(self, value):
|
|
706
717
|
full_name = str(value)
|
|
@@ -792,8 +803,47 @@ class KaggleApi:
|
|
|
792
803
|
else:
|
|
793
804
|
print('No competitions found')
|
|
794
805
|
|
|
806
|
+
def competition_submit_code(self, file_name, message, competition, kernel=None, kernel_version=None, quiet=False):
|
|
807
|
+
""" Submit to a code competition.
|
|
808
|
+
|
|
809
|
+
Parameters
|
|
810
|
+
==========
|
|
811
|
+
file_name: the name of the output file created by the kernel (not used for packages)
|
|
812
|
+
message: the submission description
|
|
813
|
+
competition: the competition name; if not given use the 'competition' config value
|
|
814
|
+
kernel: the <owner>/<notebook> of the notebook to use for a code competition
|
|
815
|
+
kernel_version: the version number, returned by 'kaggle kernels push ...'
|
|
816
|
+
quiet: suppress verbose output (default is False)
|
|
817
|
+
"""
|
|
818
|
+
if competition is None:
|
|
819
|
+
competition = self.get_config_value(self.CONFIG_NAME_COMPETITION)
|
|
820
|
+
if competition is not None and not quiet:
|
|
821
|
+
print('Using competition: ' + competition)
|
|
822
|
+
if competition is None:
|
|
823
|
+
raise ValueError('No competition specified')
|
|
824
|
+
|
|
825
|
+
if kernel is None:
|
|
826
|
+
raise ValueError('No kernel specified')
|
|
827
|
+
else:
|
|
828
|
+
with self.build_kaggle_client() as kaggle:
|
|
829
|
+
items = kernel.split('/')
|
|
830
|
+
if len(items) != 2:
|
|
831
|
+
raise ValueError('The kernel must be specified as <owner>/<notebook>')
|
|
832
|
+
submit_request = ApiCreateCodeSubmissionRequest()
|
|
833
|
+
submit_request.file_name = file_name
|
|
834
|
+
submit_request.competition_name = competition
|
|
835
|
+
submit_request._kernel_owner = items[0]
|
|
836
|
+
submit_request.kernel_slug = items[1]
|
|
837
|
+
if kernel_version:
|
|
838
|
+
submit_request.kernel_version = int(kernel_version)
|
|
839
|
+
if message:
|
|
840
|
+
submit_request.submission_description = message
|
|
841
|
+
submit_response = kaggle.competitions.competition_api_client.create_code_submission(
|
|
842
|
+
submit_request)
|
|
843
|
+
return submit_response
|
|
844
|
+
|
|
795
845
|
def competition_submit(self, file_name, message, competition, quiet=False):
|
|
796
|
-
""" Submit a competition.
|
|
846
|
+
""" Submit to a competition.
|
|
797
847
|
|
|
798
848
|
Parameters
|
|
799
849
|
==========
|
|
@@ -810,6 +860,8 @@ class KaggleApi:
|
|
|
810
860
|
if competition is None:
|
|
811
861
|
raise ValueError('No competition specified')
|
|
812
862
|
else:
|
|
863
|
+
if file_name is None:
|
|
864
|
+
raise ValueError('No file specified')
|
|
813
865
|
with self.build_kaggle_client() as kaggle:
|
|
814
866
|
request = ApiStartSubmissionUploadRequest()
|
|
815
867
|
request.competition_name = competition
|
|
@@ -828,15 +880,18 @@ class KaggleApi:
|
|
|
828
880
|
submit_request = ApiCreateSubmissionRequest()
|
|
829
881
|
submit_request.competition_name = competition
|
|
830
882
|
submit_request.blob_file_tokens = response.token
|
|
831
|
-
|
|
883
|
+
if message:
|
|
884
|
+
submit_request.submission_description = message
|
|
832
885
|
submit_response = kaggle.competitions.competition_api_client.create_submission(
|
|
833
886
|
submit_request)
|
|
834
887
|
return submit_response
|
|
835
888
|
|
|
836
889
|
def competition_submit_cli(self,
|
|
837
|
-
file_name,
|
|
838
|
-
message,
|
|
839
|
-
competition,
|
|
890
|
+
file_name=None,
|
|
891
|
+
message=None,
|
|
892
|
+
competition=None,
|
|
893
|
+
kernel=None,
|
|
894
|
+
version=None,
|
|
840
895
|
competition_opt=None,
|
|
841
896
|
quiet=False):
|
|
842
897
|
""" Submit a competition using the client. Arguments are same as for
|
|
@@ -847,12 +902,20 @@ class KaggleApi:
|
|
|
847
902
|
file_name: the competition metadata file
|
|
848
903
|
message: the submission description
|
|
849
904
|
competition: the competition name; if not given use the 'competition' config value
|
|
905
|
+
kernel: the name of the kernel to submit to a code competition
|
|
906
|
+
version: the version of the kernel to submit to a code competition, e.g. '1'
|
|
850
907
|
quiet: suppress verbose output (default is False)
|
|
851
908
|
competition_opt: an alternative competition option provided by cli
|
|
852
909
|
"""
|
|
910
|
+
if kernel and not version or version and not kernel:
|
|
911
|
+
raise ValueError('Code competition submissions require both the output file name and the version label')
|
|
853
912
|
competition = competition or competition_opt
|
|
854
913
|
try:
|
|
855
|
-
|
|
914
|
+
if kernel:
|
|
915
|
+
submit_result = self.competition_submit_code(file_name, message, competition,
|
|
916
|
+
kernel, version, quiet)
|
|
917
|
+
else:
|
|
918
|
+
submit_result = self.competition_submit(file_name, message, competition,
|
|
856
919
|
quiet)
|
|
857
920
|
except RequestException as e:
|
|
858
921
|
if e.response and e.response.status_code == 404:
|
|
@@ -1665,16 +1728,22 @@ class KaggleApi:
|
|
|
1665
1728
|
dataset = dataset or dataset_opt
|
|
1666
1729
|
|
|
1667
1730
|
owner_slug, dataset_slug, _ = self.split_dataset_string(dataset)
|
|
1668
|
-
|
|
1669
|
-
|
|
1731
|
+
request = ApiGetDatasetMetadataRequest()
|
|
1732
|
+
request.owner_slug = owner_slug
|
|
1733
|
+
request.dataset_slug = dataset_slug
|
|
1734
|
+
with self.build_kaggle_client() as kaggle:
|
|
1735
|
+
response = kaggle.datasets.dataset_api_client.get_dataset_metadata(request)
|
|
1736
|
+
if response.error_message:
|
|
1737
|
+
raise Exception(response.error_message)
|
|
1738
|
+
metadata = response.info
|
|
1670
1739
|
|
|
1671
|
-
if
|
|
1740
|
+
if metadata and metadata.licenses:
|
|
1672
1741
|
# license_objs format is like: [{ 'name': 'CC0-1.0' }]
|
|
1673
|
-
license_objs = metadata
|
|
1742
|
+
license_objs = metadata.licenses
|
|
1674
1743
|
licenses = [
|
|
1675
|
-
license_obj
|
|
1744
|
+
license_obj.name
|
|
1676
1745
|
for license_obj in license_objs
|
|
1677
|
-
if
|
|
1746
|
+
if license_obj.name
|
|
1678
1747
|
]
|
|
1679
1748
|
else:
|
|
1680
1749
|
licenses = [
|
|
@@ -2297,10 +2366,6 @@ class KaggleApi:
|
|
|
2297
2366
|
print('No files found')
|
|
2298
2367
|
return
|
|
2299
2368
|
|
|
2300
|
-
if result.error_message:
|
|
2301
|
-
print(result.error_message)
|
|
2302
|
-
return
|
|
2303
|
-
|
|
2304
2369
|
next_page_token = result.nextPageToken
|
|
2305
2370
|
if next_page_token:
|
|
2306
2371
|
print('Next Page Token = {}'.format(next_page_token))
|
|
@@ -2369,12 +2434,13 @@ class KaggleApi:
|
|
|
2369
2434
|
meta_file = self.kernels_initialize(folder)
|
|
2370
2435
|
print('Kernel metadata template written to: ' + meta_file)
|
|
2371
2436
|
|
|
2372
|
-
def kernels_push(self, folder, timeout):
|
|
2437
|
+
def kernels_push(self, folder, timeout=None) -> ApiSaveKernelResponse:
|
|
2373
2438
|
""" Read the metadata file and kernel files from a notebook, validate
|
|
2374
2439
|
both, and use the Kernel API to push to Kaggle if all is valid.
|
|
2375
2440
|
Parameters
|
|
2376
2441
|
==========
|
|
2377
2442
|
folder: the path of the folder
|
|
2443
|
+
timeout: maximum run time iin seconds
|
|
2378
2444
|
"""
|
|
2379
2445
|
if not os.path.isdir(folder):
|
|
2380
2446
|
raise ValueError('Invalid folder: ' + folder)
|
|
@@ -2465,7 +2531,7 @@ class KaggleApi:
|
|
|
2465
2531
|
# but the server expects just one
|
|
2466
2532
|
if 'source' in cell and isinstance(cell['source'], list):
|
|
2467
2533
|
cell['source'] = ''.join(cell['source'])
|
|
2468
|
-
script_body = json.dumps(json_body)
|
|
2534
|
+
script_body = json.dumps(json_body)
|
|
2469
2535
|
|
|
2470
2536
|
with self.build_kaggle_client() as kaggle:
|
|
2471
2537
|
request = ApiSaveKernelRequest()
|
|
@@ -2496,6 +2562,7 @@ class KaggleApi:
|
|
|
2496
2562
|
Parameters
|
|
2497
2563
|
==========
|
|
2498
2564
|
folder: the path of the folder
|
|
2565
|
+
timeout: maximum run time in seconds
|
|
2499
2566
|
"""
|
|
2500
2567
|
folder = folder or os.getcwd()
|
|
2501
2568
|
result = self.kernels_push(folder, timeout)
|
|
@@ -2829,9 +2896,9 @@ class KaggleApi:
|
|
|
2829
2896
|
data['slug'] = model_ref_split[1]
|
|
2830
2897
|
data['title'] = model.title
|
|
2831
2898
|
data['subtitle'] = model.subtitle
|
|
2832
|
-
data['isPrivate'] = model.
|
|
2899
|
+
data['isPrivate'] = model.is_private # TODO Test to ensure True default
|
|
2833
2900
|
data['description'] = model.description
|
|
2834
|
-
data['publishTime'] = model.
|
|
2901
|
+
data['publishTime'] = model.publish_time
|
|
2835
2902
|
|
|
2836
2903
|
with open(meta_file, 'w') as f:
|
|
2837
2904
|
json.dump(data, f, indent=2)
|
|
@@ -3010,7 +3077,7 @@ class KaggleApi:
|
|
|
3010
3077
|
folder = folder or os.getcwd()
|
|
3011
3078
|
result = self.model_create_new(folder)
|
|
3012
3079
|
|
|
3013
|
-
if result.
|
|
3080
|
+
if result.id:
|
|
3014
3081
|
print('Your model was created. Id={}. Url={}'.format(
|
|
3015
3082
|
result.id, result.url))
|
|
3016
3083
|
else:
|
|
@@ -3134,7 +3201,7 @@ class KaggleApi:
|
|
|
3134
3201
|
folder = folder or os.getcwd()
|
|
3135
3202
|
result = self.model_update(folder)
|
|
3136
3203
|
|
|
3137
|
-
if result.
|
|
3204
|
+
if result.id:
|
|
3138
3205
|
print('Your model was updated. Id={}. Url={}'.format(
|
|
3139
3206
|
result.id, result.url))
|
|
3140
3207
|
else:
|
|
@@ -3357,7 +3424,7 @@ class KaggleApi:
|
|
|
3357
3424
|
folder = folder or os.getcwd()
|
|
3358
3425
|
result = self.model_instance_create(folder, quiet, dir_mode)
|
|
3359
3426
|
|
|
3360
|
-
if result.
|
|
3427
|
+
if result.id:
|
|
3361
3428
|
print('Your model instance was created. Id={}. Url={}'.format(
|
|
3362
3429
|
result.id, result.url))
|
|
3363
3430
|
else:
|
|
@@ -3442,10 +3509,10 @@ class KaggleApi:
|
|
|
3442
3509
|
next_page_token = response.next_page_token
|
|
3443
3510
|
if next_page_token:
|
|
3444
3511
|
print('Next Page Token = {}'.format(next_page_token))
|
|
3445
|
-
return response
|
|
3512
|
+
return FileList.from_response(response)
|
|
3446
3513
|
else:
|
|
3447
3514
|
print('No files found')
|
|
3448
|
-
return FileList({})
|
|
3515
|
+
return FileList({'files': [], 'nextPageToken': ''})
|
|
3449
3516
|
|
|
3450
3517
|
def model_instance_files_cli(self,
|
|
3451
3518
|
model_instance,
|
|
@@ -4635,6 +4702,20 @@ class FileList(object):
|
|
|
4635
4702
|
else:
|
|
4636
4703
|
self.nextPageToken = ""
|
|
4637
4704
|
|
|
4705
|
+
@staticmethod
|
|
4706
|
+
def from_response(response):
|
|
4707
|
+
inst = FileList({'files': [], 'nextPageToken': ''})
|
|
4708
|
+
inst.error_message = ''
|
|
4709
|
+
files = response.files
|
|
4710
|
+
if files:
|
|
4711
|
+
inst.files = [File(f) for f in files]
|
|
4712
|
+
else:
|
|
4713
|
+
inst.files = []
|
|
4714
|
+
token = response.next_page_token
|
|
4715
|
+
if token:
|
|
4716
|
+
inst.nextPageToken = token
|
|
4717
|
+
else:
|
|
4718
|
+
inst.nextPageToken = ""
|
|
4638
4719
|
def __repr__(self):
|
|
4639
4720
|
return ''
|
|
4640
4721
|
|
|
@@ -136,6 +136,7 @@ def parse_competitions(subparsers):
|
|
|
136
136
|
'--page',
|
|
137
137
|
dest='page',
|
|
138
138
|
default=1,
|
|
139
|
+
type=int,
|
|
139
140
|
required=False,
|
|
140
141
|
help=Help.param_page)
|
|
141
142
|
parser_competitions_list_optional.add_argument(
|
|
@@ -183,6 +184,7 @@ def parse_competitions(subparsers):
|
|
|
183
184
|
dest='page_size',
|
|
184
185
|
required=False,
|
|
185
186
|
default=20,
|
|
187
|
+
type=int,
|
|
186
188
|
help=Help.param_page_size)
|
|
187
189
|
parser_competitions_files._action_groups.append(
|
|
188
190
|
parser_competitions_files_optional)
|
|
@@ -234,8 +236,6 @@ def parse_competitions(subparsers):
|
|
|
234
236
|
help=Help.command_competitions_submit)
|
|
235
237
|
parser_competitions_submit_optional = parser_competitions_submit._action_groups.pop(
|
|
236
238
|
)
|
|
237
|
-
parser_competitions_submit_required = parser_competitions_submit.add_argument_group(
|
|
238
|
-
'required arguments')
|
|
239
239
|
parser_competitions_submit_optional.add_argument(
|
|
240
240
|
'competition', nargs='?', default=None, help=Help.param_competition)
|
|
241
241
|
parser_competitions_submit_optional.add_argument(
|
|
@@ -244,14 +244,18 @@ def parse_competitions(subparsers):
|
|
|
244
244
|
dest='competition_opt',
|
|
245
245
|
required=False,
|
|
246
246
|
help=argparse.SUPPRESS)
|
|
247
|
-
|
|
248
|
-
'-f', '--file', dest='file_name',
|
|
249
|
-
|
|
247
|
+
parser_competitions_submit_optional.add_argument(
|
|
248
|
+
'-f', '--file', dest='file_name', help=Help.param_upfile)
|
|
249
|
+
parser_competitions_submit_optional.add_argument(
|
|
250
|
+
'-k', '--kernel', dest='kernel', help=Help.param_code_kernel)
|
|
251
|
+
parser_competitions_submit_optional.add_argument(
|
|
250
252
|
'-m',
|
|
251
253
|
'--message',
|
|
252
254
|
dest='message',
|
|
253
255
|
required=True,
|
|
254
256
|
help=Help.param_competition_message)
|
|
257
|
+
parser_competitions_submit_optional.add_argument(
|
|
258
|
+
'-v', '--version', dest='version', help=Help.param_code_version)
|
|
255
259
|
parser_competitions_submit_optional.add_argument(
|
|
256
260
|
'-q', '--quiet', dest='quiet', action='store_true', help=Help.param_quiet)
|
|
257
261
|
parser_competitions_submit._action_groups.append(
|
|
@@ -358,7 +362,7 @@ def parse_datasets(subparsers):
|
|
|
358
362
|
required=False,
|
|
359
363
|
help=Help.param_dataset_sort_by)
|
|
360
364
|
parser_datasets_list.add_argument(
|
|
361
|
-
'--size', dest='size', required=False, help=Help.param_dataset_size)
|
|
365
|
+
'--size', dest='size', type=int, required=False, help=Help.param_dataset_size)
|
|
362
366
|
parser_datasets_list.add_argument(
|
|
363
367
|
'--file-type',
|
|
364
368
|
dest='file_type',
|
|
@@ -382,6 +386,7 @@ def parse_datasets(subparsers):
|
|
|
382
386
|
'--page',
|
|
383
387
|
dest='page',
|
|
384
388
|
default=1,
|
|
389
|
+
type=int,
|
|
385
390
|
required=False,
|
|
386
391
|
help=Help.param_page)
|
|
387
392
|
parser_datasets_list.add_argument(
|
|
@@ -394,11 +399,13 @@ def parse_datasets(subparsers):
|
|
|
394
399
|
'--max-size',
|
|
395
400
|
dest='max_size',
|
|
396
401
|
required=False,
|
|
402
|
+
type=int,
|
|
397
403
|
help=Help.param_dataset_maxsize)
|
|
398
404
|
parser_datasets_list.add_argument(
|
|
399
405
|
'--min-size',
|
|
400
406
|
dest='min_size',
|
|
401
407
|
required=False,
|
|
408
|
+
type=int,
|
|
402
409
|
help=Help.param_dataset_minsize)
|
|
403
410
|
parser_datasets_list._action_groups.append(parser_datasets_list_optional)
|
|
404
411
|
parser_datasets_list.set_defaults(func=api.dataset_list_cli)
|
|
@@ -433,6 +440,7 @@ def parse_datasets(subparsers):
|
|
|
433
440
|
dest='page_size',
|
|
434
441
|
required=False,
|
|
435
442
|
default=20,
|
|
443
|
+
type=int,
|
|
436
444
|
help=Help.param_page_size)
|
|
437
445
|
parser_datasets_files._action_groups.append(parser_datasets_files_optional)
|
|
438
446
|
parser_datasets_files.set_defaults(func=api.dataset_list_files_cli)
|
|
@@ -645,9 +653,9 @@ def parse_kernels(subparsers):
|
|
|
645
653
|
parser_kernels_list_optional.add_argument(
|
|
646
654
|
'-m', '--mine', dest='mine', action='store_true', help=Help.param_mine)
|
|
647
655
|
parser_kernels_list_optional.add_argument(
|
|
648
|
-
'-p', '--page', dest='page', default=1, help=Help.param_page)
|
|
656
|
+
'-p', '--page', dest='page', default=1, type=int, help=Help.param_page)
|
|
649
657
|
parser_kernels_list_optional.add_argument(
|
|
650
|
-
'--page-size', dest='page_size', default=20, help=Help.param_page_size)
|
|
658
|
+
'--page-size', dest='page_size', default=20, type=int, help=Help.param_page_size)
|
|
651
659
|
parser_kernels_list_optional.add_argument(
|
|
652
660
|
'-s', '--search', dest='search', help=Help.param_search)
|
|
653
661
|
parser_kernels_list_optional.add_argument(
|
|
@@ -716,7 +724,7 @@ def parse_kernels(subparsers):
|
|
|
716
724
|
parser_kernels_files_optional.add_argument(
|
|
717
725
|
'--page-token', dest='page_token', help=Help.param_page_token)
|
|
718
726
|
parser_kernels_files_optional.add_argument(
|
|
719
|
-
'--page-size', dest='page_size', default=20, help=Help.param_page_size)
|
|
727
|
+
'--page-size', dest='page_size', default=20, type=int, help=Help.param_page_size)
|
|
720
728
|
parser_kernels_files._action_groups.append(parser_kernels_files_optional)
|
|
721
729
|
parser_kernels_files.set_defaults(func=api.kernels_list_files_cli)
|
|
722
730
|
|
|
@@ -750,7 +758,9 @@ def parse_kernels(subparsers):
|
|
|
750
758
|
parser_kernels_push_optional.add_argument(
|
|
751
759
|
'-t',
|
|
752
760
|
'--timeout',
|
|
753
|
-
|
|
761
|
+
type=int,
|
|
762
|
+
dest='timeout',
|
|
763
|
+
help=Help.param_kernel_timeout)
|
|
754
764
|
parser_kernels_push._action_groups.append(parser_kernels_push_optional)
|
|
755
765
|
parser_kernels_push.set_defaults(func=api.kernels_push_cli)
|
|
756
766
|
|
|
@@ -889,7 +899,7 @@ def parse_models(subparsers):
|
|
|
889
899
|
parser_models_list.add_argument(
|
|
890
900
|
'--owner', dest='owner', required=False, help=Help.param_model_owner)
|
|
891
901
|
parser_models_list.add_argument(
|
|
892
|
-
'--page-size', dest='page_size', default=20, help=Help.param_page_size)
|
|
902
|
+
'--page-size', dest='page_size', default=20, type=int, help=Help.param_page_size)
|
|
893
903
|
parser_models_list.add_argument(
|
|
894
904
|
'--page-token',
|
|
895
905
|
dest='page_token',
|
|
@@ -1056,7 +1066,7 @@ def parse_model_instances(subparsers):
|
|
|
1056
1066
|
action='store_true',
|
|
1057
1067
|
help=Help.param_csv)
|
|
1058
1068
|
parser_model_instances_files_optional.add_argument(
|
|
1059
|
-
'--page-size', dest='page_size', default=20, help=Help.param_page_size)
|
|
1069
|
+
'--page-size', dest='page_size', default=20, type=int, help=Help.param_page_size)
|
|
1060
1070
|
parser_model_instances_files_optional.add_argument(
|
|
1061
1071
|
'--page-token',
|
|
1062
1072
|
dest='page_token',
|
|
@@ -1184,7 +1194,7 @@ def parse_model_instance_versions(subparsers):
|
|
|
1184
1194
|
action='store_true',
|
|
1185
1195
|
help=Help.param_csv)
|
|
1186
1196
|
parser_model_instance_versions_files_optional.add_argument(
|
|
1187
|
-
'--page-size', dest='page_size', default=20, help=Help.param_page_size)
|
|
1197
|
+
'--page-size', dest='page_size', default=20, type=int, help=Help.param_page_size)
|
|
1188
1198
|
parser_model_instance_versions_files_optional.add_argument(
|
|
1189
1199
|
'--page-token',
|
|
1190
1200
|
dest='page_token',
|
|
@@ -1420,7 +1430,9 @@ class Help(object):
|
|
|
1420
1430
|
param_delete_old_version = 'Delete old versions of this dataset'
|
|
1421
1431
|
param_force = ('Skip check whether local version of file is up to date, force'
|
|
1422
1432
|
' file download')
|
|
1423
|
-
param_upfile = 'File for upload (full path)'
|
|
1433
|
+
param_upfile = 'File for upload (full path), or the name of the output file produced by a kernel (for code competitions)'
|
|
1434
|
+
param_code_kernel = 'Name of kernel (notebook) to submit to a code competition'
|
|
1435
|
+
param_code_version = 'Version of kernel to submit to a code competition, e.g. "Version 1"'
|
|
1424
1436
|
param_csv = 'Print results in CSV format (if not set print in table format)'
|
|
1425
1437
|
param_page = 'Page number for results paging. Page size is 20 by default'
|
|
1426
1438
|
# NOTE: Default and max page size are set by the mid-tier code.
|
|
@@ -1515,6 +1527,9 @@ class Help(object):
|
|
|
1515
1527
|
param_kernel_competition = 'Find kernels for a given competition slug'
|
|
1516
1528
|
param_kernel_dataset = ('Find kernels for a given dataset slug. Format is '
|
|
1517
1529
|
'{username/dataset-slug}')
|
|
1530
|
+
param_kernel_timeout = ('Limit the run time of a kernel to the given number '
|
|
1531
|
+
'of seconds. The global maximum time will not be '
|
|
1532
|
+
'exceeded.')
|
|
1518
1533
|
param_kernel_user = 'Find kernels created by a given username'
|
|
1519
1534
|
# TODO(b/129357583): Pull these from the same spot as the api impl
|
|
1520
1535
|
param_kernel_language = (
|
|
@@ -120,7 +120,10 @@ class File(object):
|
|
|
120
120
|
except AttributeError:
|
|
121
121
|
self.name = init_dict.name
|
|
122
122
|
self.creation_date = init_dict.creation_date
|
|
123
|
-
|
|
123
|
+
try:
|
|
124
|
+
self.size = File.get_size(init_dict.total_bytes)
|
|
125
|
+
except Exception: # AttributeError would be preferred but doesn't work.
|
|
126
|
+
self.size = File.get_size(init_dict.size)
|
|
124
127
|
|
|
125
128
|
def __repr__(self):
|
|
126
129
|
return self.name
|
{kaggle-1.7.3b1/src → kaggle-1.7.4.1}/kagglesdk/competitions/services/competition_api_service.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from kagglesdk.common.types.file_download import FileDownload
|
|
2
2
|
from kagglesdk.common.types.http_redirect import HttpRedirect
|
|
3
|
-
from kagglesdk.competitions.types.competition_api_service import ApiCreateSubmissionRequest, ApiCreateSubmissionResponse, ApiDownloadDataFileRequest, ApiDownloadDataFilesRequest, ApiDownloadLeaderboardRequest, ApiGetLeaderboardRequest, ApiGetLeaderboardResponse, ApiGetSubmissionRequest, ApiListCompetitionsRequest, ApiListCompetitionsResponse, ApiListDataFilesRequest, ApiListDataFilesResponse, ApiListSubmissionsRequest, ApiListSubmissionsResponse, ApiStartSubmissionUploadRequest, ApiStartSubmissionUploadResponse, ApiSubmission
|
|
3
|
+
from kagglesdk.competitions.types.competition_api_service import ApiCreateCodeSubmissionRequest, ApiCreateCodeSubmissionResponse, ApiCreateSubmissionRequest, ApiCreateSubmissionResponse, ApiDownloadDataFileRequest, ApiDownloadDataFilesRequest, ApiDownloadLeaderboardRequest, ApiGetLeaderboardRequest, ApiGetLeaderboardResponse, ApiGetSubmissionRequest, ApiListCompetitionsRequest, ApiListCompetitionsResponse, ApiListDataFilesRequest, ApiListDataFilesResponse, ApiListSubmissionsRequest, ApiListSubmissionsResponse, ApiStartSubmissionUploadRequest, ApiStartSubmissionUploadResponse, ApiSubmission
|
|
4
4
|
from kagglesdk.kaggle_http_client import KaggleHttpClient
|
|
5
5
|
|
|
6
6
|
class CompetitionApiClient(object):
|
|
@@ -80,6 +80,18 @@ class CompetitionApiClient(object):
|
|
|
80
80
|
|
|
81
81
|
return self._client.call("competitions.CompetitionApiService", "ApiCreateSubmission", request, ApiCreateSubmissionResponse)
|
|
82
82
|
|
|
83
|
+
def create_code_submission(self, request: ApiCreateCodeSubmissionRequest = None) -> ApiCreateCodeSubmissionResponse:
|
|
84
|
+
r"""
|
|
85
|
+
Args:
|
|
86
|
+
request (ApiCreateCodeSubmissionRequest):
|
|
87
|
+
The request object; initialized to empty instance if not specified.
|
|
88
|
+
"""
|
|
89
|
+
|
|
90
|
+
if request is None:
|
|
91
|
+
request = ApiCreateCodeSubmissionRequest()
|
|
92
|
+
|
|
93
|
+
return self._client.call("competitions.CompetitionApiService", "ApiCreateCodeSubmission", request, ApiCreateCodeSubmissionResponse)
|
|
94
|
+
|
|
83
95
|
def get_submission(self, request: ApiGetSubmissionRequest = None) -> ApiSubmission:
|
|
84
96
|
r"""
|
|
85
97
|
Args:
|