| 
					
				 | 
			
			
				@@ -9,7 +9,7 @@ from ._common import with_repository, Highlander 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from ..archive import Archive, Statistics 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from ..cache import Cache 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from ..constants import *  # NOQA 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from ..helpers import format_archive, interval, sig_int, log_multi, ProgressIndicatorPercent 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from ..helpers import ArchiveFormatter, interval, sig_int, log_multi, ProgressIndicatorPercent 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from ..manifest import Manifest 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from ..logger import create_logger 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -82,6 +82,14 @@ class PruneMixIn: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 '"keep-weekly", "keep-monthly" or "keep-yearly" settings must be specified.' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return self.exit_code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if args.format is not None: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            format = args.format 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        elif args.short: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            format = "{archive}" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            format = "{archive:<36} {time} [{id}]" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        formatter = ArchiveFormatter(format, repository, manifest, manifest.key, json=False, iec=args.iec) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         checkpoint_re = r"\.checkpoint(\.\d+)?" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         archives_checkpoints = manifest.archives.list( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             match=args.match_archives, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -156,7 +164,7 @@ class PruneMixIn: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             rule=kept_because[archive.id][0], num=kept_because[archive.id][1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if args.output_list: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    list_logger.info(f"{log_message:<40} {format_archive(archive)}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    list_logger.info(f"{log_message:<40} {formatter.format_item(archive)}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             pi.finish() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if sig_int: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 # Ctrl-C / SIGINT: do not checkpoint (commit) again, we already have a checkpoint in this case. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -227,6 +235,10 @@ class PruneMixIn: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         deleted - the "Deleted data" deduplicated size there is most interesting as 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         that is how much your repository will shrink. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Please note that the "All archives" stats refer to the state after pruning. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        You can influence how the ``--list`` output is formatted by using the ``--short`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        option (less wide output) or by giving a custom format using ``--format`` (see 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        the ``borg rlist`` description for more details about the format string). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         subparser = subparsers.add_parser( 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -252,6 +264,14 @@ class PruneMixIn: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         subparser.add_argument( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             "--list", dest="output_list", action="store_true", help="output verbose list of archives it keeps/prunes" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        subparser.add_argument("--short", dest="short", action="store_true", help="use a less wide archive part format") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        subparser.add_argument( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "--format", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            metavar="FORMAT", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dest="format", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            action=Highlander, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            help="specify format for the archive part " '(default: "{archive:<36} {time} [{id}]")', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         subparser.add_argument( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             "--keep-within", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             metavar="INTERVAL", 
			 |