Files
controller-wisetopdataserver/python/biopro/file/user/__pycache__/setting.cpython-37.opt-2.pyc
T

76 lines
12 KiB
Plaintext
Raw Normal View History

2021-12-20 14:52:55 +08:00
B
2021-12-22 14:29:56 +08:00
ò0Àaî*ã@ddlZddlmZmZddlmZddlmZddlm Z m
2021-12-20 14:52:55 +08:00
Z
m Z m Z ddl
mZmZmZddlmZmZmZddlmZd d
lmZd d lmZGd d
d
eejdZGdddeƒZGdddeƒZGdddeƒZdS)éN)Ú OrderedDictÚ defaultdict)ÚPath)Úrmtree)ÚOptionalÚListÚDictÚIterable)ÚADDRESSÚ str_addressÚ address_str)Ú
JsonSerializeÚJSONÚ JSON_OBJECT)Ú part_suffixé)ÚUserDeviceAlias)Ú UserSetupc@eZdZdZdZdZedœddZeedœdd „ƒZ ee
j e edœd
d ƒƒZ
eed œd
2021-12-22 14:29:56 +08:00
dZeeeefd œddZeeeefdœddZedœddZeedœddZe
2021-12-20 14:52:55 +08:00
j eedœddƒZe
j eeeefdœddƒZe
j d:eeeefeeefdœd d!„ƒZe
j eedœd"d#„ƒZe
j eedœd$d%„ƒZeedœd&d'„Zee edœd(d)„Zeedœd*d+„Zeedœd,d-„Z ee!dœd.d/„Z"e!e e#d0œd1d2„Z$e!e#d0œd3d4„Z%e!ed0œd5d6„Z&d;d8d9„Z'dS)<ÚAbstractUserSettingzsetup zalias )Ú_user)ÚusercCs
||_dS)N)r)Úselfr©rú=/home/pi/wisetopdataserver/python/biopro/file/user/setting.pyÚ__init__<szAbstractUserSetting.__init__)ÚreturncCs|jS)N)r)rrrrrCszAbstractUserSetting.usercCsdS)Nr)rrrrÚemailHszAbstractUserSetting.email)ÚitemrcCs
| |¡S)N)Ú has_section)rrrrrÚ __contains__Nsz AbstractUserSetting.__contains__cCs
| |¡S)N)Ú get_section)rrrrrÚ __getitem__QszAbstractUserSetting.__getitem__)rÚvaluecCs | ||¡S)N)Ú set_section)rrr"rrrÚ __setitem__TszAbstractUserSetting.__setitem__)rcCs
| |¡S)N)Ú del_section)rrrrrÚ __delitem__WszAbstractUserSetting.__delitem__ccs| ¡EdHdS)N)Úsections)rrrrÚ__iter__ZszAbstractUserSetting.__iter__)ÚnamercCsdS)Nr)rr)rrrr_szAbstractUserSetting.has_sectioncCsdS)Nr)rr)rrrr cszAbstractUserSetting.get_sectionN)r)ÚsectionrcCsdS)Nr)rr)r*rrrr#gszAbstractUserSetting.set_sectioncCsdS)Nr)rr)rrrr%kszAbstractUserSetting.del_sectioncCsdS)Nr)rrrrr'oszAbstractUserSetting.sectionscs(ttfddtfddˆ ¡ƒƒƒS)Ncs|tˆjƒdS)N)ÚlenÚ FIELD_SETUP)Úit)rrrÚ<lambda>{óz0AbstractUserSetting.setup_list.<locals>.<lambda>cs | ˆj¡S)N)Ú
startswithr,)r-)rrrr.|r/)ÚlistÚmapÚfilterr')rr)rrÚ
setup_listvs zAbstractUserSetting.setup_listcCs@| ¡}y| |j|¡}Wntk
r0dSXt||ƒSdS)N)Ústripr r,ÚKeyErrorr)rr)ÚsrrrÚ
setup_infos zAbstractUserSetting.setup_infocCs|j|}| |¡}t||ƒS)N)r,r#r)rr)Úkeyr7rrrÚ setup_newˆs

