Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 ©ft`ßOã@s<ddlmZddlmZddlmZddlmZmZddlm Z m Z ddl Z ddl Z ddlZ ddlZ ddlZ ddlZ ddlZddlZddlZddlZddlZddlZejjjZejjjZejjjZejjj Z!ejjj"Z#ejjj$Z%ejjj&Z'ejjj(Z)ejjj*Z+ej,dƒZ-Gdd „d e.ƒZ/Gd d „d e/ƒZ0Gd d „d e/ƒZ1dS)é)Úabsolute_import)Úunicode_literals)Úmisc)ÚucdÚ_)Ú basestringÚurlparseNÚdnfcs~eZdZdZddd„Zdd„Z‡fdd„Zd d „Zd d „Zd d„Z dd„Z e fdd„Z e fdd„Zdd„Zedd„ƒZ‡ZS)Ú BaseConfigzlBase class for storing configuration definitions. Subclass when creating your own definitions. NcCs||jd<||_dS)NÚ_config)Ú__dict__Ú_section)ÚselfÚconfigÚsectionÚparser©rú/usr/lib/python3.6/config.pyÚ__init__<s zBaseConfig.__init__cCszd|jkrtdj|j|ƒƒ‚t|j|ƒ}|dkr4dSy|ƒjƒ}Wn tk rb}zdSd}~XnXt|t ƒrvt |ƒS|S)Nr z!'{}' object has no attribute '{}') r ÚAttributeErrorÚformatÚ __class__Úgetattrr ÚgetValueÚ ExceptionÚ isinstanceÚstrr)rÚnameÚoptionÚvalueZexrrrÚ __getattr__@s   zBaseConfig.__getattr__cs:t|j|dƒ}|dkr(tt|ƒj||ƒS|j||tƒdS)N)rr Úsuperr Ú __setattr__Ú _set_valueÚ PRIO_RUNTIME)rrrr)rrrr"NszBaseConfig.__setattr__c Cstg}|jd|jƒ|jrjxN|jjƒD]@}y|jjƒ}Wntk rPd}YnX|jd|j|fƒq&Wdj|ƒS)Nz[%s]Úz%s: %sÚ ) Úappendr r ÚoptBindsÚsecondÚgetValueStringÚ RuntimeErrorÚfirstÚjoin)rÚoutÚoptBindrrrrÚ__str__Us zBaseConfig.__str__cCst|j|dƒ}|dk S)N)rr )rrÚmethodrrrÚ _has_optionaszBaseConfig._has_optioncCs$t|j|dƒ}|dkrdS|ƒjƒS)N)rr r)rrr1rrrÚ _get_valueeszBaseConfig._get_valuecCs$t|j|dƒ}|dkrdS|ƒjƒS)N)rr Z getPriority)rrr1rrrÚ _get_prioritykszBaseConfig._get_prioritycCst|j|dƒ}|dkr&td|dƒ‚|ƒ}|dkr\y|j||ƒWntk rXYnXn¼yrt|tƒsrt|tƒrˆ|j|tjj |ƒƒnDt|tjj ƒs¤t|tjj ƒrÀt|t ƒrÀ|j|t |ƒƒn |j||ƒWnHtk �r}z*tjjtdƒ|t|ƒft|ƒd�‚WYdd}~XnXdS)zSSet option's value if priority is equal or higher than current priority.NzOption "z" does not existszError parsing '%s': %s)Ú raw_error)rr rÚsetrÚlistÚtupleÚlibdnfÚconfÚ VectorStringZ OptionBoolZOptionChildBoolÚintÚboolr+r Ú exceptionsÚ ConfigErrorrr)rrrÚpriorityr1rÚerrrr#qs*   zBaseConfig._set_valuecCsô|j|ƒrðxä|j|ƒD]Ö}|j||ƒ}| s4|dkr8d}t|j|ƒr¬y|jjƒj|ƒj||ƒWqìtk r¨}z,t j t dƒt |ƒt |ƒt |ƒt |ƒƒWYdd}~XqìXq|dkrÌt||ƒrÌt|||ƒqt jt dƒt |ƒt |ƒt |ƒƒqWdS)z+Set option values from an INI file section.ÚNoner%z,Invalid configuration value: %s=%s in %s; %sNÚarchz+Unknown configuration option: %s = %s in %s)Ú hasSectionZoptionsZgetSubstitutedValueÚhasattrr r(ÚatÚ newStringr+ÚloggerÚerrorrrrÚsetattrÚdebug)rrrÚfilenamer@rrrArrrÚ _populateŒs     0zBaseConfig._populatec Cshd|jg}|jrZxF|jjƒD]8}y|jd|j|jjƒfƒWqtk rTYqXqWdj|ƒdS)z]Return a string representing the values of all the configuration options. z[%s]z%s = %sr&) r r r(r'r,r)r*r+r-)rÚoutputr/rrrÚdump¡s  zBaseConfig.dumpcCs�tjjƒ}|j|ƒ|j|ƒsHx(|jƒD]}tjjj||ƒ|kr(|}q(Wx6|jƒD]*\}}t|t ƒrndj |ƒ}|j |||ƒqRW|j |dƒdS)zö filename - name of config file (.conf or .repo) section_id - id of modified section (e.g. main, fedora, updates) substitutions - instance of base.conf.substitutions modify - dict of modified options ú FN) r9r:Ú ConfigParserÚreadrDZgetDataÚ substituteÚitemsrr7r-ZsetValueÚwrite)rLZ section_idÚ substitutionsZmodifyrZsectrrrrrÚwrite_raw_configfile²s     zBaseConfig.write_raw_configfile)NNN)Ú__name__Ú __module__Ú __qualname__Ú__doc__rr r"r0r2r3r4r$r#Ú PRIO_DEFAULTrMrOÚ staticmethodrWÚ __classcell__rr)rrr 5s     r csÖeZdZdZd%‡fdd„ Zdd„Zedd „ƒZd d „Zd d „Z dd„Z dd„Z dd„Z dd„Z dd„Zedd„ƒZejdd„ƒZedd„ƒZejdd„ƒZedd„ƒZejd d„ƒZdefd!d"„Zed#d$„ƒZ‡ZS)&ÚMainConfz?Configuration option definitions for dnf.conf's [main] section.ÚmainNcstjjƒ}tt|ƒj|||ƒ|jdtjj gt ƒ|jdtjj gt ƒtjj j ƒ|_ tjƒ|_|jjƒjt tjjƒtjjƒrŒtjj}d}nVytjƒ}}WnDttfk rà}z$tdƒjt|ƒƒ}tjj|ƒ‚WYdd}~XnX|jj ƒjt |ƒ|jj!ƒjt |ƒg|_"dS)NZ pluginpathZpluginconfpathz/var/logzCould not set cachedir: {})#r9r:Ú ConfigMainr!r_rr#r ÚconstZ PLUGINPATHr\ZPLUGINCONFPATHrVZ SubstitutionsÚhawkeyZ detect_archrCr Zsystem_cachedirr6ZSYSTEM_CACHEDIRÚutilZ am_i_rootrZ getCacheDirÚIOErrorÚOSErrorrrrr>ÚErrorÚcachedirÚlogdirÚ tempfiles)rrrrrhrirAÚmsg)rrrrÐs$   zMainConf.__init__cCsx|jD]}tj|ƒqWdS)N)rjÚosÚunlink)rÚ file_namerrrÚ__del__ës zMainConf.__del__cCsLd}x$|jdƒD]}tjj|ƒr|}PqW|sH|jdƒd}tjj|ƒ|S)zReturns the value of reposdirNZreposdirr)r3rlÚpathÚexistsr rdZ ensure_dir)rZ myrepodirZrdirrrrÚ get_reposdirïs  zMainConf.get_reposdirc Csâ|j|ƒ}|j|ƒ}t|tƒrÞtj|ƒ}|ddkrF|j||j|ƒn˜tjj ƒ}t j dd�\}}|j j |ƒzdy|jd||ƒWn>tk r¾}z"tjjtdƒj|t|ƒƒƒ‚WYdd}~XnX|j|||ƒWdtj|ƒXdS) zŽ In case the option value is a remote URL, download it to the temporary location and use this temporary file instead. rÚfiler%zdnf-downloaded-config-)ÚprefixNz9Configuration file URL "{}" could not be downloaded: {})rsr%)r4r3rrrr#rpr9ZrepoZ DownloaderÚtempfileZmkstemprjr'Z downloadURLr+r r>r?rrrrlÚclose) rÚoptnameÚprioÚvalÚlocationZ downloaderZtemp_fdZ temp_pathrArrrÚ_check_remote_fileÿs"        zMainConf._check_remote_filecs¸ˆjdƒ‰ˆdkrˆSˆj|ƒ}|tkr,ˆSˆj|ƒ}t|tƒs€t‡fdd„|Dƒƒr´ˆj|tjj ‡fdd„|Dƒƒ|ƒˆSn4t j j t j j ˆ|jdƒƒƒr´ˆj|ˆj|ƒ|ƒˆSdS)zœ Return root used as prefix for option (installroot or "/"). When specified from commandline it returns value from conf.installroot Ú installrootú/c3s*|]"}tjjtjjˆ|jdƒƒƒVqdS)r}N)rlrprqr-Úlstrip)Ú.0Úp)r|rrú *sz6MainConf._search_inside_installroot..csg|]}ˆj|ƒ‘qSr)Ú_prepend_installroot_path)rr€)rrrú -sz7MainConf._search_inside_installroot..)r3r4ÚPRIO_COMMANDLINErrÚanyr#r9r:r;rlrprqr-r~r‚)rrwrxryr)r|rrÚ_search_inside_installroots$    z#MainConf._search_inside_installrootcCs,|j|ƒ}|j|j|ƒƒ}|j|||ƒdS)N)r4r‚r3r#)rrwrxÚnew_pathrrrÚprepend_installroot6s zMainConf.prepend_installrootcCs,tjj|jdƒ|jdƒƒ}tjjj||j ƒS)Nr|r}) rlrpr-r3r~r9r:rQrSrV)rrpZ root_pathrrrr‚<sz"MainConf._prepend_installroot_pathc Cs`ddddddddd d d d dd dddddddddddddg}�x|D�]}t||dƒ}|dk ob|gkrB|j|ƒ�r$d}|jr¨y|jjƒj|ƒjƒ}Wntk r¦YnX|�rtjj }||j |ƒkrÎ|j |ƒ}xR|D]6}|rø|j ||j |ƒ|g|ƒqÔ|j |gtjj ƒqÔWn|j ||tjj ƒqBt ||ƒ�r>t|||ƒqBtjtdƒt|ƒt|ƒƒqBWt|d dƒdk�r€|j ddtjj ƒt |dƒ�r\xÎ|jjƒD]À\}}x´|D]¬} t |j|ƒ�r"y|jjƒj|ƒjt | ƒWnJtk �r} z,tjjtd ƒ|| t| ƒft| ƒd!�‚WYdd} ~ XnXn.t ||ƒ�rr?r) rÚoptsZ config_argsrrZ appendValueZ add_priorityÚitemÚvaluesryrArkrrrÚ_configure_from_options@s\         . z MainConf._configure_from_optionscCsPd}|dk rL|gkrL|j|ƒr2|j||tjjƒntjtdƒt|ƒt|ƒƒdS)NrŽz%Unknown configuration option: %s = %s) r2r#r r:r„rHr’rr)rZpkgsrrrrÚ exclude_pkgss   zMainConf.exclude_pkgscCs(|jdƒ}|r$|jd| |jdƒƒdS)z Adjust conf options interactionsr�ÚstrictN)r3r#r4)rZskip_broken_valrrrÚ_adjust_conf_optionsŠs zMainConf._adjust_conf_optionscCs |jjdƒS)NÚ releasever)rVÚget)rrrrrš‘szMainConf.releasevercCs,|dkr|jjddƒdSt|ƒ|jd<dS)Nrš)rVÚpopr)rryrrrrš–scCs |jjdƒS)NrC)rVr›)rrrrrCžsz MainConf.archcCsb|dkr|jjddƒdS|tjjjƒkrFtdƒ}tjj|j d|ƒƒ‚||jd<tjj |ƒ|_ dS)NrCzIncorrect or unknown "{}": {}) rVrœr ÚrpmÚ _BASEARCH_MAPÚkeysrr>rgrr�)rryrkrrrrC£s cCs |jjdƒS)Nr�)rVr›)rrrrr�°szMainConf.basearchcCsT|dkr|jjddƒdS|tjjjƒkrFtdƒ}tjj|j d|ƒƒ‚||jd<dS)Nr�zIncorrect or unknown "{}": {}) rVrœr r�ržr•rr>rgr)rryrkrrrr�µscCs´|dkr|jdƒ}tjjƒ}y|j|ƒWndtk rd}ztjjt dƒ||fƒ‚WYdd}~Xn,t k rŽ}zt j |ƒWYdd}~XnX|j ||j||ƒ|jd||ƒdS)NrŠzParsing file "%s" failed: %s)r3r9r:rQrRr+r r>r?rrerHr’rMr r#)rrLr@rrArrrrRÁs  (z MainConf.readcCs|jdƒtjjkS)Nr‹)r3r rbZ VERBOSE_LEVEL)rrrrÚverboseÑszMainConf.verbose)r`N)rXrYrZr[rroÚpropertyrrr{r†rˆr‚r–r—r™ršÚsetterrCr�r\rRr r^rr)rrr_Ís& ?     r_cs*eZdZdZd‡fdd„ Zdd„Z‡ZS)ÚRepoConfz4Option definitions for repository INI file sections.NcsP|r |jntjjƒ}tt|ƒjtjj|ƒ||ƒ||_|rL|jj ƒj t |ƒdS)N) r r9r:rar!r£rZ ConfigRepoZ_mainConfigRefHolderrr6r\)rÚparentrrZ mainConfig)rrrrÙs zRepoConf.__init__c Cst|ddƒdkr0xd D]}|j|dtjjƒqWt|diƒ}xØ|jƒD]Ì\}}tj|j|ƒs^qFx²|jƒD]¦\}}xœ|D]”}t|j |ƒròy|j j ƒj |ƒj t|ƒWnLt k rî} z0tjjtdƒ|j||t| ƒft| ƒd�‚WYdd} ~ XnXqvtdƒ} tj| |j|ƒqvWqhWqFWdS) zConfigure repos from the opts. rŒNFÚ repo_gpgcheckÚ repo_setoptsz7Error parsing --setopt with key '%s.%s', value '%s': %s)r5z-Repo %s did not have a %s attr. before setopt)rŒr¥)rr#r r:r„rTÚfnmatchr rEr r(rFrGr+r>r?rrrHr’) rr“rwr¦ZrepoidZsetoptsrr•ryrArkrrrr–âs$    2z RepoConf._configure_from_options)NN)rXrYrZr[rr–r^rr)rrr£Ös r£)2Z __future__rrZdnf.yumrZdnf.i18nrrZ dnf.pycomprrr§Zdnf.conf.substitutionsr Z dnf.constZdnf.exceptionsZdnf.utilrcZloggingrlZ libdnf.confr9Z libdnf.reporur:ZOptionZPriority_EMPTYZ PRIO_EMPTYZPriority_DEFAULTr\ZPriority_MAINCONFIGZPRIO_MAINCONFIGZPriority_AUTOMATICCONFIGZPRIO_AUTOMATICCONFIGZPriority_REPOCONFIGZPRIO_REPOCONFIGZPriority_PLUGINDEFAULTZPRIO_PLUGINDEFAULTZPriority_PLUGINCONFIGZPRIO_PLUGINCONFIGZPriority_COMMANDLINEr„ZPriority_RUNTIMEr$Z getLoggerrHÚobjectr r_r£rrrrÚs@