Skip to content

Commit e1740ce

Browse files
authored
Final code changes for 1.7.4
1 parent 8f972fc commit e1740ce

File tree

10 files changed

+417
-363
lines changed

10 files changed

+417
-363
lines changed

kaggle/api/kaggle_api_extended.py

Lines changed: 38 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ def __repr__(self):
253253

254254

255255
class KaggleApi:
256-
__version__ = '1.7.3'
256+
__version__ = '1.7.4b4'
257257

258258
CONFIG_NAME_PROXY = 'proxy'
259259
CONFIG_NAME_COMPETITION = 'competition'
@@ -703,15 +703,15 @@ def lookup_enum(self, enum_class, item_name):
703703
except KeyError:
704704
prefix = self.camel_to_snake(enum_class.__name__).upper()
705705
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 enum_class.keys:
712-
if item.replace('_', '') == full_name:
713-
return enum_class[item]
714-
raise
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
715715

716716
def short_enum_name(self, value):
717717
full_name = str(value)
@@ -1728,8 +1728,14 @@ def dataset_download_cli(self,
17281728
dataset = dataset or dataset_opt
17291729

17301730
owner_slug, dataset_slug, _ = self.split_dataset_string(dataset)
1731-
metadata = self.process_response(
1732-
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
17331739

17341740
if 'info' in metadata and 'licenses' in metadata['info']:
17351741
# license_objs format is like: [{ 'name': 'CC0-1.0' }]
@@ -2360,10 +2366,6 @@ def kernels_list_files_cli(self,
23602366
print('No files found')
23612367
return
23622368

2363-
if result.error_message:
2364-
print(result.error_message)
2365-
return
2366-
23672369
next_page_token = result.nextPageToken
23682370
if next_page_token:
23692371
print('Next Page Token = {}'.format(next_page_token))
@@ -2892,9 +2894,9 @@ def model_get_cli(self, model, folder=None):
28922894
data['slug'] = model_ref_split[1]
28932895
data['title'] = model.title
28942896
data['subtitle'] = model.subtitle
2895-
data['isPrivate'] = model.isPrivate # TODO Test to ensure True default
2897+
data['isPrivate'] = model.is_private # TODO Test to ensure True default
28962898
data['description'] = model.description
2897-
data['publishTime'] = model.publishTime
2899+
data['publishTime'] = model.publish_time
28982900

28992901
with open(meta_file, 'w') as f:
29002902
json.dump(data, f, indent=2)
@@ -3073,7 +3075,7 @@ def model_create_new_cli(self, folder=None):
30733075
folder = folder or os.getcwd()
30743076
result = self.model_create_new(folder)
30753077

3076-
if result.hasId:
3078+
if result.id:
30773079
print('Your model was created. Id={}. Url={}'.format(
30783080
result.id, result.url))
30793081
else:
@@ -3197,7 +3199,7 @@ def model_update_cli(self, folder=None):
31973199
folder = folder or os.getcwd()
31983200
result = self.model_update(folder)
31993201

3200-
if result.hasId:
3202+
if result.id:
32013203
print('Your model was updated. Id={}. Url={}'.format(
32023204
result.id, result.url))
32033205
else:
@@ -3420,7 +3422,7 @@ def model_instance_create_cli(self, folder, quiet=False, dir_mode='skip'):
34203422
folder = folder or os.getcwd()
34213423
result = self.model_instance_create(folder, quiet, dir_mode)
34223424

3423-
if result.hasId:
3425+
if result.id:
34243426
print('Your model instance was created. Id={}. Url={}'.format(
34253427
result.id, result.url))
34263428
else:
@@ -3505,7 +3507,7 @@ def model_instance_files(self,
35053507
next_page_token = response.next_page_token
35063508
if next_page_token:
35073509
print('Next Page Token = {}'.format(next_page_token))
3508-
return response
3510+
return FileList.from_response(response)
35093511
else:
35103512
print('No files found')
35113513
return FileList({})
@@ -4698,6 +4700,20 @@ def __init__(self, init_dict):
46984700
else:
46994701
self.nextPageToken = ""
47004702

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 = ""
47014717
def __repr__(self):
47024718
return ''
47034719

kaggle/cli.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ def parse_competitions(subparsers):
136136
'--page',
137137
dest='page',
138138
default=1,
139+
type=int,
139140
required=False,
140141
help=Help.param_page)
141142
parser_competitions_list_optional.add_argument(
@@ -183,6 +184,7 @@ def parse_competitions(subparsers):
183184
dest='page_size',
184185
required=False,
185186
default=20,
187+
type=int,
186188
help=Help.param_page_size)
187189
parser_competitions_files._action_groups.append(
188190
parser_competitions_files_optional)
@@ -360,7 +362,7 @@ def parse_datasets(subparsers):
360362
required=False,
361363
help=Help.param_dataset_sort_by)
362364
parser_datasets_list.add_argument(
363-
'--size', dest='size', required=False, help=Help.param_dataset_size)
365+
'--size', dest='size', type=int, required=False, help=Help.param_dataset_size)
364366
parser_datasets_list.add_argument(
365367
'--file-type',
366368
dest='file_type',
@@ -384,6 +386,7 @@ def parse_datasets(subparsers):
384386
'--page',
385387
dest='page',
386388
default=1,
389+
type=int,
387390
required=False,
388391
help=Help.param_page)
389392
parser_datasets_list.add_argument(
@@ -396,11 +399,13 @@ def parse_datasets(subparsers):
396399
'--max-size',
397400
dest='max_size',
398401
required=False,
402+
type=int,
399403
help=Help.param_dataset_maxsize)
400404
parser_datasets_list.add_argument(
401405
'--min-size',
402406
dest='min_size',
403407
required=False,
408+
type=int,
404409
help=Help.param_dataset_minsize)
405410
parser_datasets_list._action_groups.append(parser_datasets_list_optional)
406411
parser_datasets_list.set_defaults(func=api.dataset_list_cli)
@@ -435,6 +440,7 @@ def parse_datasets(subparsers):
435440
dest='page_size',
436441
required=False,
437442
default=20,
443+
type=int,
438444
help=Help.param_page_size)
439445
parser_datasets_files._action_groups.append(parser_datasets_files_optional)
440446
parser_datasets_files.set_defaults(func=api.dataset_list_files_cli)
@@ -647,9 +653,9 @@ def parse_kernels(subparsers):
647653
parser_kernels_list_optional.add_argument(
648654
'-m', '--mine', dest='mine', action='store_true', help=Help.param_mine)
649655
parser_kernels_list_optional.add_argument(
650-
'-p', '--page', dest='page', default=1, help=Help.param_page)
656+
'-p', '--page', dest='page', default=1, type=int, help=Help.param_page)
651657
parser_kernels_list_optional.add_argument(
652-
'--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)
653659
parser_kernels_list_optional.add_argument(
654660
'-s', '--search', dest='search', help=Help.param_search)
655661
parser_kernels_list_optional.add_argument(
@@ -718,7 +724,7 @@ def parse_kernels(subparsers):
718724
parser_kernels_files_optional.add_argument(
719725
'--page-token', dest='page_token', help=Help.param_page_token)
720726
parser_kernels_files_optional.add_argument(
721-
'--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)
722728
parser_kernels_files._action_groups.append(parser_kernels_files_optional)
723729
parser_kernels_files.set_defaults(func=api.kernels_list_files_cli)
724730

@@ -752,6 +758,7 @@ def parse_kernels(subparsers):
752758
parser_kernels_push_optional.add_argument(
753759
'-t',
754760
'--timeout',
761+
type=int,
755762
dest='timeout')
756763
parser_kernels_push._action_groups.append(parser_kernels_push_optional)
757764
parser_kernels_push.set_defaults(func=api.kernels_push_cli)
@@ -891,7 +898,7 @@ def parse_models(subparsers):
891898
parser_models_list.add_argument(
892899
'--owner', dest='owner', required=False, help=Help.param_model_owner)
893900
parser_models_list.add_argument(
894-
'--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)
895902
parser_models_list.add_argument(
896903
'--page-token',
897904
dest='page_token',
@@ -1058,7 +1065,7 @@ def parse_model_instances(subparsers):
10581065
action='store_true',
10591066
help=Help.param_csv)
10601067
parser_model_instances_files_optional.add_argument(
1061-
'--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)
10621069
parser_model_instances_files_optional.add_argument(
10631070
'--page-token',
10641071
dest='page_token',
@@ -1186,7 +1193,7 @@ def parse_model_instance_versions(subparsers):
11861193
action='store_true',
11871194
help=Help.param_csv)
11881195
parser_model_instance_versions_files_optional.add_argument(
1189-
'--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)
11901197
parser_model_instance_versions_files_optional.add_argument(
11911198
'--page-token',
11921199
dest='page_token',

kaggle/models/kaggle_models_extended.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,10 @@ def __init__(self, init_dict):
120120
except AttributeError:
121121
self.name = init_dict.name
122122
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:
126+
self.size = File.get_size(init_dict.size)
124127

125128
def __repr__(self):
126129
return self.name

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
# https://packaging.python.org/en/latest/guides/modernize-setup-py-project/
1010
setup(
1111
name='kaggle',
12-
version='1.7.3',
12+
version='1.7.4b4',
1313
description='Kaggle API',
1414
long_description=(
1515
'Official API for https://www.kaggle.com, accessible using a command line '

src/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "1.7.3"
1+
__version__ = "1.7.4b4"

0 commit comments

Comments
 (0)