@@ -16,6 +16,7 @@ def __init__(self, directory, store_capacity, file_manager):
1616 self ._file_manager = file_manager
1717 self ._file = os .path .join (directory , "store.txt" )
1818 self ._csv_file = os .path .join (directory , "store.csv" )
19+ self ._backup_csv_file = os .path .join (directory , "backup.csv" )
1920 self ._img_dir = os .path .join (directory , "img_dir" )
2021
2122 if not self ._file_manager .is_dir (self ._img_dir ):
@@ -84,12 +85,16 @@ def delete_records(self, records_to_delete):
8485
8586 self ._process_change ()
8687
88+ def backup_records (self , records_to_back_up ):
89+ self ._to_backup_csv_file (records_to_back_up )
90+
8791 def _truncate_record_list (self ):
8892 min_store_capacity = 2
8993 actual_store_capacity = max (self ._store_capacity .value (), min_store_capacity )
9094
9195 if len (self .records ) > actual_store_capacity :
9296 to_delete = self .records [actual_store_capacity :]
97+ self .backup_records (to_delete )
9398 self .delete_records (to_delete )
9499
95100 def _process_change (self ):
@@ -117,6 +122,12 @@ def _to_csv_file(self):
117122 record_lines = [rec .to_csv_string () + "\n " for rec in self .records ]
118123 self ._file_manager .write_lines (self ._csv_file , record_lines )
119124
125+ def _to_backup_csv_file (self , records ):
126+ """ Save the contents of the store to the backup csv file
127+ """
128+ record_lines = [rec .to_csv_string () + "\n " for rec in records ]
129+ self ._file_manager .write_lines (self ._backup_csv_file , record_lines )
130+
120131 def _merge_holder_image_into_pins_image (self , holder_img , pins_img ):
121132 factor = 0.22 * pins_img .width / holder_img .width
122133 small_holder_img = holder_img .rescale (factor )
0 commit comments