kaggle 1.7.3b1__tar.gz → 1.7.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. {kaggle-1.7.3b1 → kaggle-1.7.4}/CHANGELOG.md +25 -0
  2. {kaggle-1.7.3b1 → kaggle-1.7.4}/PKG-INFO +11 -1
  3. {kaggle-1.7.3b1 → kaggle-1.7.4}/README.md +10 -0
  4. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/api/kaggle_api_extended.py +105 -26
  5. {kaggle-1.7.3b1/src → kaggle-1.7.4}/kaggle/cli.py +24 -13
  6. {kaggle-1.7.3b1/src → kaggle-1.7.4}/kaggle/models/kaggle_models_extended.py +4 -1
  7. {kaggle-1.7.3b1/src → kaggle-1.7.4}/kagglesdk/competitions/services/competition_api_service.py +13 -1
  8. {kaggle-1.7.3b1/src → kaggle-1.7.4}/kagglesdk/competitions/types/competition_api_service.py +161 -6
  9. {kaggle-1.7.3b1/src → kaggle-1.7.4}/kagglesdk/kaggle_http_client.py +1 -1
  10. {kaggle-1.7.3b1/src → kaggle-1.7.4}/kagglesdk/models/types/model_api_service.py +0 -16
  11. {kaggle-1.7.3b1 → kaggle-1.7.4}/setup.py +1 -1
  12. kaggle-1.7.4/src/__init__.py +1 -0
  13. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/api/kaggle_api_extended.py +105 -26
  14. {kaggle-1.7.3b1 → kaggle-1.7.4/src}/kaggle/cli.py +24 -13
  15. {kaggle-1.7.3b1 → kaggle-1.7.4/src}/kaggle/models/kaggle_models_extended.py +4 -1
  16. {kaggle-1.7.3b1 → kaggle-1.7.4/src}/kagglesdk/competitions/services/competition_api_service.py +13 -1
  17. {kaggle-1.7.3b1 → kaggle-1.7.4/src}/kagglesdk/competitions/types/competition_api_service.py +161 -6
  18. {kaggle-1.7.3b1 → kaggle-1.7.4/src}/kagglesdk/kaggle_http_client.py +1 -1
  19. {kaggle-1.7.3b1 → kaggle-1.7.4/src}/kagglesdk/models/types/model_api_service.py +0 -16
  20. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/setup.py +1 -1
  21. {kaggle-1.7.3b1 → kaggle-1.7.4}/tests/test_commands.sh +24 -16
  22. kaggle-1.7.3b1/src/__init__.py +0 -1
  23. {kaggle-1.7.3b1 → kaggle-1.7.4}/.gcloudignore +0 -0
  24. {kaggle-1.7.3b1 → kaggle-1.7.4}/.gitignore +0 -0
  25. {kaggle-1.7.3b1 → kaggle-1.7.4}/CONTRIBUTING.md +0 -0
  26. {kaggle-1.7.3b1 → kaggle-1.7.4}/LICENSE.txt +0 -0
  27. {kaggle-1.7.3b1 → kaggle-1.7.4}/MANIFEST.in +0 -0
  28. {kaggle-1.7.3b1 → kaggle-1.7.4}/SECURITY.md +0 -0
  29. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/ApiBlobType.md +0 -0
  30. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/Collaborator.md +0 -0
  31. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/CreateInboxFileRequest.md +0 -0
  32. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/DatasetColumn.md +0 -0
  33. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/DatasetNewRequest.md +0 -0
  34. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/DatasetNewVersionRequest.md +0 -0
  35. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/DatasetUpdateSettingsRequest.md +0 -0
  36. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/Error.md +0 -0
  37. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/KaggleApi.md +0 -0
  38. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/KernelPushRequest.md +0 -0
  39. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/License.md +0 -0
  40. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/ModelInstanceNewVersionRequest.md +0 -0
  41. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/ModelInstanceUpdateRequest.md +0 -0
  42. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/ModelNewInstanceRequest.md +0 -0
  43. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/ModelNewRequest.md +0 -0
  44. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/ModelUpdateRequest.md +0 -0
  45. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/README.md +0 -0
  46. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/Result.md +0 -0
  47. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/StartBlobUploadRequest.md +0 -0
  48. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/StartBlobUploadResponse.md +0 -0
  49. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/UploadFile.md +0 -0
  50. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/conf.py +0 -0
  51. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/datasets_metadata.md +0 -0
  52. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/index.rst +0 -0
  53. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/kernels_metadata.md +0 -0
  54. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/model_card.md +0 -0
  55. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/modelinstance_usage.md +0 -0
  56. {kaggle-1.7.3b1 → kaggle-1.7.4}/docs/models_metadata.md +0 -0
  57. {kaggle-1.7.3b1 → kaggle-1.7.4}/integration_tests/test_models.py +0 -0
  58. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/LICENSE +0 -0
  59. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/__init__.py +0 -0
  60. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/api/__init__.py +0 -0
  61. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/api/kaggle_api.py +0 -0
  62. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/configuration.py +0 -0
  63. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/models/__init__.py +0 -0
  64. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/models/api_blob_type.py +0 -0
  65. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/models/dataset_column.py +0 -0
  66. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/models/dataset_new_request.py +0 -0
  67. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/models/dataset_new_version_request.py +0 -0
  68. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/models/dataset_update_settings_request.py +0 -0
  69. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/models/kernel_push_request.py +0 -0
  70. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/models/model_instance_new_version_request.py +0 -0
  71. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/models/model_instance_update_request.py +0 -0
  72. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/models/model_new_instance_request.py +0 -0
  73. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/models/model_new_request.py +0 -0
  74. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/models/model_update_request.py +0 -0
  75. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/models/start_blob_upload_request.py +0 -0
  76. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/models/start_blob_upload_response.py +0 -0
  77. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/models/upload_file.py +0 -0
  78. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/test/__init__.py +0 -0
  79. {kaggle-1.7.3b1 → kaggle-1.7.4}/kaggle/test/test_authenticate.py +0 -0
  80. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/LICENSE +0 -0
  81. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/__init__.py +0 -0
  82. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/admin/__init__.py +0 -0
  83. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/admin/services/__init__.py +0 -0
  84. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/admin/services/inbox_file_service.py +0 -0
  85. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/admin/types/__init__.py +0 -0
  86. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/admin/types/inbox_file_service.py +0 -0
  87. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/blobs/__init__.py +0 -0
  88. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/blobs/services/__init__.py +0 -0
  89. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/blobs/services/blob_api_service.py +0 -0
  90. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/blobs/types/__init__.py +0 -0
  91. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/blobs/types/blob_api_service.py +0 -0
  92. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/common/__init__.py +0 -0
  93. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/common/types/__init__.py +0 -0
  94. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/common/types/file_download.py +0 -0
  95. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/common/types/http_redirect.py +0 -0
  96. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/competitions/__init__.py +0 -0
  97. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/competitions/services/__init__.py +0 -0
  98. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/competitions/types/__init__.py +0 -0
  99. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/competitions/types/competition_enums.py +0 -0
  100. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/competitions/types/submission_status.py +0 -0
  101. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/datasets/__init__.py +0 -0
  102. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/datasets/services/__init__.py +0 -0
  103. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/datasets/services/dataset_api_service.py +0 -0
  104. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/datasets/types/__init__.py +0 -0
  105. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/datasets/types/dataset_api_service.py +0 -0
  106. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/datasets/types/dataset_enums.py +0 -0
  107. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/datasets/types/dataset_types.py +0 -0
  108. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/education/__init__.py +0 -0
  109. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/education/services/__init__.py +0 -0
  110. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/education/services/education_api_service.py +0 -0
  111. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/education/types/__init__.py +0 -0
  112. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/education/types/education_api_service.py +0 -0
  113. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/education/types/education_service.py +0 -0
  114. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/kaggle_client.py +0 -0
  115. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/kaggle_env.py +0 -0
  116. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/kaggle_object.py +0 -0
  117. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/kernels/__init__.py +0 -0
  118. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/kernels/services/__init__.py +0 -0
  119. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/kernels/services/kernels_api_service.py +0 -0
  120. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/kernels/types/__init__.py +0 -0
  121. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/kernels/types/kernels_api_service.py +0 -0
  122. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/kernels/types/kernels_enums.py +0 -0
  123. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/models/__init__.py +0 -0
  124. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/models/services/__init__.py +0 -0
  125. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/models/services/model_api_service.py +0 -0
  126. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/models/services/model_service.py +0 -0
  127. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/models/types/__init__.py +0 -0
  128. {kaggle-1.7.3b1/src → kaggle-1.7.4}/kagglesdk/models/types/model_enums.py +5 -5
  129. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/models/types/model_service.py +0 -0
  130. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/models/types/model_types.py +0 -0
  131. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/test/test_client.py +0 -0
  132. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/users/__init__.py +0 -0
  133. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/users/types/__init__.py +0 -0
  134. {kaggle-1.7.3b1 → kaggle-1.7.4}/kagglesdk/users/types/users_enums.py +0 -0
  135. {kaggle-1.7.3b1 → kaggle-1.7.4}/pyproject.toml +0 -0
  136. {kaggle-1.7.3b1 → kaggle-1.7.4}/requirements.in +0 -0
  137. {kaggle-1.7.3b1 → kaggle-1.7.4}/requirements.txt +0 -0
  138. {kaggle-1.7.3b1 → kaggle-1.7.4}/setup.cfg +0 -0
  139. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/LICENSE +0 -0
  140. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/__init__.py +0 -0
  141. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/api/__init__.py +0 -0
  142. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/api/kaggle_api.py +0 -0
  143. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/configuration.py +0 -0
  144. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/models/__init__.py +0 -0
  145. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/models/api_blob_type.py +0 -0
  146. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/models/dataset_column.py +0 -0
  147. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/models/dataset_new_request.py +0 -0
  148. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/models/dataset_new_version_request.py +0 -0
  149. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/models/dataset_update_settings_request.py +0 -0
  150. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/models/kernel_push_request.py +0 -0
  151. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/models/model_instance_new_version_request.py +0 -0
  152. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/models/model_instance_update_request.py +0 -0
  153. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/models/model_new_instance_request.py +0 -0
  154. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/models/model_new_request.py +0 -0
  155. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/models/model_update_request.py +0 -0
  156. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/models/start_blob_upload_request.py +0 -0
  157. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/models/start_blob_upload_response.py +0 -0
  158. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/models/upload_file.py +0 -0
  159. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/test/__init__.py +0 -0
  160. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kaggle/test/test_authenticate.py +0 -0
  161. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/LICENSE +0 -0
  162. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/__init__.py +0 -0
  163. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/admin/__init__.py +0 -0
  164. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/admin/services/__init__.py +0 -0
  165. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/admin/services/inbox_file_service.py +0 -0
  166. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/admin/types/__init__.py +0 -0
  167. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/admin/types/inbox_file_service.py +0 -0
  168. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/blobs/__init__.py +0 -0
  169. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/blobs/services/__init__.py +0 -0
  170. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/blobs/services/blob_api_service.py +0 -0
  171. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/blobs/types/__init__.py +0 -0
  172. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/blobs/types/blob_api_service.py +0 -0
  173. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/common/__init__.py +0 -0
  174. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/common/types/__init__.py +0 -0
  175. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/common/types/file_download.py +0 -0
  176. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/common/types/http_redirect.py +0 -0
  177. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/competitions/__init__.py +0 -0
  178. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/competitions/services/__init__.py +0 -0
  179. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/competitions/types/__init__.py +0 -0
  180. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/competitions/types/competition_enums.py +0 -0
  181. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/competitions/types/submission_status.py +0 -0
  182. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/datasets/__init__.py +0 -0
  183. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/datasets/services/__init__.py +0 -0
  184. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/datasets/services/dataset_api_service.py +0 -0
  185. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/datasets/types/__init__.py +0 -0
  186. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/datasets/types/dataset_api_service.py +0 -0
  187. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/datasets/types/dataset_enums.py +0 -0
  188. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/datasets/types/dataset_types.py +0 -0
  189. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/education/__init__.py +0 -0
  190. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/education/services/__init__.py +0 -0
  191. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/education/services/education_api_service.py +0 -0
  192. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/education/types/__init__.py +0 -0
  193. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/education/types/education_api_service.py +0 -0
  194. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/education/types/education_service.py +0 -0
  195. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/kaggle_client.py +0 -0
  196. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/kaggle_env.py +0 -0
  197. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/kaggle_object.py +0 -0
  198. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/kernels/__init__.py +0 -0
  199. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/kernels/services/__init__.py +0 -0
  200. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/kernels/services/kernels_api_service.py +0 -0
  201. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/kernels/types/__init__.py +0 -0
  202. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/kernels/types/kernels_api_service.py +0 -0
  203. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/kernels/types/kernels_enums.py +0 -0
  204. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/models/__init__.py +0 -0
  205. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/models/services/__init__.py +0 -0
  206. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/models/services/model_api_service.py +0 -0
  207. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/models/services/model_service.py +0 -0
  208. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/models/types/__init__.py +0 -0
  209. {kaggle-1.7.3b1 → kaggle-1.7.4/src}/kagglesdk/models/types/model_enums.py +5 -5
  210. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/models/types/model_service.py +0 -0
  211. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/models/types/model_types.py +0 -0
  212. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/test/test_client.py +0 -0
  213. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/users/__init__.py +0 -0
  214. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/users/types/__init__.py +0 -0
  215. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/kagglesdk/users/types/users_enums.py +0 -0
  216. {kaggle-1.7.3b1 → kaggle-1.7.4}/src/setup.cfg +0 -0
  217. {kaggle-1.7.3b1 → kaggle-1.7.4}/tests/dataset/data.csv +0 -0
  218. {kaggle-1.7.3b1 → kaggle-1.7.4}/tests/kernel/testing.ipynb +0 -0
  219. {kaggle-1.7.3b1 → kaggle-1.7.4}/tests/model/instance/data.csv +0 -0
  220. {kaggle-1.7.3b1 → kaggle-1.7.4}/tests/model/instance/version/metadata.json +0 -0
  221. {kaggle-1.7.3b1 → kaggle-1.7.4}/tests/sample_submission.csv +0 -0
  222. {kaggle-1.7.3b1 → kaggle-1.7.4}/tests/unit_tests.py +0 -0
  223. {kaggle-1.7.3b1 → kaggle-1.7.4}/tools/GeneratePythonLibrary.sh +0 -0
  224. {kaggle-1.7.3b1 → kaggle-1.7.4}/tools/cicd/integration-tests.yaml +0 -0
  225. {kaggle-1.7.3b1 → kaggle-1.7.4}/tools/releases/Dockerfile +0 -0
  226. {kaggle-1.7.3b1 → kaggle-1.7.4}/tools/releases/cloudbuild.yaml +0 -0
  227. {kaggle-1.7.3b1 → kaggle-1.7.4}/tools/releases/requirements.in +0 -0
  228. {kaggle-1.7.3b1 → kaggle-1.7.4}/tools/releases/requirements.txt +0 -0
  229. {kaggle-1.7.3b1 → kaggle-1.7.4}/tools/use-localhost.sh +0 -0
  230. {kaggle-1.7.3b1 → kaggle-1.7.4}/tools/use-prod.sh +0 -0