zAbstractUserSetting.setup_newcCs.y| |j|¡dStk
r(dSXdS)NTF)r%r,r6)rr)rrrÚ setup_dels
zAbstractUserSetting.setup_delcs(ttfddtfddˆ ¡ƒƒƒS)Ncst|tˆjƒdƒS)N)r r+Ú FIELD_ALIAS)r-)rrrr.r/z0AbstractUserSetting.alias_list.<locals>.<lambda>cs | ˆj¡S)N)r0r<)r-)rrrr.šr/)r1r2r3r')rr)rrÚ
alias_list˜s zAbstractUserSetting.alias_list)ÚaddressrcCs<y| |jt|ƒ¡}Wntk
r,dSXt||ƒSdS)N)r r<r r6r)rr>ÚarrrÚ
alias_infos
zAbstractUserSetting.alias_infocCs"|jt|ƒ}| |¡}t||ƒS)N)r<r r#r)rr>r9r7rrrÚ alias_new¥s
zAbstractUserSetting.alias_newcCs2y| |jt|ƒ¡dStk
r,dSXdS)NTF)r%r<r r6)rr>rrrÚ alias_del¬s
zAbstractUserSetting.alias_delFcCsdS)Nr)rÚforcerrrÚsave³szAbstractUserSetting.save)N)F)(Ú__name__Ú
__module__Ú __qualname__r,r<Ú __slots__ÚstrrÚpropertyrÚabcÚabstractmethodrrÚboolrrr!r$r&r r(rr r#r%r'rr4rr8r:r;r
r=rr@rArBrDrrrrrsB)&   r)Ú metaclassceZdZdZeedœfdd ZeedœddƒZee dœd d
Z
ee eefdœd d Z dee eefe eefdœddZ
ee dœddZeedœddZeeeddœddƒZd e dœddZedœddZddZZS)!Ú UserSettingz .repository)Úpathrcs”tƒ |¡| ¡r2|j|kr&||}||j}n.| ¡r`|j|jkrNtƒn|jj|kr`tƒ||_ t
ƒ|_ t
ƒ|_ ||j d<d|j d<d|_
dS)Nr)Úrr)ÚsuperrÚis_dirr)ÚFILENAMEÚis_filer,Ú RuntimeErrorÚparentÚ_UserSetting__pathrÚ_coreÚ_sectionÚ_UserSetting__hash)rrPr)Ú __class__rrr½s  
   

zUserSetting.__init__)rcCs
|jdS)Nr)rY)rrrrrÜszUserSetting.email)r)rcCs|dkr dS||jkSdS)coreT)rZ)rr)rrrràszUserSetting.has_sectioncCs|dkr|jS|j|SdS)Nr])rYrZ)rr)rrrr æszUserSetting.get_sectionN)r)r*rcCs:|dkrtƒn&|dkr tƒ}nt|ƒ}||j|<|SdS)Nr])r6rrZ)rr)r*Úretrrrr#ìs
zUserSetting.set_sectioncCs|dkrtƒn|j|=dS)Nr])r6rZ)rr)rrrr%ùszUserSetting.del_sectionccsdVt|jƒEdHdS)Nr])ÚiterrZ)rrrrr'ÿszUserSetting.sections)rPrrc
C| ¡st|ddtƒt||ƒ}|j ¡rÜ|j ¡”}|j}x†|D]~}| ¡}|  d¡r`qFqF|  d¡r¢| 
d¡r¢|dd}|dkr|j}qÄi||<||}qFt |d d
d \}} |  ¡|| ¡<qFWWdQRXt |ƒ|_
|S) NT)Ú
ignore_errorsú]réÿÿÿÿr]ú=rQ)Úmissing)rSrÚFileNotFoundErrorrOrXÚexistsÚopenrYr5r0ÚendswithrÚhashr[)
ÚclsrPrÚfr*Úliner)r9r"rrrÚloads* 

 

 

zUserSetting.loadFc
Ct|ƒ}|s|j|krdS||_|jj}| ¡s<|jdd|j d¡”}|d}td|dx&| ¡D]\}}td|d ||dqhWxP|j  ¡D]B\}}td
|d d |d
x&| ¡D]\}}td|d ||dq¶WqWWdQRXdS)NFT)ÚparentsÚwr]z[core])Úfilez rerbrcrQ)Úseprs)
rkr[rXrWrhÚmkdirriÚprintÚitemsrZ) rrCÚdrnr*r9r"r)rrrrD+s$
  $zUserSetting.savecCst|jƒ}| |j¡|S)N)ÚdictrYÚupdaterZ)rr^rrrÚas_jsonHs
 zUserSetting.as_jsoncCsd}x2|j ¡D]$\}}|dt|ƒdt|ƒ7}qWxX|j ¡D]J\}}|dt|ƒ7}x0| ¡D]$\}}|dt|ƒdt|ƒ7}qfWqDW|S) ééé
éé)rYrwrkrZ)rr^Únr7rrrÚ__hash__Ms $zUserSetting.__hash__)N)F)rErFrGrTrrIrrJrrMrrr r#r%r r'Ú classmethodrprDrr|r†Ú
__classcell__rr)r\rrO¸s$
'rOceZdZdZedœfdd ZeeedœddƒZ ee
dœd d
Z ee eefdœd d Z
dee eefe eefdœddZee
dœddZeedœddZdddZedœddZZS)ÚRestrictUserSetting)Ú__email)Úsettingcstƒ |j¡|j|_dS)N)rRrrrÚ_RestrictUserSetting__email)rr)r\rrraszRestrictUserSetting.__init__)rcCs|jS)N))rrrrreszRestrictUserSetting.email)r)rcCsdS)NFr)rr)rrrriszRestrictUserSetting.has_sectioncCs
tƒdS)N)r6)rr)rrrr lszRestrictUserSetting.get_sectionN)r)r*rcCs