Skip to content

Commit aec8f8e

Browse files
committed
Fix argument order copy_images
1 parent e8fb0ea commit aec8f8e

File tree

3 files changed

+32
-22
lines changed

3 files changed

+32
-22
lines changed

superannotate/db/project_images.py

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ def _copy_images(
137137
source_project, destination_project, image_names, include_annotations,
138138
copy_annotation_status, copy_pin
139139
):
140+
NUM_TO_SEND = 500
140141
source_project, source_project_folder = source_project
141142
destination_project, destination_project_folder = destination_project
142143
if source_project["id"] != destination_project["id"]:
@@ -149,18 +150,27 @@ def _copy_images(
149150
"project_id": source_project["id"]
150151
}
151152
json_req = {
152-
"image_names": image_names,
153153
"destination_folder_id": destination_project_folder["id"],
154154
"source_folder_name": source_project_folder["name"]
155155
}
156-
response = _api.send_request(
157-
req_type='POST', path='/image/copy', params=params, json_req=json_req
158-
)
159-
if not response.ok:
160-
raise SABaseException(
161-
response.status_code, "Couldn't copy images " + response.text
156+
res = {}
157+
res['skipped'] = 0
158+
for start_index in range(0, len(image_names), NUM_TO_SEND):
159+
json_req["image_names"] = image_names[start_index:start_index +
160+
NUM_TO_SEND]
161+
response = _api.send_request(
162+
req_type='POST',
163+
path='/image/copy',
164+
params=params,
165+
json_req=json_req
162166
)
163167

168+
if not response.ok:
169+
raise SABaseException(
170+
response.status_code, "Couldn't copy images " + response.text
171+
)
172+
res['skipped'] += response.json()['skipped']
173+
164174
for image_name in image_names:
165175
if include_annotations:
166176
annotations = get_image_annotations(
@@ -192,13 +202,13 @@ def _copy_images(
192202
(destination_project, destination_project_folder),
193203
image_name, img_metadata["is_pinned"]
194204
)
195-
return response.json()
205+
return res
196206

197207

198208
def copy_images(
199209
source_project,
210+
image_names,
200211
destination_project,
201-
image_names=None,
202212
include_annotations=True,
203213
copy_annotation_status=True,
204214
copy_pin=True
@@ -207,10 +217,10 @@ def copy_images(
207217
208218
:param source_project: project name or folder path (e.g., "project1/folder1")
209219
:type source_project: str
210-
:param destination_project: project name or folder path (e.g., "project1/folder2")
211-
:type destination_project: str
212220
:param image_names: image names. If None, all images from source project will be copied
213221
:type image: list of str
222+
:param destination_project: project name or folder path (e.g., "project1/folder2")
223+
:type destination_project: str
214224
:param include_annotations: enables annotations copy
215225
:type include_annotations: bool
216226
:param copy_annotation_status: enables annotations status copy
@@ -279,8 +289,8 @@ def delete_images(project, image_names):
279289

280290
def move_images(
281291
source_project,
292+
image_names,
282293
destination_project,
283-
image_names=None,
284294
include_annotations=True,
285295
copy_annotation_status=True,
286296
copy_pin=True,
@@ -289,10 +299,10 @@ def move_images(
289299
290300
:param source_project: project name or folder path (e.g., "project1/folder1")
291301
:type source_project: str
292-
:param destination_project: project name or folder path (e.g., "project1/folder2")
293-
:type destination_project: str
294302
:param image_names: image names. If None, all images from source project will be moved
295303
:type image: list of str
304+
:param destination_project: project name or folder path (e.g., "project1/folder2")
305+
:type destination_project: str
296306
:param include_annotations: enables annotations copy
297307
:type include_annotations: bool
298308
:param copy_annotation_status: enables annotations status copy

superannotate/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "4.1.0b13"
1+
__version__ = "4.1.0b14"

tests/test_folders.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -270,8 +270,8 @@ def test_copy_images(tmpdir):
270270
assert num_images == 0
271271

272272
sa.copy_images(
273-
project,
274-
project2, ["example_image_2.jpg", "example_image_3.jpg"],
273+
project, ["example_image_2.jpg", "example_image_3.jpg"],
274+
project2,
275275
include_annotations=False,
276276
copy_annotation_status=False,
277277
copy_pin=False
@@ -287,7 +287,7 @@ def test_copy_images(tmpdir):
287287
num_images = sa.get_project_image_count(project2)
288288
assert num_images == 2
289289

290-
res = sa.copy_images(project, project2, None)
290+
res = sa.copy_images(project, None, project2)
291291

292292
num_images = sa.get_project_image_count(project2)
293293
assert num_images == 4
@@ -317,7 +317,7 @@ def test_move_images(tmpdir):
317317
num_images = sa.get_project_image_count(project2)
318318
assert num_images == 0
319319

320-
sa.move_images(project, project2, ["example_image_2.jpg"])
320+
sa.move_images(project, ["example_image_2.jpg"], project2)
321321

322322
num_images = sa.get_project_image_count(project2)
323323
assert num_images == 1
@@ -359,7 +359,7 @@ def test_move_images2(tmpdir):
359359
num_images = sa.get_project_image_count(project2)
360360
assert num_images == 0
361361

362-
sa.move_images(project, project2)
362+
sa.move_images(project, None, project2)
363363

364364
num_images = sa.get_project_image_count(project2)
365365
assert num_images == 4
@@ -402,7 +402,7 @@ def test_copy_images2(tmpdir):
402402
assert im1["annotation_status"] == "InProgress"
403403

404404
sa.copy_images(
405-
project, project2, ["example_image_2.jpg", "example_image_3.jpg"]
405+
project, ["example_image_2.jpg", "example_image_3.jpg"], project2
406406
)
407407

408408
num_images = sa.get_project_image_count(project2)
@@ -452,7 +452,7 @@ def test_folder_export(tmpdir):
452452
assert num_images == 0
453453

454454
sa.copy_images(
455-
project, project2, ["example_image_2.jpg", "example_image_3.jpg"]
455+
project, ["example_image_2.jpg", "example_image_3.jpg"], project2
456456
)
457457

458458
export = sa.prepare_export(PROJECT_NAME, ["folder1", "folder2"])

0 commit comments

Comments
 (0)