@@ -1,5 +1,30 @@
1
1
  Changelog
2
2
  ====
3
+
4
+ ### 1.7.4
5
+
6
+ Version 1.7.3 was never released. There were errors in versioning on
7
+ test.pypi.org. For consistency, we decided to jump several version numbers.
8
+ This is the first release since 1.6.17.
9
+
10
+ The actual changes are described in 1.7.3.
11
+
12
+ ### 1.7.3
13
+
14
+ There was an error in versioning. We went from 1.6.17 to 1.7.3.
15
+
16
+ * Added the ability to submit to a code competition. Some required arguments have been made optional.
17
+ * Added a `--timeout` option to `kaggle kernels push` to limit the run-time to the specified number of seconds.
18
+ * Removed Swagger. Projects that use `kaggle/api/kaggle_api.py` may be affected. That file is deprecated and will be
19
+ removed. Most of its functions still work, but those that involve uploading files no longer work.
20
+ The command-line tool uses a higher-level abstraction for uploading, and client code needs
21
+ to be converted to use that.
22
+
23
+ ### 1.7.3b2
24
+
25
+ * Added the ability to submit to a code competition. Some required arguments have been made optional.
26
+ * Added a `--timeout` option to `kaggle kernels push` to limit the run-time to the specified number of seconds.
27
+
3
28
  ### 1.7.3b1
