@@ -159,7 +159,7 @@ def copy_inside(
159159 if dry_run :
160160 logger .info (f"Would copy { len (entries )} with assets: { assets } " )
161161 else :
162- new_assets = s3_copy (init_s3client , entries , dest_dataset )
162+ new_assets = s3_copy (init_s3client , assets , dest_dataset )
163163 try :
164164 catalogue_copy (init_session , entries , init_s3client , dest_dataset )
165165 except (Exception , KeyboardInterrupt ):
@@ -251,23 +251,24 @@ def copy_outside(
251251 dest_config ,
252252 dest_dataset ,
253253 entries ,
254+ assets ,
254255 init_config ,
255256 init_s3client ,
256257 init_session ,
257258 )
258259
259260
260261def _copy_outside_logic (
261- dest_config , dest_dataset , entries , init_config , init_s3client , init_session
262+ dest_config , dest_dataset , entries , assets , init_config , init_s3client , init_session
262263):
263264 if init_config .s3config == dest_config .s3config :
264265 # namespace may be different, so we need another s3 client here
265266 dest_s3client = S3Client .from_config (dest_config .s3config )
266- new_assets = s3_copy (dest_s3client , entries , dest_dataset )
267+ new_assets = s3_copy (dest_s3client , assets , dest_dataset )
267268 else :
268269 # get new destination client as current client
269270 dest_s3client = S3Client .from_config (dest_config .s3config )
270- new_assets = s3_export (init_s3client , dest_s3client , entries , dest_dataset )
271+ new_assets = s3_export (init_s3client , dest_s3client , assets , dest_dataset )
271272 try :
272273 if init_config .catalogue_db == dest_config .catalogue_db :
273274 catalogue_copy (init_session , entries , dest_s3client , dest_dataset )
@@ -321,12 +322,12 @@ def catalogue_copy(
321322 catalogue_repo .create (new_schema )
322323
323324
324- def s3_copy (s3client : S3Client , entries , dest_dataset ) :
325+ def s3_copy (s3client : S3Client , assets : list [ str ] , dest_dataset : str ) -> list [ str ] :
325326 """Copy into another bucket."""
326327 new_assets = []
327328 try :
328- for entry in entries :
329- new_asset = copy_asset (dest_dataset , entry , s3client )
329+ for asset in assets :
330+ new_asset = copy_asset (dest_dataset , asset , s3client )
330331 new_assets .append (new_asset )
331332 except (Exception , KeyboardInterrupt ):
332333 s3_rollback (s3client , new_assets )
@@ -337,8 +338,7 @@ def s3_copy(s3client: S3Client, entries, dest_dataset):
337338@retry (
338339 wait = wait_random_exponential (multiplier = 0.5 , max = 60 ), stop = stop_after_attempt (10 )
339340)
340- def copy_asset (dest_dataset , entry , s3client ):
341- source_asset = entry .asset
341+ def copy_asset (dest_dataset : str , source_asset : str , s3client ) -> str :
342342 source_bucket , name = source_asset .split ("/" )
343343 dest_bucket = s3client .get_bucket_name (dest_dataset )
344344 s3client .create_directory (dest_bucket )
@@ -353,9 +353,14 @@ def s3_rollback(s3_client, assets):
353353 s3_client .delete_file (bucket , name )
354354
355355
356- def s3_export (init_s3client : S3Client , dest_s3client : S3Client , entries , dest_dataset ):
356+ def s3_export (
357+ init_s3client : S3Client ,
358+ dest_s3client : S3Client ,
359+ assets : list [str ],
360+ dest_dataset : str ,
361+ ) -> list [str ]:
357362 """Download from one S3 and upload to another."""
358- object_urls = [init_s3client .get_url_from_asset (e . asset ) for e in entries ]
363+ object_urls = [init_s3client .get_url_from_asset (asset ) for asset in assets ]
359364 new_assets = []
360365 try :
361366 dest_bucket = dest_s3client .get_bucket_name (dest_dataset )
0 commit comments