File tree Expand file tree Collapse file tree 3 files changed +34
-10
lines changed
Expand file tree Collapse file tree 3 files changed +34
-10
lines changed Original file line number Diff line number Diff line change @@ -324,7 +324,7 @@ def populate_dataset(
324324 self ,
325325 dataset_id : str ,
326326 dataset_items : List [DatasetItem ],
327- batch_size : int = 30 ,
327+ batch_size : int = 20 ,
328328 update : bool = False ,
329329 ):
330330 """
@@ -495,6 +495,9 @@ async def _make_files_request(
495495 files ,
496496 route : str ,
497497 session : aiohttp .ClientSession ,
498+ retry_attempt = 0 ,
499+ max_retries = 3 ,
500+ sleep_intervals = (1 , 3 , 9 ),
498501 ):
499502 """
500503 Makes an async post request with files to a Nucleus endpoint.
@@ -519,6 +522,7 @@ async def _make_files_request(
519522 )
520523
521524 for sleep_time in RetryStrategy .sleep_times + [- 1 ]:
525+
522526 async with session .post (
523527 endpoint ,
524528 data = form ,
@@ -542,15 +546,27 @@ async def _make_files_request(
542546 continue
543547
544548 if not response .ok :
545- self .handle_bad_response (
546- endpoint ,
547- session .post ,
548- aiohttp_response = (
549- response .status ,
550- response .reason ,
551- data ,
552- ),
553- )
549+ if retry_attempt < max_retries :
550+ time .sleep (sleep_intervals [retry_attempt ])
551+ retry_attempt += 1
552+ return self ._make_files_request (
553+ files ,
554+ route ,
555+ session ,
556+ retry_attempt ,
557+ max_retries ,
558+ sleep_intervals ,
559+ )
560+ else :
561+ self .handle_bad_response (
562+ endpoint ,
563+ session .post ,
564+ aiohttp_response = (
565+ response .status ,
566+ response .reason ,
567+ data ,
568+ ),
569+ )
554570
555571 return data
556572
Original file line number Diff line number Diff line change @@ -261,6 +261,9 @@ def append(
261261 'ignored_items': int,
262262 }
263263 """
264+ assert (
265+ batch_size is None or batch_size < 30
266+ ), "Please specify a batch size smaller than 30 to avoid timeouts."
264267 dataset_items = [
265268 item for item in items if isinstance (item , DatasetItem )
266269 ]
@@ -270,6 +273,9 @@ def append(
270273 "You must append either DatasetItems or Scenes to the dataset."
271274 )
272275 if scenes :
276+ assert (
277+ asynchronous
278+ ), "In order to avoid timeouts, you must set asynchronous=True when uploading scenes."
273279 return self .append_scenes (scenes , update , asynchronous )
274280
275281 check_for_duplicate_reference_ids (dataset_items )
Original file line number Diff line number Diff line change @@ -252,6 +252,7 @@ def test_scene_add_frame():
252252 }
253253
254254
255+ @pytest .mark .skip ("Deactivated sync upload for scenes" )
255256def test_scene_upload_sync (dataset ):
256257 payload = TEST_LIDAR_SCENES
257258 scenes = [
@@ -272,6 +273,7 @@ def test_scene_upload_sync(dataset):
272273 assert response ["new_scenes" ] == len (scenes )
273274
274275
276+ @pytest .mark .skip ("Deactivated sync upload for scenes" )
275277@pytest .mark .integration
276278def test_scene_and_cuboid_upload_sync (dataset ):
277279 payload = TEST_LIDAR_SCENES
You can’t perform that action at this time.
0 commit comments