11import uuid
22import os
3+ import time
34
5+ from dls_barcode .data_store .backup import Backup
6+ from dls_barcode .data_store .comms_manager import CommsManager
47from .record import Record
58
69
@@ -9,17 +12,15 @@ class Store:
912 """ Maintains a list of records of previous barcodes scans. Any changes (additions
1013 or deletions) are automatically written to the backing file.
1114 """
12- MIN_STORE_CAPACITY = 2
1315
14- def __init__ (self , comms_manager , backup , store_capacity ):
16+ def __init__ (self , comms_manager ):
1517 """ Initializes a new instance of Store.
1618 """
17- self ._store_capacity = store_capacity
18- self ._backup = backup
1919 self ._comms_manager = comms_manager
20- self ._img_dir = self ._comms_manager .make_img_dir ()
21- self .records = self ._comms_manager .load_records_from_file ()
22- self ._truncate_record_list ()
20+ self ._comms_manager .make_img_dir ()
21+ self ._img_dir = self ._comms_manager .get_img_dir ()
22+ records = self ._comms_manager .load_records_from_file ()
23+ self .records = records
2324 self ._sort_records ()
2425
2526 def size (self ):
@@ -53,6 +54,13 @@ def merge_record(self, holder_barcode, plate, holder_img, pins_img):
5354
5455 self ._add_record (holder_barcode , plate , holder_img , pins_img )
5556
57+ def backup_records (self , directory ):
58+ ts = time .localtime ()
59+ file_name = time .strftime ("%Y-%m-%d_%H-%M-%S" , ts )
60+ backup_manger = CommsManager (directory , file_name )
61+ backup = Backup (backup_manger )
62+ backup .backup_records (self .records )
63+
5664 def delete_records (self , records_to_delete ):
5765 """ Remove all of the records in the supplied list from the store and
5866 save changes to the backing file.
@@ -63,23 +71,11 @@ def delete_records(self, records_to_delete):
6371
6472 self ._process_change ()
6573
66- def backup_records (self , records_to_backup ):
67- self ._backup .backup_records (records_to_backup )
68-
69- def _truncate_record_list (self ):
70-
71- actual_store_capacity = max (self ._store_capacity .value (), self .MIN_STORE_CAPACITY )
72-
73- if len (self .records ) > actual_store_capacity :
74- to_delete = self .records [actual_store_capacity :]
75- self .backup_records (to_delete )
76- self .delete_records (to_delete )
7774
7875 def _process_change (self ):
7976 """ Sort the records and save to file.
8077 """
8178 self ._sort_records ()
82- self ._truncate_record_list ()
8379 self ._comms_manager .to_file (self .records )
8480 self ._comms_manager .to_csv_file (self .records )
8581
0 commit comments