@@ -335,7 +335,7 @@ async def _folder_file_op(self,
335335
336336 folder = await dest_provider .create_folder (dest_path , folder_precheck = False )
337337
338- dest_path = await dest_provider .revalidate_path (dest_path .parent , dest_path . name , folder = dest_path . is_dir )
338+ folder_path = dest_provider .path_from_metadata (dest_path .parent , folder )
339339
340340 folder .children = []
341341 items = await self .metadata (src_path ) # type: ignore
@@ -349,19 +349,15 @@ async def _folder_file_op(self,
349349 futures .append (asyncio .ensure_future (
350350 func (
351351 dest_provider ,
352- # TODO figure out a way to cut down on all the requests made here
353- (await self .revalidate_path (src_path , item .name , folder = item .is_folder )),
354- (await dest_provider .revalidate_path (dest_path , item .name , folder = item .is_folder )),
352+ self .path_from_metadata (src_path , item ),
353+ folder_path .child (item .name , None , folder = item .is_folder ),
355354 handle_naming = False ,
356355 )
357356 ))
358357
359358 if item .is_folder :
360359 await futures [- 1 ]
361360
362- if not futures :
363- continue
364-
365361 done , _ = await asyncio .wait (futures , return_when = asyncio .FIRST_EXCEPTION )
366362
367363 for fut in done :
@@ -673,9 +669,8 @@ async def validate_path(self, path: str, **kwargs) -> wb_path.WaterButlerPath:
673669
674670 def path_from_metadata (self ,
675671 parent_path : wb_path .WaterButlerPath ,
676- meta_data : wb_metadata .BaseMetadata ) -> wb_path .WaterButlerPath :
677- return parent_path .child (meta_data .name , _id = meta_data .path .strip ('/' ),
678- folder = meta_data .is_folder )
672+ metadata : wb_metadata .BaseMetadata ) -> wb_path .WaterButlerPath :
673+ return parent_path .child (metadata .name , _id = metadata .id , folder = metadata .is_folder )
679674
680675 async def revisions (self , path : wb_path .WaterButlerPath , ** kwargs ):
681676 """Return a list of :class:`.BaseFileRevisionMetadata` objects representing the revisions
0 commit comments