+
    "i                        R t ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^RI
Ht ]	'       d   ^RIHt ^RIHt ]P                   ! 4        R2t ! R	 R
4      tR# )Backup.)annotationsN)sleep)TYPE_CHECKING)is_safe)HacsBase)HacsRepositoryz/hacs_backup/c                  `    ] tR t^tRtR]R3R R lltR R ltR R ltR	 R
 lt	R R lt
RtR# )Backupr   Nc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )   hacsr   
local_pathz
str | Nonebackup_pathstr
repositoryzHacsRepository | NonereturnNone )formats   "./config/custom_components/hacs/utils/backup.py__annotate__Backup.__annotate__   sC     V VV V 	V
 *V 
V    c                   Wn         W@n        T;'       g!    VP                  P                  P                  V n        W0n        V'       dU   \        P                  ! 4       RVP                  P                   R2,           VP                  P                  ,           V n        V P                   V P
                  P                  R4      R,           2V n        R# )zInitialize.z/hacs_persistent_/N)r   r   contentpathlocalr   r   tempfile
gettempdirdatacategorynamesplitbackup_path_full)selfr   r   r   r   s   &&&&&r   __init__Backup.__init__   s     	$$EE
(:(:(?(?(E(E&##%%joo&>&>%?qAB//&&' 
 $(#3#3"4T__5J5J35OPR5S4T Ur   c                   V ^8  d   QhRR/# )r   r   boolr   )r   s   "r   r   r   ,   s      $ r   c                   \         P                  P                  V P                  4      '       g   R# \	        V P
                  V P                  4      '       g   R# \         P                  P                  V P                  4      '       d]   \        P                  ! V P                  4       \         P                  P                  V P                  4      '       d   \        R4       K<  \         P                  ! V P                  RR7       R# )zInit backup dir.F皙?T)exist_ok)osr   existsr   r   r   r   shutilrmtreer   makedirsr'   s   &r   _init_backup_dirBackup._init_backup_dir,   s    ww~~doo..tyy$//2277>>$**++MM$**+ ''..!1!122c

D$$t4r   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r   ;   s     L L Lr   c                0   V P                  4       '       g   R#  \        P                  P                  V P                  4      '       dM   \
        P                  ! V P                  V P                  4       \        P                  ! V P                  4       M\
        P                  ! V P                  V P                  4       \
        P                  ! V P                  4       \        P                  P                  V P                  4      '       d   \        R4       K<  V P                  P                  P                  RV P                  V P                  4       R#   \          d2   pT P                  P                  P#                  RT4        Rp?R# Rp?ii ; i)zCreate a backup in /tmpNr-   zBackup for %s, created in %szCould not create backup: %s)r5   r/   r   isfiler   r1   copyfiler&   removecopytreer2   r0   r   r   logdebugBaseExceptionwarning)r'   	exceptions   & r   createBackup.create;   s    $$&&	Lww~~doo..1F1FG		$//*1F1FGdoo.ggnnT__55#JIIMM.%% 	L IIMM!!"?KK	Ls%   .E 	CE AE F$&FFc                   V ^8  d   QhRR/# r8   r   )r   s   "r   r   r   S   s     c c cr   c                   \         P                  P                  V P                  4      '       g   R# \         P                  P	                  V P                  4      '       d|   \         P                  P                  V P
                  4      '       d!   \         P                  ! V P
                  4       \        P                  ! V P                  V P
                  4       M\         P                  P                  V P
                  4      '       d]   \        P                  ! V P
                  4       \         P                  P                  V P
                  4      '       d   \        R4       K<  \        P                  ! V P                  V P
                  4       V P                  P                  P                  RV P
                  V P                  4       R# )zRestore from backup.Nr-   zRestored %s, from backup %s)r/   r   r0   r&   r:   r   r<   r1   r;   r2   r   r=   r   r>   r?   r4   s   &r   restoreBackup.restoreS   s    ww~~d334477>>$//00ww~~doo..		$//*OOD114??Cww~~doo..doo.ggnnT__55#JOOD114??C		94??DLaLabr   c                   V ^8  d   QhRR/# r8   r   )r   s   "r   r   r   d   s     
G 
G 
Gr   c                   \         P                  P                  V P                  4      '       g   R# \        P
                  ! V P                  4       \         P                  P                  V P                  4      '       d   \        R4       K<  V P                  P                  P                  RV P                  4       R# )zCleanup backup files.Nr-   zBackup dir %s cleared)
r/   r   r0   r   r1   r2   r   r   r>   r?   r4   s   &r   cleanupBackup.cleanupd   sq    ww~~d..//d&&' ggnnT--..#J		3T5E5EFr   )r   r&   r   r   r   )__name__
__module____qualname____firstlineno____doc__DEFAULT_BACKUP_PATHr(   r5   rC   rG   rK   __static_attributes__r   r   r   r
   r
      s3    
 "&.,0V(L0c"
G 
Gr   r
   )rQ   
__future__r   r/   r1   r    timer   typingr   r   r   baser   repositories.baser   r!   rR   r
   r   r   r   <module>rY      sM     " 	      2 ",,./}= YG YGr   