4
29
 
5
30
  * Fix escaped-quote issue in HTTP requests.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kaggle
3
- Version: 1.7.3b1
3
+ Version: 1.7.4
4
4
  Summary: Access Kaggle resources anywhere
5
5
  Project-URL: Homepage, https://github.com/Kaggle/kaggle-api
6
6
  Project-URL: Issues, https://github.com/Kaggle/kaggle-api/issues
@@ -259,6 +259,16 @@ rm -rf /tmp/autogen && mkdir -p /tmp/autogen && unzip -qo /tmp/autogen.zip -d /t
259
259
  mv /tmp/autogen/autogen-*/* /tmp/autogen && rm -rf /tmp/autogen/autogen-* &&
260
260
  sudo chmod a+rx /tmp/autogen/autogen.sh
261
261
  ```
262
+ The internal documentation needs to be updated. To install a release from test.pypi.org
263
+ you need to do:
264
+ ```bash
265
+ pip install \
266
+ --index-url https://test.pypi.org/simple \
267
+ --force \
268
+ --extra-index-url https://pypi.org/simple \
269
+ --break-system-packages \
270
+ kaggle
271
+ ```
262
272
 
263
273
  ### Prerequisites
264
274
 
@@ -29,6 +29,16 @@ rm -rf /tmp/autogen && mkdir -p /tmp/autogen && unzip -qo /tmp/autogen.zip -d /t
29
29
  mv /tmp/autogen/autogen-*/* /tmp/autogen && rm -rf /tmp/autogen/autogen-* &&
