/opt/alt/python37/lib/python3.7/site-packages/clselect/__pycache__
NameSizeModeActions
clextselect.cpython-37.pyc148740644editdlrm
clpassenger.cpython-37.pyc184890644editdlrm
clselect.cpython-37.pyc171060644editdlrm
clselectctl.cpython-37.pyc71490644editdlrm
clselectctlnodejsuser.cpython-37.pyc146790644editdlrm
clselectctlphp.cpython-37.pyc292120644editdlrm
clselectctlpython.cpython-37.pyc292400644editdlrm
clselectctlruby.cpython-37.pyc134050644editdlrm
clselectexcept.cpython-37.pyc150430644editdlrm
clselectprint.cpython-37.pyc50040644editdlrm
clselectstatistics.cpython-37.pyc58630644editdlrm
cluserextselect.cpython-37.pyc112340644editdlrm
cluseroptselect.cpython-37.pyc178190644editdlrm
cluserselect.cpython-37.pyc197810644editdlrm
utils.cpython-37.pyc140970644editdlrm
__init__.cpython-37.pyc6970644editdlrm
Edit: /opt/alt/python37/lib/python3.7/site-packages/clselect/__pycache__/clextselect.cpython-37.pyc (14874B)
B ¥ÍdÚNã@s–ddlmZddlmZddlmZddlZddlZddlmZddl m Z ddl m Z dd l mZdd lmZdd lmZeƒaGd d „d e ƒZdS)é)Úabsolute_import)Úprint_function)ÚdivisionN)Ú configparser)Úmapé)ÚClSelect)ÚClSelectExcept)Úclprint)Úutilsc@seZdZdZdZd4dd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z d5dd„Z d6dd„Z d7dd„Zdd„ZeeƒZdd„Zd8dd„ZeeƒZd d!„ZeeƒZd"d#„ZeeƒZd$d%„Zd&d'„Zd(d)„Zd*d+„Zed,d-„ƒZed.d/„ƒZed0d1„ƒZed2d3„ƒZdS)9Ú ClExtSelectz)/etc/cl.selector/php.extensions.conflictsz/opt/altÚphpcCst ||¡g|_d|_dS)NF)rÚ__init__Ú _conflictsÚ!_use_default_exts_from_native_php)ÚselfÚitem©rúE/opt/alt/python37/lib/python3.7/site-packages/clselect/clextselect.pyrs zClExtSelect.__init__cCs ||jkS)N)Ú_hidden_extensions)rÚext_namerrrÚ_is_disabled_extention&sz"ClExtSelect._is_disabled_extentioncCsJ| ¡}| ||¡|j|j|j|f|j|dd}| d |¡tj¡dS)zM Adds extensions to default list of extensions for a version Úenable_extentions)ÚactionÚ N) Úget_all_alternatives_dataÚ_check_alternativeÚ_process_ini_fileÚ DEFAULTS_PATHÚ_itemÚ_add_extensionsÚ_write_to_fileÚjoinr )rÚversionÚext_listÚ alternativesÚdefaults_contentsrrrÚenable_extensions)s  zClExtSelect.enable_extensionscCsF| ¡}| ||¡| |j|j|f|j|¡}| d |¡|j¡dS)a  Replaces extensions to default list of extensions for a version. Writes/updates /etc/cl.selector/defaults.cfg file :param version: alt-php version to process :param ext_list: list extensions to set as defaults for the version rN)rrrrrÚ_replace_extensionsr!r")rr#r$r%r&rrrÚreplace_extensions7s zClExtSelect.replace_extensionscCsJ| ¡}| ||¡|j|j|j|f|j|dd}| d |¡|j¡dS)zÈ Removes extensions from default list of extensions for a version :param version: alt-php version to process :param ext_list: comma separated extensions list to delete Údisable_extentions)rrN)rrrrrÚ_del_extensionsr!r")rr#r$r%r&rrrÚdisable_extensionsHs  zClExtSelect.disable_extensionscCsPd}d}tƒ}d}| ¡}| ||¡| |¡}| |¡}y| |¡} Wntjk rbg} YnXttdd„|ƒƒ} x°| D]¨} d} | |kr˜| |kr˜d} t | df| df| dfgƒ} t | ƒ  | ¡s|| |kr|j r|| kr|   |df¡|   |df¡d}|  |¡q||   | | f¡| r||  | ¡q|W|r:|  ||¡tt| t d¡d ƒS) aœ Returns list of extensions marking built-ins and enabled ones Also replaces mysqli->nd_mysqli in defaults.cfg for new installations according to LVEMAN-1399 :param version: php version :return Tuple: (extension_name, extension_state) extension_state: None -- built-in extension False/True -- disabled/enabled extension ZmysqliZ nd_mysqliFcSs|dfS)Nr)ÚirrrÚtóz-ClExtSelect.list_extensions..TNr)Úkey)ÚlistrrÚ_get_enabled_extensionsÚ _get_builtinsÚ_load_extensions_listr ÚUnableToGetExtensionsrÚsetÚ intersectionrÚappendr)ÚtupleÚsortedÚoperatorÚ itemgetter)rr#Zext_mysqli_nameZext_nd_mysqli_nameZext_list_to_writeZis_need_to_write_defaultsr%Zenabled_extensionsZ as_built_inZ as_extensionsÚall_extensionsÚextÚstatusZext_setrrrÚlist_extensionsWs>         zClExtSelect.list_extensionsc Csdy6|j d|j|fd¡}d|_ttdd„| d¡ƒƒStjtj fk r^d|_|  d¡SXd S) zB Returns list of enabled extensions for a version z%s%sÚmodulesFcSs| ¡S)N)Ústrip)r-rrrr.›r/z5ClExtSelect._get_enabled_extensions..ú,TÚnativeN) Ú_dhÚgetrrr1rÚsplitÚ ConfigParserÚNoSectionErrorÚ NoOptionErrorr3)rr#Údatarrrr2’sz#ClExtSelect._get_enabled_extensionsTc Cs| |¡}t|ƒdks"||dkr&|Sd}g}tƒ}| |d¡} x(tt|ƒƒD]} ||  d¡rP| }PqPW|r°|||| d¡dd… ¡} | t t dd„|   d¡ƒƒ¡| |¡|  |¡}x |D]} |  | | g| ¡¡qÊWd d t|ƒ¡} |r| ||<n | | ¡| |¡S) zà Adds 'modules' option to section or extends it @param section_info: tuple (item and version) @param section: list @param data: list @return: list rNrrAú=cSs| ¡S)N)rB)r-rrrr.¶r/z-ClExtSelect._add_extensions..rCz modules = %s)Ú_make_section_headerÚlenr6Ú_compose_alt_pathÚrangeÚ startswithÚfindrBÚextendr1rrGÚ_check_for_conflictsÚupdateÚ_include_dependenciesr"r:r8Ú _smooth_data) rÚ section_infoÚsectionrKÚtraceÚsection_headerÚmidxrAÚresolved_modulesÚalt_pathÚidxÚmodules_stringÚmodrrrr  s0 "     zClExtSelect._add_extensionscsB| |¡}t|ƒdks"||dkr&|Sd}| |d¡}x(tt|ƒƒD]}|| d¡rF|}PqFW|dd…} |ràtƒ} | | ¡} xH| D]@‰| ˆg|¡} t| ƒdkr¾t  ‡fdd„| Dƒ¡|   | ¡qˆWdd  t | ƒ¡} ndd  t |ƒ¡} |r| ||<n |  | ¡t  ¡} x"|  ¡D]} | |krt| =qW| |¡S) aK Adds 'modules' option to section or extends it @param section_info: tuple (item and version). Example: ('php', '5.2') @param section: list. Modules from /etc/cl.selecto/defaults.cfg for supplied php version Example: ['[php5.2]', 'modules = bcmath,dom,gd,imap,json,mcrypt,mysql,mysqli,phar,posix,sockets,uuid,wddx,xmlreader,zip', '', ''] @param data: list: Modules list to set from command line @:param trace: ????, Currently not using, always True @return: list rNrrAcsi|]}|ˆkrˆ|“qSrr)Ú.0Ú dep_module)rarrú âsz3ClExtSelect._replace_extensions..z modules = %srC)rMrNrOrPrQr6rTrVÚdepend_modules_dictrUr"r:r8ÚcopyÚkeysrW)rrXrYrKrZr[r\r^r_rAr]Z include_depr`rcr)rarr(Âs8         zClExtSelect._replace_extensionscCs:| |¡}t|ƒdks"||dkr&|Sd}| |d¡}x(tt|ƒƒD]}|| d¡rF|}PqFW|sj|S|||| d¡dd… ¡} ttdd„|   d¡ƒƒ} |   ¡} x@t|ƒD]4} | | krÄq¶|   | g¡} |  | | |¡ràq¶|   | ¡q¶Wtƒ}x | D]}| | |g|¡¡qúWd d t|ƒ¡} | ||<| |¡S) zÞ Deletes items in data list from section list @param section_info: tuple (item and version) @param section: list @param data: list of extension names to delete @return: list rNrrArLcSs| ¡S)N)rB)r-rrrr.r/z-ClExtSelect._del_extensions..rCz modules = %s)rMrNrOrPrQrRrBr6rrGrfÚ differenceÚ_is_dependencyÚdiscardrUrVr"r:rW)rrXrYrKrZr[r\r^r_r`rAr]rZrest_of_modulesÚtmprarrrr+òs6 "  zClExtSelect._del_extensionscCs2x,|D]$}| ||¡}||kr|t|<dSqWdS)a^ Checks if module in modules dependent on ext and returns true or false @param ext: Module to check @param modules: set of names of installed modules @param alt_path: Path to alt-php ini dir: /opt/alt/phpXX/etc/php.d.all @return: bool. True if ext present in dependencies of any module in modules list TF)Ú_get_dependenciesre)Úclsr>rAr^raÚ dependenciesrrrris  zClExtSelect._is_dependencyc Cs.tj |jd|j| dd¡fdd|jf¡S)z< Composes and returns path for alternatives z%s%sÚ.ÚÚetcz%s.d.all)ÚosÚpathr"ÚSYSTEM_ALT_PATHrÚreplace)rr#rrrrO's zClExtSelect._compose_alt_pathNc CsXd}d}|dd…}x<|D]2}tj |d|f¡}yôt|ƒ} g} g} x¦| D]ž} |  d¡sf|  d¡r¶| || ¡} | |kr”| |kr”| d| ¡d}qN|  d|f¡d}|  | ¡g} |  d ¡sN|  d ¡sN|rÞ|  |   ¡¡qN|  |   ¡¡qNW|   ¡|dk r||kr| ||<|r(|  |||¡}Wqt t fk rN| |¡|SXqW|S) zÒ Includes dependencies into extensions list and update data dict if present @param ext_list: list @param alt_path: string @param data: dict @return: list FNz%s.iniÚ extensionZzend_extensionrTz ;---%s---ú;r)rrrsr"ÚopenrQÚ_single_out_extensionÚinsertr8rSÚrstripÚcloserVÚOSErrorÚIOErrorÚremove)rmr$r^rKÚfoundÚ in_sectionZresult_ext_listr>Úext_pathÚfÚ file_contentsZpending_contentsÚlinerrrrrV1sD          z!ClExtSelect._include_dependenciesc Csztƒ}tj |d|f¡}yBt|ƒ}x4|D],}| d¡r*| ||¡}||kr*| |¡q*W|Stt fk rt|SXdS)zŸ Checks if an extension has dependencies and if so returns them Otherwise returns None @param ext: string @return: set z%s.inirvN) r6rrrsr"rxrQryÚaddr}r~)rmr>r^rnr‚rƒr…rrrrrl_s   zClExtSelect._get_dependenciescCsÊddi}d|kr,|| d¡dd… ¡}n|| d¡dd… d¡}d|krb|d| d¡…}d |kr||d| d ¡…}||krŽ||}n8||krœ|}n*d |krÆd  td d „| d ¡ƒ¡|krÆ|}|S)z= Singles out and returns extension from line ZixedZsourceguardianú/rNrLz "roú-Ú_rpcSs| ¡S)N)Ú capitalize)r-rrrr.…r/z3ClExtSelect._single_out_extension..)ÚrfindrBrRr"rrG)r>r…Zquirksrrrrryts  z!ClExtSelect._single_out_extensioncCsF|js| ¡tƒ}x,|D]$}| ||¡r| |¡s| |¡qW|S)z? Removes from extensions list conflicting ones )rÚ_load_conflicting_extensionsr6Ú_is_not_conflictingrr†)rr$Ú clean_setr>rrrrT‹s   z ClExtSelect._check_for_conflictscCs6x0|jD]&}||krt| ¡ |¡ƒdkrdSqWdS)z; Checks extension against conflicting sets rFT)rrNrfr7)rr>rŽÚconflictrrrrs  zClExtSelect._is_not_conflictingcCs^t |j¡}xL| ¡D]@}d|kr$qttdd„| d¡ƒƒ}t|ƒdkrJq|j  |¡qWdS)zU Loads conflicting extensions from file and saves'em as list of sets rCcSs| ¡S)N)rB)r-rrrr.¯r/z:ClExtSelect._load_conflicting_extensions..éN) r Zread_file_as_stringÚCONFLICTS_PATHÚ splitlinesr6rrGrNrr8)rZ conflictsr…Z conflict_setrrrrŒ§s  z(ClExtSelect._load_conflicting_extensionscCs‚| |¡}yTg}xFt |¡D]8}| d¡s,q|d| d¡…}||jkrJq| |¡qWt|ƒStk r|t   |¡‚YnXdS)z` Loads alternative extensions list for a version @param version: string z.iniN) rOrrÚlistdirÚendswithrRrr8r:r}r r5)rr#r^Zalt_extensionsÚfilenamervrrrr4´s   z!ClExtSelect._load_extensions_listcCs0x*|D]"\}}t ddd||fdœ¡qWdS)zR Prints info @param ext: string @param data: list ÚtextÚWARNz%s enabled as dependency (%s))r?ÚmessageN)r Ú print_diag)Zdependens_infor-r>rrrÚ_print_dependencies_infoÇs z$ClExtSelect._print_dependencies_infocs,|sgSt|ƒ ˆg¡}‡‡fdd„|DƒS)zv Get array of dependenses [(ext, depending ext)] @param ext: string @param data: list csg|]}|ˆkr|ˆf‘qSrr)rbr-)r>r$rrú ßsz5ClExtSelect.get_dependencies_list..)r6rh)r>rKr$Údiffr)r>r$rÚget_dependencies_listÕsz!ClExtSelect.get_dependencies_listcCst|ƒ |¡S)N)r6rh)Z init_listZ processed_setrrrÚget_conflicts_infoászClExtSelect.get_conflicts_infocCs.|r*x$|D]}t ddd|fdœ¡q WdS)z~ Prepares data for printing conflicts if any @param init_list: list @param processed_set: set r–r—z%s skipped as conflicting)r?r˜N)r r™)rœr-rrrÚ_print_conflicts_infoås  z!ClExtSelect._print_conflicts_info)r )T)T)T)N)Ú__name__Ú __module__Ú __qualname__r‘rtrrr'r)r,r@r2r r(r+riÚ classmethodrOrVrlryÚ staticmethodrTrrŒr4ršrržrŸrrrrr s: ; " 0 $ ,    r )Ú __future__rrrrrr;Ú future.movesrrHÚbuiltinsrÚclselectrÚclselectexceptr Ú clselectprintr rpr Údictrer rrrrÚs