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
-
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
17
#!/usr/bin/python
18
18
#
19
19
# Copyright 2019 Kaggle Inc
32
32
33
33
# coding=utf-8
34
34
from __future__ import print_function
35
+
35
36
import csv
36
- from datetime import datetime
37
37
import io
38
- import json
39
38
import os
40
- from os .path import expanduser
41
- from random import random
42
- import sys
43
39
import shutil
40
+ import sys
44
41
import tarfile
42
+ import tempfile
45
43
import time
46
44
import zipfile
47
- import tempfile
45
+ from os .path import expanduser
46
+ from random import random
47
+
48
+ import bleach
49
+ import requests
50
+ import urllib3 .exceptions as urllib3_exceptions
51
+ from requests .adapters import HTTPAdapter
52
+ from slugify import slugify
53
+ from tqdm import tqdm
54
+ from urllib3 .util .retry import Retry
48
55
56
+ from kaggle .configuration import Configuration
57
+ from kagglesdk import KaggleClient , KaggleEnv
58
+ from kagglesdk .competitions .types .competition_api_service import *
49
59
from kagglesdk .datasets .types .dataset_api_service import ApiListDatasetsRequest , ApiListDatasetFilesRequest , \
50
60
ApiGetDatasetStatusRequest , ApiDownloadDatasetRequest , ApiCreateDatasetRequest , ApiCreateDatasetVersionRequestBody , \
51
61
ApiCreateDatasetVersionByIdRequest , ApiCreateDatasetVersionRequest , ApiDatasetNewFile
52
62
from kagglesdk .datasets .types .dataset_enums import DatasetSelectionGroup , DatasetSortBy
53
- from ..api_client import ApiClient
54
- from kaggle .configuration import Configuration
55
63
from .kaggle_api import KaggleApi
64
+ from ..api_client import ApiClient
56
65
from ..models .api_blob_type import ApiBlobType
57
66
from ..models .collaborator import Collaborator
58
67
from ..models .create_inbox_file_request import CreateInboxFileRequest
59
68
from ..models .dataset_column import DatasetColumn
60
69
from ..models .dataset_new_request import DatasetNewRequest
61
- from ..models .dataset_new_version_request import DatasetNewVersionRequest
62
70
from ..models .dataset_update_settings_request import DatasetUpdateSettingsRequest
63
- from ..models .kaggle_models_extended import Competition
64
- from ..models .kaggle_models_extended import Dataset
65
71
from ..models .kaggle_models_extended import DatasetNewResponse
66
72
from ..models .kaggle_models_extended import DatasetNewVersionResponse
67
73
from ..models .kaggle_models_extended import File
68
74
from ..models .kaggle_models_extended import Kernel
69
75
from ..models .kaggle_models_extended import KernelPushResponse
70
- from ..models .kaggle_models_extended import LeaderboardEntry
71
76
from ..models .kaggle_models_extended import ListFilesResult
72
77
from ..models .kaggle_models_extended import Metadata
73
78
from ..models .kaggle_models_extended import Model
74
- from ..models .kaggle_models_extended import ModelNewResponse
75
79
from ..models .kaggle_models_extended import ModelDeleteResponse
80
+ from ..models .kaggle_models_extended import ModelNewResponse
76
81
from ..models .kaggle_models_extended import ResumableUploadResult
77
- from ..models .kaggle_models_extended import Submission
78
- from ..models .kaggle_models_extended import SubmitResult
79
82
from ..models .kernel_push_request import KernelPushRequest
80
83
from ..models .license import License
81
- from ..models .model_new_request import ModelNewRequest
82
- from ..models .model_new_instance_request import ModelNewInstanceRequest
83
84
from ..models .model_instance_new_version_request import ModelInstanceNewVersionRequest
84
- from ..models .model_update_request import ModelUpdateRequest
85
85
from ..models .model_instance_update_request import ModelInstanceUpdateRequest
86
+ from ..models .model_new_instance_request import ModelNewInstanceRequest
87
+ from ..models .model_new_request import ModelNewRequest
88
+ from ..models .model_update_request import ModelUpdateRequest
86
89
from ..models .start_blob_upload_request import StartBlobUploadRequest
87
90
from ..models .start_blob_upload_response import StartBlobUploadResponse
88
91
from ..models .upload_file import UploadFile
89
- import requests
90
- from requests .adapters import HTTPAdapter
91
- import requests .packages .urllib3 .exceptions as urllib3_exceptions
92
- from requests .packages .urllib3 .util .retry import Retry
93
92
from ..rest import ApiException
94
- import six
95
- from slugify import slugify
96
- from tqdm import tqdm
97
- import bleach
98
- import time
99
-
100
- from kagglesdk import KaggleClient , KaggleEnv
101
- from kagglesdk .competitions .types .competition_api_service import *
102
-
103
- try :
104
- unicode # Python 2
105
- except NameError :
106
- unicode = str # Python 3
107
93
108
94
109
95
class DirectoryArchive (object ):
@@ -375,11 +361,6 @@ class KaggleApi(KaggleApi):
375
361
]
376
362
dataset_file_fields = ['name' , 'size' , 'creationDate' ]
377
363
378
- # Hack for https://github.com/Kaggle/kaggle-api/issues/22 / b/78194015
379
- if six .PY2 :
380
- reload (sys )
381
- sys .setdefaultencoding ('latin1' )
382
-
383
364
def _is_retriable (self , e ):
384
365
return issubclass (type (e ), ConnectionError ) or \
385
366
issubclass (type (e ), urllib3_exceptions .ConnectionError ) or \
@@ -1770,12 +1751,12 @@ def dataset_create_version(self,
1770
1751
keywords = self .get_or_default (meta_data , 'keywords' , [])
1771
1752
1772
1753
body = ApiCreateDatasetVersionRequestBody ()
1773
- body .version_notes = version_notes
1774
- body .subtitle = subtitle
1775
- body .description = description
1776
- body .files = []
1777
- body .category_ids = keywords
1778
- body .delete_old_versions = delete_old_versions
1754
+ body .version_notes = version_notes
1755
+ body .subtitle = subtitle
1756
+ body .description = description
1757
+ body .files = []
1758
+ body .category_ids = keywords
1759
+ body .delete_old_versions = delete_old_versions
1779
1760
1780
1761
with self .build_kaggle_client () as kaggle :
1781
1762
if id_no :
@@ -3930,7 +3911,7 @@ def print_csv(self, items, fields, labels=None):
3930
3911
writer .writerow (i_fields )
3931
3912
3932
3913
def string (self , item ):
3933
- return item if isinstance (item , unicode ) else str (item )
3914
+ return item if isinstance (item , str ) else str (item )
3934
3915
3935
3916
def get_or_fail (self , data , key ):
3936
3917
if key in data :
@@ -4168,7 +4149,8 @@ def upload_complete(self, path, url, quiet, resume=False):
4168
4149
4169
4150
try :
4170
4151
if resume :
4171
- resumable_upload_result = self ._resume_upload (url , file_size , quiet )
4152
+ resumable_upload_result = self ._resume_upload (path , url , file_size ,
4153
+ quiet )
4172
4154
if resumable_upload_result .result != ResumableUploadResult .INCOMPLETE :
4173
4155
return resumable_upload_result .result
4174
4156
@@ -4209,7 +4191,7 @@ def upload_complete(self, path, url, quiet, resume=False):
4209
4191
# in case it works on the next try.
4210
4192
return ResumableUploadResult .INCOMPLETE
4211
4193
4212
- def _resume_upload (self , url , content_length , quiet ):
4194
+ def _resume_upload (self , path , url , content_length , quiet ):
4213
4195
# Documentation: https://developers.google.com/drive/api/guides/manage-uploads#resume-upload
4214
4196
session = requests .Session ()
4215
4197
session .headers .update ({
@@ -4223,7 +4205,7 @@ def _resume_upload(self, url, content_length, quiet):
4223
4205
return ResumableUploadResult .Complete ()
4224
4206
if response .status_code == 404 :
4225
4207
# Upload expired so need to start from scratch.
4226
- if not query :
4208
+ if not quiet :
4227
4209
print ('Upload of %s expired. Please try again.' % path )
4228
4210
return ResumableUploadResult .Failed ()
4229
4211
if response .status_code == 308 : # Resume Incomplete
0 commit comments