提交 a716355c 编写于 作者: S Seungwon Jeong 提交者: Nikita Manovich

Add upload annotation function to cli (#958)

* add upload annotation function to cli

* Update core.py

Removing whitespace
上级 e1c1a1b1
......@@ -23,7 +23,8 @@ def main():
'delete': CLI.tasks_delete,
'ls': CLI.tasks_list,
'frames': CLI.tasks_frame,
'dump': CLI.tasks_dump}
'dump': CLI.tasks_dump,
'upload': CLI.tasks_upload}
args = parser.parse_args()
config_log(args.loglevel)
with requests.Session() as session:
......
......@@ -112,6 +112,22 @@ class CLI():
with open(filename, 'wb') as fp:
fp.write(response.content)
def tasks_upload(self, task_id, fileformat, filename, **kwargs):
""" Upload annotations for a task in the specified format
(e.g. 'YOLO ZIP 1.0')."""
url = self.api.tasks_id_annotations_format(task_id, fileformat)
while True:
response = self.session.put(
url,
files={'annotation_file':open(filename, 'rb')}
)
response.raise_for_status()
if response.status_code == 201:
break
log.info('Upload job for Task ID {} \
with annotation file {} finished'.format(task_id, filename))
class CVAT_API_V1():
""" Build parameterized API URLs """
......@@ -135,6 +151,10 @@ class CVAT_API_V1():
def tasks_id_frame_id(self, task_id, frame_id):
return self.tasks_id(task_id) + '/frames/{}'.format(frame_id)
def tasks_id_annotations_format(self, task_id, fileformat):
return self.tasks_id(task_id) + '/annotations?format={}' \
.format(fileformat)
def tasks_id_annotations_filename(self, task_id, name, fileformat):
return self.tasks_id(task_id) + '/annotations/{}?format={}' \
.format(name, fileformat)
......@@ -208,3 +208,29 @@ dump_parser.add_argument(
default='CVAT XML 1.1 for images',
help='annotation format (default: %(default)s)'
)
#######################################################################
# Upload Annotations
#######################################################################
upload_parser = task_subparser.add_parser(
'upload',
description='Upload annotations for a CVAT task.'
)
upload_parser.add_argument(
'task_id',
type=int,
help='task ID'
)
upload_parser.add_argument(
'filename',
type=str,
help='upload file'
)
upload_parser.add_argument(
'--format',
dest='fileformat',
type=str,
default='CVAT XML 1.1',
help='annotation format (default: %(default)s)'
)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册