kaggle 1.7.3b1__py3-none-any.whl

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 (89) hide show
  1. kaggle/LICENSE +201 -0
  2. kaggle/__init__.py +6 -0
  3. kaggle/api/__init__.py +0 -0
  4. kaggle/api/kaggle_api.py +614 -0
  5. kaggle/api/kaggle_api_extended.py +4657 -0
  6. kaggle/cli.py +1606 -0
  7. kaggle/configuration.py +206 -0
  8. kaggle/models/__init__.py +0 -0
  9. kaggle/models/api_blob_type.py +4 -0
  10. kaggle/models/dataset_column.py +228 -0
  11. kaggle/models/dataset_new_request.py +385 -0
  12. kaggle/models/dataset_new_version_request.py +287 -0
  13. kaggle/models/dataset_update_settings_request.py +310 -0
  14. kaggle/models/kaggle_models_extended.py +276 -0
  15. kaggle/models/kernel_push_request.py +556 -0
  16. kaggle/models/model_instance_new_version_request.py +145 -0
  17. kaggle/models/model_instance_update_request.py +351 -0
  18. kaggle/models/model_new_instance_request.py +417 -0
  19. kaggle/models/model_new_request.py +314 -0
  20. kaggle/models/model_update_request.py +282 -0
  21. kaggle/models/start_blob_upload_request.py +232 -0
  22. kaggle/models/start_blob_upload_response.py +137 -0
  23. kaggle/models/upload_file.py +169 -0
  24. kaggle/test/__init__.py +0 -0
  25. kaggle/test/test_authenticate.py +43 -0
  26. kaggle-1.7.3b1.dist-info/METADATA +348 -0
  27. kaggle-1.7.3b1.dist-info/RECORD +89 -0
  28. kaggle-1.7.3b1.dist-info/WHEEL +4 -0
  29. kaggle-1.7.3b1.dist-info/entry_points.txt +2 -0
  30. kaggle-1.7.3b1.dist-info/licenses/LICENSE.txt +201 -0
  31. kagglesdk/LICENSE +201 -0
  32. kagglesdk/__init__.py +2 -0
  33. kagglesdk/admin/__init__.py +0 -0
  34. kagglesdk/admin/services/__init__.py +0 -0
  35. kagglesdk/admin/services/inbox_file_service.py +22 -0
  36. kagglesdk/admin/types/__init__.py +0 -0
  37. kagglesdk/admin/types/inbox_file_service.py +74 -0
  38. kagglesdk/blobs/__init__.py +0 -0
  39. kagglesdk/blobs/services/__init__.py +0 -0
  40. kagglesdk/blobs/services/blob_api_service.py +25 -0
  41. kagglesdk/blobs/types/__init__.py +0 -0
  42. kagglesdk/blobs/types/blob_api_service.py +177 -0
  43. kagglesdk/common/__init__.py +0 -0
  44. kagglesdk/common/types/__init__.py +0 -0
  45. kagglesdk/common/types/file_download.py +102 -0
  46. kagglesdk/common/types/http_redirect.py +105 -0
  47. kagglesdk/competitions/__init__.py +0 -0
  48. kagglesdk/competitions/services/__init__.py +0 -0
  49. kagglesdk/competitions/services/competition_api_service.py +129 -0
  50. kagglesdk/competitions/types/__init__.py +0 -0
  51. kagglesdk/competitions/types/competition_api_service.py +1874 -0
  52. kagglesdk/competitions/types/competition_enums.py +53 -0
  53. kagglesdk/competitions/types/submission_status.py +9 -0
  54. kagglesdk/datasets/__init__.py +0 -0
  55. kagglesdk/datasets/services/__init__.py +0 -0
  56. kagglesdk/datasets/services/dataset_api_service.py +170 -0
  57. kagglesdk/datasets/types/__init__.py +0 -0
  58. kagglesdk/datasets/types/dataset_api_service.py +2777 -0
  59. kagglesdk/datasets/types/dataset_enums.py +82 -0
  60. kagglesdk/datasets/types/dataset_types.py +646 -0
  61. kagglesdk/education/__init__.py +0 -0
  62. kagglesdk/education/services/__init__.py +0 -0
  63. kagglesdk/education/services/education_api_service.py +19 -0
  64. kagglesdk/education/types/__init__.py +0 -0
  65. kagglesdk/education/types/education_api_service.py +248 -0
  66. kagglesdk/education/types/education_service.py +139 -0
  67. kagglesdk/kaggle_client.py +66 -0
  68. kagglesdk/kaggle_env.py +42 -0
  69. kagglesdk/kaggle_http_client.py +316 -0
  70. kagglesdk/kaggle_object.py +293 -0
  71. kagglesdk/kernels/__init__.py +0 -0
  72. kagglesdk/kernels/services/__init__.py +0 -0
  73. kagglesdk/kernels/services/kernels_api_service.py +109 -0
  74. kagglesdk/kernels/types/__init__.py +0 -0
  75. kagglesdk/kernels/types/kernels_api_service.py +1951 -0
  76. kagglesdk/kernels/types/kernels_enums.py +33 -0
  77. kagglesdk/models/__init__.py +0 -0
  78. kagglesdk/models/services/__init__.py +0 -0
  79. kagglesdk/models/services/model_api_service.py +255 -0
  80. kagglesdk/models/services/model_service.py +19 -0
  81. kagglesdk/models/types/__init__.py +0 -0
  82. kagglesdk/models/types/model_api_service.py +3719 -0
  83. kagglesdk/models/types/model_enums.py +60 -0
  84. kagglesdk/models/types/model_service.py +275 -0
  85. kagglesdk/models/types/model_types.py +286 -0
  86. kagglesdk/test/test_client.py +45 -0
  87. kagglesdk/users/__init__.py +0 -0
  88. kagglesdk/users/types/__init__.py +0 -0
  89. kagglesdk/users/types/users_enums.py +22 -0
@@ -0,0 +1,206 @@
1
+ #!/usr/bin/python
2
+ #
3
+ # Copyright 2024 Kaggle Inc
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # coding: utf-8
18
+ from __future__ import absolute_import
19
+
20
+ import logging
21
+ import six
22
+ import sys
23
+ import urllib3
24
+
25
+
26
+ class Configuration:
27
+
28
+ def __init__(self):
29
+ """Constructor"""
30
+ # Default Base url
31
+ self.host = _get_endpoint_from_env() or "https://www.kaggle.com/api/v1"
32
+
33
+ # Authentication Settings
34
+ # dict to store API key(s)
35
+ self.api_key = {}
36
+ # dict to store API prefix (e.g. Bearer)
37
+ self.api_key_prefix = {}
38
+ # Username for HTTP basic authentication
39
+ self.username = ""
40
+ # Password for HTTP basic authentication
41
+ self.password = ""
42
+
43
+ # Logging Settings
44
+ self.logger = {
45
+ "package_logger": logging.getLogger("kaggle"),
46
+ "urllib3_logger": logging.getLogger("urllib3")
47
+ }
48
+ # Log format
49
+ self.logger_format = '%(asctime)s %(levelname)s %(message)s'
50
+ # Log stream handler
51
+ self.logger_stream_handler = None
52
+ # Log file handler
53
+ self.logger_file_handler = None
54
+ # Debug file location
55
+ self.logger_file = None
56
+ # Debug switch
57
+ self.debug = False
58
+
59
+ @property
60
+ def logger_file(self):
61
+ """The logger file.
62
+
63
+ If the logger_file is None, then add stream handler and remove file
64
+ handler. Otherwise, add file handler and remove stream handler.
65
+
66
+ :param value: The logger_file path.
67
+ :type: str
68
+ """
69
+ return self.__logger_file
70
+
71
+ @logger_file.setter
72
+ def logger_file(self, value):
73
+ """The logger file.
74
+
75
+ If the logger_file is None, then add stream handler and remove file
76
+ handler. Otherwise, add file handler and remove stream handler.
77
+
78
+ :param value: The logger_file path.
79
+ :type: str
80
+ """
81
+ self.__logger_file = value
82
+ if self.__logger_file:
83
+ # If set logging file,
84
+ # then add file handler and remove stream handler.
85
+ self.logger_file_handler = logging.FileHandler(self.__logger_file)
86
+ self.logger_file_handler.setFormatter(self.logger_formatter)
87
+ for _, logger in six.iteritems(self.logger):
88
+ logger.addHandler(self.logger_file_handler)
89
+ if self.logger_stream_handler:
90
+ logger.removeHandler(self.logger_stream_handler)
91
+ else:
92
+ # If not set logging file,
93
+ # then add stream handler and remove file handler.
94
+ self.logger_stream_handler = logging.StreamHandler()
95
+ self.logger_stream_handler.setFormatter(self.logger_formatter)
96
+ for _, logger in six.iteritems(self.logger):
97
+ logger.addHandler(self.logger_stream_handler)
98
+ if self.logger_file_handler:
99
+ logger.removeHandler(self.logger_file_handler)
100
+
101
+ @property
102
+ def debug(self):
103
+ """Debug status
104
+
105
+ :param value: The debug status, True or False.
106
+ :type: bool
107
+ """
108
+ return self.__debug
109
+
110
+ @debug.setter
111
+ def debug(self, value):
112
+ """Debug status
113
+
114
+ :param value: The debug status, True or False.
115
+ :type: bool
116
+ """
117
+ self.__debug = value
118
+ if self.__debug:
119
+ # if debug status is True, turn on debug logging
120
+ for _, logger in six.iteritems(self.logger):
121
+ logger.setLevel(logging.DEBUG)
122
+ else:
123
+ # if debug status is False, turn off debug logging,
124
+ # setting log level to default `logging.WARNING`
125
+ for _, logger in six.iteritems(self.logger):
126
+ logger.setLevel(logging.WARNING)
127
+
128
+ @property
129
+ def logger_format(self):
130
+ """The logger format.
131
+
132
+ The logger_formatter will be updated when sets logger_format.
133
+
134
+ :param value: The format string.
135
+ :type: str
136
+ """
137
+ return self.__logger_format
138
+
139
+ @logger_format.setter
140
+ def logger_format(self, value):
141
+ """The logger format.
142
+
143
+ The logger_formatter will be updated when sets logger_format.
144
+
145
+ :param value: The format string.
146
+ :type: str
147
+ """
148
+ self.__logger_format = value
149
+ self.logger_formatter = logging.Formatter(self.__logger_format)
150
+
151
+ def get_api_key_with_prefix(self, identifier):
152
+ """Gets API key (with prefix if set).
153
+
154
+ :param identifier: The identifier of apiKey.
155
+ :return: The token for api key authentication.
156
+ """
157
+ if (self.api_key.get(identifier) and self.api_key_prefix.get(identifier)):
158
+ return self.api_key_prefix[identifier] + ' ' + self.api_key[
159
+ identifier] # noqa: E501
160
+ elif self.api_key.get(identifier):
161
+ return self.api_key[identifier]
162
+
163
+ def get_basic_auth_token(self):
164
+ """Gets HTTP basic authentication header (string).
165
+
166
+ :return: The token for basic HTTP authentication.
167
+ """
168
+ return urllib3.util.make_headers(basic_auth=self.username + ':' +
169
+ self.password).get('authorization')
170
+
171
+ def auth_settings(self):
172
+ """Gets Auth Settings dict for api client.
173
+
174
+ :return: The Auth Settings information dict.
175
+ """
176
+ return {
177
+ 'basicAuth': {
178
+ 'type': 'basic',
179
+ 'in': 'header',
180
+ 'key': 'Authorization',
181
+ 'value': self.get_basic_auth_token()
182
+ },
183
+ }
184
+
185
+ def to_debug_report(self):
186
+ """Gets the essential information for debugging.
187
+
188
+ :return: The report for debugging.
189
+ """
190
+ return "Python SDK Debug Report:\n" \
191
+ "OS: {env}\n" \
192
+ "Python Version: {pyversion}\n" \
193
+ "Version of the API: 1\n" \
194
+ "SDK Package Version: 1". \
195
+ format(env=sys.platform, pyversion=sys.version)
196
+
197
+
198
+ def _get_endpoint_from_env():
199
+ import os
200
+ endpoint = os.environ.get("KAGGLE_API_ENDPOINT")
201
+ if endpoint is None:
202
+ return None
203
+ endpoint = endpoint.rstrip("/")
204
+ if endpoint.endswith("/api/v1"):
205
+ return endpoint
206
+ return endpoint + "/api/v1"
File without changes
@@ -0,0 +1,4 @@
1
+ class ApiBlobType(object):
2
+ DATASET = "dataset"
3
+ MODEL = "model"
4
+ INBOX = "inbox"
@@ -0,0 +1,228 @@
1
+ #!/usr/bin/python
2
+ #
3
+ # Copyright 2024 Kaggle Inc
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # coding: utf-8
18
+
19
+ import pprint
20
+ import re # noqa: F401
21
+
22
+ import six
23
+
24
+
25
+ class DatasetColumn(object):
26
+ """
27
+ Attributes:
28
+ column_types (dict): The key is attribute name
29
+ and the value is attribute type.
30
+ attribute_map (dict): The key is attribute name
31
+ and the value is json key in definition.
32
+ """
33
+ column_types = {
34
+ 'order': 'float',
35
+ 'name': 'str',
36
+ 'type': 'str',
37
+ 'original_type': 'str',
38
+ 'description': 'str'
39
+ }
40
+
41
+ attribute_map = {
42
+ 'order': 'order',
43
+ 'name': 'name',
44
+ 'type': 'type',
45
+ 'original_type': 'originalType',
46
+ 'description': 'description'
47
+ }
48
+
49
+ def __init__(self,
50
+ order=None,
51
+ name=None,
52
+ type=None,
53
+ original_type=None,
54
+ description=None): # noqa: E501
55
+ """DatasetColumn - a model defined in Swagger""" # noqa: E501
56
+
57
+ self._order = None
58
+ self._name = None
59
+ self._type = None
60
+ self._original_type = None
61
+ self._description = None
62
+ self.discriminator = None
63
+
64
+ if order is not None:
65
+ self.order = order
66
+ if name is not None:
67
+ self.name = name
68
+ if type is not None:
69
+ self.type = type
70
+ if original_type is not None:
71
+ self.original_type = original_type
72
+ if description is not None:
73
+ self.description = description
74
+
75
+ @property
76
+ def order(self):
77
+ """Gets the order of this DatasetColumn. # noqa: E501
78
+
79
+ The order that the column comes in, 0-based. (The first column is 0, second is 1, etc.) # noqa: E501
80
+
81
+ :return: The order of this DatasetColumn. # noqa: E501
82
+ :rtype: float
83
+ """
84
+ return self._order
85
+
86
+ @order.setter
87
+ def order(self, order):
88
+ """Sets the order of this DatasetColumn.
89
+
90
+ The order that the column comes in, 0-based. (The first column is 0, second is 1, etc.) # noqa: E501
91
+
92
+ :param order: The order of this DatasetColumn. # noqa: E501
93
+ :type: float
94
+ """
95
+
96
+ self._order = order
97
+
98
+ @property
99
+ def name(self):
100
+ """Gets the name of this DatasetColumn. # noqa: E501
101
+
102
+ The column name # noqa: E501
103
+
104
+ :return: The name of this DatasetColumn. # noqa: E501
105
+ :rtype: str
106
+ """
107
+ return self._name
108
+
109
+ @name.setter
110
+ def name(self, name):
111
+ """Sets the name of this DatasetColumn.
112
+
113
+ The column name # noqa: E501
114
+
115
+ :param name: The name of this DatasetColumn. # noqa: E501
116
+ :type: str
117
+ """
118
+
119
+ self._name = name
120
+
121
+ @property
122
+ def type(self):
123
+ """Gets the type of this DatasetColumn. # noqa: E501
124
+
125
+ The type of all of the fields in the column. Please see the data types on https://github.com/Kaggle/kaggle-api/wiki/Dataset-Metadata # noqa: E501
126
+
127
+ :return: The type of this DatasetColumn. # noqa: E501
128
+ :rtype: str
129
+ """
130
+ return self._type
131
+
132
+ @type.setter
133
+ def type(self, type):
134
+ """Sets the type of this DatasetColumn.
135
+
136
+ The type of all of the fields in the column. Please see the data types on https://github.com/Kaggle/kaggle-api/wiki/Dataset-Metadata # noqa: E501
137
+
138
+ :param type: The type of this DatasetColumn. # noqa: E501
139
+ :type: str
140
+ """
141
+
142
+ self._type = type
143
+
144
+ @property
145
+ def original_type(self):
146
+ """Gets the original_type of this DatasetColumn. # noqa: E501
147
+
148
+ Used to store the original type of the column, which will be converted to Kaggle's types. For example, an `originalType` of `\"integer\"` would convert to a `type` of `\"numeric\"` # noqa: E501
149
+
150
+ :return: The original_type of this DatasetColumn. # noqa: E501
151
+ :rtype: str
152
+ """
153
+ return self._original_type
154
+
155
+ @original_type.setter
156
+ def original_type(self, original_type):
157
+ """Sets the original_type of this DatasetColumn.
158
+
159
+ Used to store the original type of the column, which will be converted to Kaggle's types. For example, an `originalType` of `\"integer\"` would convert to a `type` of `\"numeric\"` # noqa: E501
160
+
161
+ :param original_type: The original_type of this DatasetColumn. # noqa: E501
162
+ :type: str
163
+ """
164
+
165
+ self._original_type = original_type
166
+
167
+ @property
168
+ def description(self):
169
+ """Gets the description of this DatasetColumn. # noqa: E501
170
+
171
+ The description of the column # noqa: E501
172
+
173
+ :return: The description of this DatasetColumn. # noqa: E501
174
+ :rtype: str
175
+ """
176
+ return self._description
177
+
178
+ @description.setter
179
+ def description(self, description):
180
+ """Sets the description of this DatasetColumn.
181
+
182
+ The description of the column # noqa: E501
183
+
184
+ :param description: The description of this DatasetColumn. # noqa: E501
185
+ :type: str
186
+ """
187
+
188
+ self._description = description
189
+
190
+ def to_dict(self):
191
+ """Returns the model properties as a dict"""
192
+ result = {}
193
+
194
+ for attr, _ in six.iteritems(self.column_types):
195
+ value = getattr(self, attr)
196
+ if isinstance(value, list):
197
+ result[attr] = list(
198
+ map(lambda x: x.to_dict() if hasattr(x, "to_dict") else x, value))
199
+ elif hasattr(value, "to_dict"):
200
+ result[attr] = value.to_dict()
201
+ elif isinstance(value, dict):
202
+ result[attr] = dict(
203
+ map(
204
+ lambda item: (item[0], item[1].to_dict())
205
+ if hasattr(item[1], "to_dict") else item, value.items()))
206
+ else:
207
+ result[attr] = value
208
+
209
+ return result
210
+
211
+ def to_str(self):
212
+ """Returns the string representation of the model"""
213
+ return pprint.pformat(self.to_dict())
214
+
215
+ def __repr__(self):
216
+ """For `print` and `pprint`"""
217
+ return self.to_str()
218
+
219
+ def __eq__(self, other):
220
+ """Returns true if both objects are equal"""
221
+ if not isinstance(other, DatasetColumn):
222
+ return False
223
+
224
+ return self.__dict__ == other.__dict__
225
+
226
+ def __ne__(self, other):
227
+ """Returns true if both objects are not equal"""
228
+ return not self == other