30
30
  sudo chmod a+rx /tmp/autogen/autogen.sh
31
31
  ```
32
+ The internal documentation needs to be updated. To install a release from test.pypi.org
33
+ you need to do:
34
+ ```bash
35
+ pip install \
36
+ --index-url https://test.pypi.org/simple \
37
+ --force \
38
+ --extra-index-url https://pypi.org/simple \
39
+ --break-system-packages \
40
+ kaggle
41
+ ```
32
42
 
33
43
  ### Prerequisites
34
44
 
@@ -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.3b1'
256
+ __version__ = '1.7.4'
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
- return enum_class[f'{prefix}_{self.camel_to_snake(item_name).upper()}']
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
- submit_request.submission_description = message
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
- submit_result = self.competition_submit(file_name, message, competition,
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,8 +1728,14 @@ class KaggleApi:
1665
1728
  dataset = dataset or dataset_opt
1666
1729
 
1667
1730
  owner_slug, dataset_slug, _ = self.split_dataset_string(dataset)
1668
- metadata = self.process_response(
1669
- self.metadata_get_with_http_info(owner_slug, dataset_slug))
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
1740
  if 'info' in metadata and 'licenses' in metadata['info']:
1672
1741
  # license_objs format is like: [{ 'name': 'CC0-1.0' }]
@@ -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,7 +2434,7 @@ 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
@@ -2465,7 +2530,7 @@ class KaggleApi:
2465
2530
  # but the server expects just one
2466
2531
  if 'source' in cell and isinstance(cell['source'], list):
2467
2532
  cell['source'] = ''.join(cell['source'])
2468
- script_body = json.dumps(json_body).replace("'", "\\'")
2533
+ script_body = json.dumps(json_body)
2469
2534
 
2470
2535
  with self.build_kaggle_client() as kaggle:
2471
2536
  request = ApiSaveKernelRequest()
@@ -2829,9 +2894,9 @@ class KaggleApi:
2829
2894
  data['slug'] = model_ref_split[1]
2830
2895
  data['title'] = model.title
2831
2896
  data['subtitle'] = model.subtitle
2832
- data['isPrivate'] = model.isPrivate # TODO Test to ensure True default
2897
+ data['isPrivate'] = model.is_private # TODO Test to ensure True default
2833
2898
  data['description'] = model.description
2834
- data['publishTime'] = model.publishTime
2899
+ data['publishTime'] = model.publish_time
2835
2900
 
2836
2901
  with open(meta_file, 'w') as f:
2837
2902
  json.dump(data, f, indent=2)
@@ -3010,7 +3075,7 @@ class KaggleApi:
3010
3075
  folder = folder or os.getcwd()
3011
3076
  result = self.model_create_new(folder)
3012
3077
 
3013
- if result.hasId:
3078
+ if result.id:
3014
3079
  print('Your model was created. Id={}. Url={}'.format(
3015
3080
  result.id, result.url))
3016
3081
  else:
@@ -3134,7 +3199,7 @@ class KaggleApi:
3134
3199
  folder = folder or os.getcwd()
3135
3200
  result = self.model_update(folder)
3136
3201
 
3137
- if result.hasId:
3202
+ if result.id:
3138
3203
  print('Your model was updated. Id={}. Url={}'.format(
3139
3204
  result.id, result.url))
3140
3205
  else:
@@ -3357,7 +3422,7 @@ class KaggleApi:
3357
3422
  folder = folder or os.getcwd()
3358
3423
  result = self.model_instance_create(folder, quiet, dir_mode)
3359
3424
 
3360
- if result.hasId:
3425
+ if result.id:
3361
3426
  print('Your model instance was created. Id={}. Url={}'.format(
3362
3427
  result.id, result.url))
3363
3428
  else:
@@ -3442,10 +3507,10 @@ class KaggleApi:
3442
3507
  next_page_token = response.next_page_token
3443
3508
  if next_page_token:
3444
3509
  print('Next Page Token = {}'.format(next_page_token))
3445
- return response
3510
+ return FileList.from_response(response)
3446
3511
  else:
3447
3512
  print('No files found')
3448
- return FileList({})
3513
+ return FileList({'files': [], 'nextPageToken': ''})
3449
3514
 
3450
3515
  def model_instance_files_cli(self,
3451
3516
  model_instance,
@@ -4635,6 +4700,20 @@ class FileList(object):
4635
4700
  else:
4636
4701
  self.nextPageToken = ""
4637
4702
 
4703
+ @staticmethod
4704
+ def from_response(response):
4705
+ inst = FileList({'files': [], 'nextPageToken': ''})
4706
+ inst.error_message = ''
4707
+ files = response.files
4708
+ if files:
4709
+ inst.files = [File(f) for f in files]
4710
+ else:
4711
+ inst.files = []
4712
+ token = response.next_page_token
4713
+ if token:
4714
+ inst.nextPageToken = token
4715
+ else:
4716
+ inst.nextPageToken = ""
4638
4717
  def __repr__(self):
4639
4718
  return ''
4640
4719
 
@@ -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
- parser_competitions_submit_required.add_argument(
248
- '-f', '--file', dest='file_name', required=True, help=Help.param_upfile)
249
- parser_competitions_submit_required.add_argument(
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,6 +758,7 @@ def parse_kernels(subparsers):
750
758
  parser_kernels_push_optional.add_argument(
751
759
  '-t',
752
760
  '--timeout',
761
+ type=int,
753
762
  dest='timeout')
754
763
  parser_kernels_push._action_groups.append(parser_kernels_push_optional)
755
764
  parser_kernels_push.set_defaults(func=api.kernels_push_cli)
@@ -889,7 +898,7 @@ def parse_models(subparsers):
889
898
  parser_models_list.add_argument(
890
899
  '--owner', dest='owner', required=False, help=Help.param_model_owner)
891
900
  parser_models_list.add_argument(
892
- '--page-size', dest='page_size', default=20, help=Help.param_page_size)
901
+ '--page-size', dest='page_size', default=20, type=int, help=Help.param_page_size)
893
902
  parser_models_list.add_argument(
894
903
  '--page-token',
895
904
  dest='page_token',
@@ -1056,7 +1065,7 @@ def parse_model_instances(subparsers):
1056
1065
  action='store_true',
1057
1066
  help=Help.param_csv)
1058
1067
  parser_model_instances_files_optional.add_argument(
1059
- '--page-size', dest='page_size', default=20, help=Help.param_page_size)
1068
+ '--page-size', dest='page_size', default=20, type=int, help=Help.param_page_size)
1060
1069
  parser_model_instances_files_optional.add_argument(
1061
1070
  '--page-token',
1062
1071
  dest='page_token',
@@ -1184,7 +1193,7 @@ def parse_model_instance_versions(subparsers):
1184
1193
  action='store_true',
1185
1194
  help=Help.param_csv)
1186
1195
  parser_model_instance_versions_files_optional.add_argument(
1187
- '--page-size', dest='page_size', default=20, help=Help.param_page_size)
1196
+ '--page-size', dest='page_size', default=20, type=int, help=Help.param_page_size)
1188
1197
  parser_model_instance_versions_files_optional.add_argument(
1189
1198
  '--page-token',
1190
1199
  dest='page_token',
@@ -1420,7 +1429,9 @@ class Help(object):
1420
1429
  param_delete_old_version = 'Delete old versions of this dataset'
1421
1430
  param_force = ('Skip check whether local version of file is up to date, force'
1422
1431
  ' file download')
1423
- param_upfile = 'File for upload (full path)'
1432
+ param_upfile = 'File for upload (full path), or the name of the output file produced by a kernel (for code competitions)'
1433
+ param_code_kernel = 'Name of kernel (notebook) to submit to a code competition'
1434
+ param_code_version = 'Version of kernel to submit to a code competition, e.g. "Version 1"'
1424
1435
  param_csv = 'Print results in CSV format (if not set print in table format)'
1425
1436
  param_page = 'Page number for results paging. Page size is 20 by default'
1426
1437
  # NOTE: Default and max page size are set by the mid-tier code.
@@ -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
- self.size = File.get_size(init_dict.total_bytes)
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
@@ -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: