;ò Æã1Dc@s±dkZdkZdkZdkZdkZdfd„ƒYZd„Zdefd„ƒYZdfd„ƒYZ e edƒ o*dk Z e i d ei d ƒe_ndS( NsConfigcBs}tZddddfZddddd d fZd „Zed „Zd „Zd„Zd„Z d„Z d„Z d„Z RS(Nsgeneralsoptionsscvsdbs templatess cvs_rootss forbiddens svn_rootss languagesskv_filess root_parentscCs+x$|iD]}t||tƒƒq WdS(N(sselfs _sectionsssectionssetattrs _sub_config(sselfssection((s lib/config.pys__init__.s cCs»tii|ƒo|pt|_tii|ƒ|_t i ƒ}|i |ƒx8|i D]-}|i|ƒo|i|||ƒq[q[W|o |idƒo|i||ƒndS(Nsvhosts(sosspathsisfilespathnamesNonesselfs conf_pathsdirnamesbases ConfigParsersparsersreads _sectionsssections has_sections_process_sectionsvhosts_process_vhost(sselfspathnamesvhostsparserssection((s lib/config.pys load_config2s#   c Cs~tƒ} xj|iiD]\} | ddjoFti| dƒ}ti | d|!dƒ}ti | |dƒ} ng}ti | d|ƒ} tiƒ}|itii|i| ƒƒx¶|iƒD]¨} xŸ|i| ƒD]Ž} || g}| }xV|D]N}yt||ƒ}Wqütj o&tƒ}t|||ƒ|}qüXqüWt|| |i | | ƒƒqÜWqÆWqW| SdS(Nis[s]is.s%lang%(!s _sub_configskvsselfsgeneralskv_filessfnamesstringsindexsidxssplitspartssstripsreplaceslanguages ConfigParsersparsersreadsosspathsjoinsbasessectionsssectionsoptionssoptions full_namesobsnamesgetattrsAttributeErrorscssetattrsget( sselfslanguagescsparsersidxsobs full_namesnamespartsskvsfnamesoptionssection((s lib/config.pys load_kv_files@s6      (cCsÝt||ƒ}xÇ|i|ƒD]¶}|i||ƒ}||i jo+t t i ttt i|dƒƒƒ}n'yt|ƒ}Wntj onX|djp |djot||ƒ}nt|||ƒqWdS(Ns,s cvs_rootss svn_roots(sgetattrsselfs subcfg_namesscsparsersoptionsssectionsoptsgetsvalues_force_multi_valuesmapsstringsstripsfiltersNonessplitsints ValueErrors _parse_rootsssetattr(sselfsparserssections subcfg_namesoptsvaluessc((s lib/config.pys_process_section]s+cCs|i||ƒ}| odSn|d}t|ƒ}x@|iƒD]2}|| |jo|i ||||ƒqEqEWdS(Ns-( sselfs_find_canon_vhostsparsersvhosts canon_vhostscvslenslcvssectionsssections_process_section(sselfsparsersvhostslcvs canon_vhostssectionscv((s lib/config.pys_process_vhostos   c Cs¸ti|ƒ}ti|dƒd}xˆ|idƒD]w}|id|ƒ}t tit ti t t ti|dƒƒƒƒ}x)|D]!}ti||ƒo|Sq‡q‡Wq5Wt SdS(Ns:isvhostss,(sstringslowersvhostssplitsparsersoptionss canon_vhostsgetsvaluesmapsstripsfiltersNonespatternsspatsfnmatchs fnmatchcase(sselfsparsersvhostspatspatternssvalues canon_vhost((s lib/config.pys_find_canon_vhost{s!cCsÃh|i_h|i_g|i_d|i_d|i_tidjod|i_ n t |i_ d|i_ d|i_ d|i_ d|i_f|i_g|i_dg|i_t |i_t |i_t |i_t |i_t |i_t |i_t |i_t |i_t |i_t |i_t |i_d|i_d|i_ d|i_!d|i_"d|i_#d|i_$d|i_%d|i_&d|i_'d |i_(d|i)_*d |i)_+d|i)_,d |i)_-d |i)_.d |i)_/d |i)_0d|i)_1d |i)_2d |i)_3d |i)_4d |i)_5d |i)_6d|i)_7d |i)_8d |i)_9d |i)_:d|i)_;t |i)_<d|i)_=d |i)_>d |i)_?d|i)_@d|i)_Ad|i)_Bd|i)_Cd|i)_Dd|i)_Ed|i)_Fd |i)_Gd|i)_Hd|i)_Id|i)_Jd|i)_Kd|i)_Ld|i)_Md|i)_Nd|i)_Od|i)_Pd |i)_Qd|i)_Rd|i)_Sd |i)_TdS(s-Set some default values in the configuration.sswin32scvsisVNo admin address has been configuredsen-usiê ièidslogsfileisdateshs templatess.iPisphps cvsgraph.confiXN(Usselfsgenerals cvs_rootss svn_rootss root_parentss default_rootsrcs_pathssyssplatformscvsnt_exe_pathsNones use_rcsparsessvn_pathsmime_types_filesaddresss forbiddenskv_filess languagess templatess directoryslogsquerysdiffsgraphsannotatesmarkupserrors query_forms query_resultssrootsscvsdbsenabledshostsports database_namesuserspasswds readonly_usersreadonly_passwds row_limits rss_row_limitsoptionssroot_as_url_componentsdefault_file_viewscheckout_magicssort_byssort_group_dirss hide_atticslog_sorts diff_formats hide_cvsroots hr_breakables hr_funoutshr_ignore_whiteshr_ignore_keyword_substs hr_intralinesallow_annotates allow_markupsallow_compresss template_dirsdocrootsshow_subdir_lastmods show_logssshow_log_in_markups cross_copiess py2html_paths short_log_lens use_enscripts enscript_paths use_highlightshighlight_pathshighlight_line_numbersshighlight_convert_tabssuse_phps php_exe_paths allow_tars use_cvsgraphs cvsgraph_paths cvsgraph_confs use_re_searchs use_pagesizes limit_changess use_localtimeshttp_expiration_timesgenerate_etags(sself((s lib/config.pys set_defaultsŠs                                                                            cCsŠ| odSnd}xi|iiD][}|ddjo)d}ti||dƒodSq~q#ti||ƒodSq#q#W|SdS(Nis!i(smodulesdefaultsselfsgenerals forbiddenspatsfnmatchs fnmatchcase(sselfsmodulesdefaultspat((s lib/config.pys is_forbiddenás   ( s__name__s __module__s _sectionss_force_multi_values__init__sNones load_configs load_kv_filess_process_sections_process_vhosts_find_canon_vhosts set_defaultss is_forbidden(((s lib/config.pysConfig(s      WcCs…h}xt|D]l}ti|dƒ}|djot||ƒ‚ntti || ||dfƒ\}}|||