Mini Shell

Direktori : /lib/python3.6/site-packages/orca/backends/__pycache__/
Upload File :
Current File : //lib/python3.6/site-packages/orca/backends/__pycache__/json_backend.cpython-36.pyc

3

�2[	�@sRdZdZdZdZdZdZddlmZmZddl	Z	dd	l
mZmZGd
d�d�Z
dS)zJSON backend for Orca settingsz$Id$z
$Revision$z$Date$z7Copyright (c) 2010-2011 Consorcio Fernando de los Rios.ZLGPL�)�load�dumpN)�settings�acssc@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zddd�Z	ddd�Z
d dd�Zdd�Zdd�Z
d!dd�Zdd�ZdS)"�BackendcCs<i|_i|_i|_i|_tjj|d�|_tjj|d�|_dS)z& Initialize the JSON Backend.
        zuser-settings.confzapp-settingsN)	�general�pronunciations�keybindings�profiles�os�path�join�settingsFile�appPrefsDir)�selfZprefsDir�r�"/usr/lib/python3.6/json_backend.py�__init__$szBackend.__init__cCs^dtjiid�i}||||d�}||_||_||_||_t|jd�}t||dd�|j	�dS)zN Save default settings for all the properties from
            orca.settings. �default)�profilerr	)rr
rr	�w�)�indentN)
rrrr
rr	�openrr�close)rrrr	ZdefaultProfiles�prefsrrrr�saveDefaultSettings.s
zBackend.saveDefaultSettingscCsDtjj|jd|�}tjj|�r<t|d�}t|�}|j�ni}|S)Nz%s.conf�r)rrr
r�existsrrr)r�appName�fileNamerrrrr�getAppSettingsDs

zBackend.getAppSettingsc
Csf|j|�}|jdi�}|||d�||<||d<tjj|jd|�}t|d�}	t||	dd�|	j�dS)Nr
)rrr	z%s.confrr)r)	r!�getrrr
rrrr)
rrrrrr	rr
r rrrr�saveAppSettingsOs

zBackend.saveAppSettingscCsl|dkrd}||d<||d<t|jd��:}t|�}||d|<|jd�|j�t||dd	�WdQRXdS)
zS Save minimal subset defined in the profile against current 
            defaults. Nrrr	zr+r
rr)r)rrr�seek�truncater)rrrrr	rrrrr�saveProfileSettings\s
zBackend.saveProfileSettingscCs`t|j�}yt|�}Wntk
r*dSX|dj�|_|d|_|d|_|dj�|_dS)z$ Load from config file all settings Nrrr	r
)	rrr�
ValueError�copyrrr	r
)rrrrrr�_getSettingsms


zBackend._getSettingsrcCs�|j�|jj�}|j|j�}xP|j�D]D\}}|dkr^x"|j�D]\}}tj|�||<qDW|dkr*|||<q*Wy|d|d<Wn tk
r�ddg|d<YnX|S)zZ Get general settings from default settings and
            override with profile values. Zvoices�startingProfile�
activeProfilerZDefaultr)r*r+)r)rr(r
�itemsrZACSS�KeyError)rrZgeneralSettings�profileSettings�key�valueZ	voiceTypeZvoiceDefrrr�
getGeneralys
zBackend.getGeneralcCs4|j�|jj�}|j|j�}d|kr0|d}|S)z` Get pronunciation settings from default settings and
            override with profile values. r)r)rr(r
)rrrr.rrr�getPronunciations�s
zBackend.getPronunciationscCs4|j�|jj�}|j|j�}d|kr0|d}|S)z^ Get keybindings settings from default settings and
            override with profile values. r	)r)r	r(r
)rrr	r.rrr�getKeybindings�s
zBackend.getKeybindingscCstjj|j�S)z  Check if we're in first start. )rrrr)rrrr�isFirstStart�szBackend.isFirstStartcCsZ||j|<t|jd��:}t|�}||d|<|jd�|j�t||dd�WdQRXdS)Nzr+rrr)r)rrrrr$r%r)rr/r0rrrrr�_setProfileKey�s

zBackend._setProfileKeyFcCs||jd<|jd|�dS)z�Set firstStart. This user-configurable settting is primarily
        intended to serve as an indication as to whether or not initial
        configuration is needed.Z
firstStartN)rr5)rr0rrr�
setFirstStart�s
zBackend.setFirstStartcCsB|j�g}x0|jj�D]"}|j|j�}|j|jd��qW|S)z List available profiles. r)r)r
�keysr(�appendr")rr
ZprofileNameZprofileDictrrr�availableProfiles�szBackend.availableProfilesN)r)r)r)F)�__name__�
__module__�__qualname__rrr!r#r&r)r1r2r3r4r5r6r9rrrrr"s








r)�__doc__Z__id__�__version__Z__date__Z
__copyright__Z__license__ZjsonrrrZorcarrrrrrr�<module>s