
    zh                        d Z ddlmZ ddlZddlmZ ddlmZmZ ddl	m
Z
  ed          Z ed          Z ed	          ZddZddZddZdS )z*Configuration file management for SkullPi.    )annotationsN)Path)AnyDict)LOGGERzconfig.jsonz
state.json	templatesreturnDict[str, Any]c                     t                                           st          j        dt                      i S t                               dd          5 } t          j        |           cddd           S # 1 swxY w Y   dS )zoLoad configuration from :data:`CONFIG_FILE`.

    Returns
    -------
    dict
        Configuration data.
    zConfiguration file missing: %srutf-8encodingN)CONFIG_FILEexistsr   erroropenjsonloadfhs    /opt/SkullPi/config.pyload_configr      s      5{CCC				#		0	0 By}}                    A33A7:A7c                     t                                           st          j        dt                      i S t                               dd          5 } t          j        |           cddd           S # 1 swxY w Y   dS )zQLoad persistent state.

    Returns
    -------
    dict
        State data.
    zState file missing: %sr   r   r   N)
STATE_FILEr   r   warningr   r   r   r   s    r   
load_stater      s      /<<<		w	/	/ 2y}}                 r   stateNonec                    t                               dd          5 }t          j        | |d           t	          j        d|            ddd           dS # 1 swxY w Y   dS )zuPersist state to :data:`STATE_FILE`.

    Parameters
    ----------
    state:
        State dictionary to save.
    wr   r      )indentzState saved: %sN)r   r   r   dumpr   info)r   r   s     r   
save_stater'   .   s     
w	/	/ .2	%A&&&&%u---. . . . . . . . . . . . . . . . . .s   -AAA)r	   r
   )r   r
   r	   r    )__doc__
__future__r   r   pathlibr   typingr   r   loggerr   r   r   TEMPLATE_DIRr   r   r'        r   <module>r0      s    0 0 " " " " " "                     d=!!T,
tK        
. 
. 
. 
. 
. 
.r/   