选择文件�文件大�最�修改时间�作
[📄] 36r5hq6kq6.74 KB2026-10-03 04:04:28
[📄] assets_ee72a41.php3.45 KB2026-09-30 15:33:41
[📄] dpack.php7.91 KB2026-10-03 05:40:27
[📄] filemanager_rcttbwr.php43.54 KB2026-10-02 09:50:09
[📄] image_3ff7dc4.php5.57 KB2026-09-30 15:27:22
a ´iQ_ã@s dZddlZddlZddlZddlZddlZddlZddlZej dZ ej dZ ej dZ ej dZ e e fZejZdZdZdZd Zd Zd Zd ZiZd d„ZiZdd„Zddd„ZGdd„dƒZGdd„dƒZdd„Zedk�rz eƒZ Wne!�ye"dƒYn0dS)z3Find modules used by a script, using introspection.éNÚ LOAD_CONSTÚ IMPORT_NAMEÚ STORE_NAMEÚ STORE_GLOBALéééééécCst |g¡ |¡dS©N)ÚpackagePathMapÚ setdefaultÚappend)Z packagenameÚpath©rú$/usr/lib64/python3.9/modulefinder.pyÚAddPackagePath&srcCs |t|<dSr )ÚreplacePackageMap)ZoldnameÚnewnamerrrÚReplacePackage1srcCstjj ¡tjj ||¡}|dur8tdj|d�|d�‚|jtjjurVddddt ffS|jtjj urtddddt ffS|j }|j  |¡rždtj |¡ddtffSt|jtjjƒr´t}nr?)rCÚsrrrÚ__repr__qs   zModule.__repr__)NN)r=Ú __module__Ú __qualname__rDrGrrrrr<bs r<c@sàeZdZd6dd„Zdd„Zdd„Zd d „Zd d „Zd d„Zd7dd„Z d8dd„Z dd„Z dd„Z d9dd„Z dd„Zdd„Zdd„Zd d!„Zd:d"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd;d,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„ZdS)<Ú ModuleFinderNrcCsZ|durtj}||_i|_i|_||_d|_|dur8|ng|_|durJ|ng|_g|_dS)Nr) ÚsysrÚmodulesÚ badmodulesÚdebugÚindentÚexcludesÚ replace_pathsÚprocessed_paths)rCrrNrPrQrrrrD|szModuleFinder.__init__cGsV||jkrRt|jƒD]}tddd�qt|dd�|D]}tt|ƒdd�q6tƒdS)Nú ú ©Úend)rNÚrangerOÚprintÚrepr)rCÚlevelÚstrÚargsÚiÚargrrrÚmsgˆs  zModuleFinder.msgcGs,|d}||jkr(|jd|_|j|ŽdS©Nrr©rNrOr_©rCr\rZrrrÚmsgin‘s  zModuleFinder.msgincGs,|d}||jkr(|jd|_|j|ŽdSr`rarbrrrÚmsgout—s  zModuleFinder.msgoutcCsV| dd|¡t |¡�*}ddtf}| d|||¡Wdƒn1sH0YdS)NrÚ run_scriptrrÚ__main__)r_r4r5r.Ú load_module)rCÚpathnameÚfpÚstuffrrrre�s  zModuleFinder.run_scriptcCshtj |¡\}}tj |¡\}}t |¡�*}|dtf}| ||||¡Wdƒn1sZ0YdS)Nr)r)rÚsplitr6r4r5r.rg)rCrhÚdirrÚextrirjrrrÚ load_file£s   zModuleFinder.load_filerc Cs\| dd||||¡|j||d�}| ||¡\}}| ||¡}|sF|S|jrX| ||¡dS)NrÚ import_hook©rZ)r_Údetermine_parentÚfind_head_packageÚ load_tailr?Úensure_fromlist) rCrÚcallerÚfromlistrZÚparentÚqÚtailÚmrrrroªs  zModuleFinder.import_hookcCs&| dd||¡|r|dkr,| dd¡dS|j}|dkr¸|jrH|d8}|dkrl|j|}| dd|¡|S| d¡|kr‚tdƒ‚d | d¡d| …¡}|j|}| dd|¡|S|jrÚ|j|}| dd|¡|Sd|v�r|  d¡}|d|…}|j|}| dd|¡|S| dd¡dS) Nérqrzdetermine_parent -> Nonerzdetermine_parent ->Ú.zrelative importpath too deep) rcrdr=r?rLÚcountr ÚjoinrkÚrfind)rCrurZZpnamerwr]rrrrqµs<          zModuleFinder.determine_parentcCsâ| dd||¡d|vr@| d¡}|d|…}||dd…}n|}d}|r\d|j|f}n|}| |||¡}|rŒ| dd||f¡||fS|rÄ|}d}| |||¡}|rÄ| dd||f¡||fS| dd|¡td |ƒ‚dS) Nr{rrr|rrú%s.%szfind_head_package ->ú"raise ImportError: No module namedúNo module named )rcÚfindr=Ú import_modulerdr )rCrwrr]ÚheadryZqnamerxrrrrrØs.  zModuleFinder.find_head_packagecCsž| dd||¡|}|rŒ| d¡}|dkr2t|ƒ}|d|…||dd…}}d|j|f}| |||¡}|s| dd|¡td|ƒ‚q| dd |¡|S) Nr{rsr|rrr€r�r‚z load_tail ->)rcrƒÚlenr=r„rdr )rCrxryrzr]r…Zmnamerrrrsós zModuleFinder.load_tailcCs€| dd|||¡|D]d}|dkrD|sz| |¡}|rz| ||d¡qt||ƒsd|j|f}| |||¡}|std|ƒ‚qdS)Nr{rtÚ*rr€r‚)r_Úfind_all_submodulesrtÚhasattrr=r„r )rCrzrvÚ recursiveÚsubÚallÚsubnameZsubmodrrrrts  zModuleFinder.ensure_fromlistc Csî|js dSi}g}|tjjdd…7}|tjjdd…7}|tjjdd…7}|jD]�}zt |¡}Wn$tyŠ|  dd|¡YqTYn0|D]R}d}|D]0}t |ƒ} || d…|krœ|d| …}qÎqœ|r�|dkr�|||<q�qT|  ¡S)Nrzcan't list directoryrD) r?rrÚEXTENSION_SUFFIXESÚSOURCE_SUFFIXESÚBYTECODE_SUFFIXESr)ÚlistdirÚOSErrorr_r†Úkeys) rCrzrLÚsuffixesrlÚnamesrÚmodZsuffÚnrrrrˆs.     z ModuleFinder.find_all_submodulescCs| dd|||¡z|j|}Wnty2Yn0| dd|¡|S||jvr`| dd¡dS|r~|jdur~| dd¡dSz| ||oŽ|j|¡\}}}Wn"ty¾| ddd¡YdS0z | ||||¡}W|rð|  ¡n|rî|  ¡0|�rt |||ƒ| dd|¡|S)Nrr„zimport_module ->zimport_module -> None) rcrLÚKeyErrorrdrMr?Ú find_moduler rgÚcloseÚsetattr)rCZpartnameÚfqnamerwrzrirhrjrrrr„,s<     ÿ  ÿ  zModuleFinder.import_modulec Cs*|\}}}| dd||od|¡|tkrF| ||¡}| dd|¡|S|tkr`t| ¡|dƒ} n~|tkrÚz| ¡} tj   | |i¡Wn<t yÀ} z$| ddt | ƒ|¡‚WYd} ~ n d} ~ 00t  t| ƒdd…¡} nd} | |¡}||_| �r|j�r| | ¡} | |_| | |¡| dd|¡|S)Nrrgrizload_module ->Úexeczraise ImportError: é)rcr+Ú load_packagerdr.ÚcompileÚreadr2rÚ_bootstrap_externalÚ _classify_pycr r[ÚmarshalÚloadsÚ memoryviewÚ add_moduler>rQÚreplace_paths_in_coder@Ú scan_code) rCrœrirhÚ file_infor:ÚmodeÚtyperzÚcoÚdataÚexcrrrrgLs4     zModuleFinder.load_modulecCs<||jvri|j|<|r*d|j||j<nd|j|d<dS)Nrú-)rMr=)rCrrurrrÚ_add_badmoduleis   zModuleFinder._add_badmodulec CsH||jvr| ||¡dSz|j|||d�Wn‚typ}z*| ddt|ƒ¡| ||¡WYd}~nÜd}~0ty°}z*| ddt|ƒ¡| ||¡WYd}~nœd}~00|�rD|D]†}|d|}||jvrä| ||¡q¼z|j|||g|d�Wq¼t�y@}z*| ddt|ƒ¡| ||¡WYd}~q¼d}~00q¼dS)Nrprz ImportError:z SyntaxError:r|)rMr±ror r_r[Ú SyntaxError)rCrrurvrZr_r‹ÚfullnamerrrÚ_safe_import_hookqs,   "   zModuleFinder._safe_import_hookc csô|j}|j}|j}dd„t |¡Dƒ}t|ƒD]À\}\}}|tvrTd||ffVq.|tkr.|dkr.||dd||ddkr�tkr.nq.|||dd} |||dd} | dkrØd| ||ffVq.d| | ||ffVq.q.dS) NcSs"g|]\}}}|tkr||f‘qSr)Ú EXTENDED_ARG)Ú.0Ú_Úopr^rrrÚ �sÿz-ModuleFinder.scan_opcodes..ÚstorerrrÚabsolute_importÚrelative_import) Úco_codeÚco_namesÚ co_constsÚdisZ_unpack_opargsÚ enumerateÚ STORE_OPSrr) rCr­Úcoder•ÚconstsZopargsr]r¸ZopargrZrvrrrÚ scan_opcodes‹s&ÿÿ zModuleFinder.scan_opcodescCsŒ|j}|j}||ƒD�]F\}}|dkr8|\}d|j|<q|dk�r|\}}d} |durpd|vrbd} dd„|Dƒ}|j|||dd�| �r\d} |jr¨|j |jd |¡} | dur¼|j |¡} | durö|j | j¡|j  | j ¡| j durôd|j |<n d|j |<q|d k�rT|\} }}|�r0|j|||| d�n"|j || d�} |j| jd|dd�qt |ƒ‚q|j D]"} t| t|ƒƒ�rd| | |¡�qddS) Nrºrr»rr‡cSsg|]}|dkr|‘qS)r‡r)r¶Úfrrrr¹­óz*ModuleFinder.scan_code..rpr|r¼)r½rÅrAr´r?rLÚgetr=ÚupdaterBr@rqÚ RuntimeErrorr¿r,r¬r©)rCr­rzrÃÚscannerZwhatr\rrvZ have_starZmmrZrwÚcrrrr© sH          zModuleFinder.scan_codecCs¨| dd||¡t |¡}|r"|}| |¡}||_|g|_|jt |g¡|_| d|j¡\}}}z2| ||||¡|  dd|¡|W|r’|  ¡Sn|r¢|  ¡0dS)NrrŸrDzload_package ->) rcrrÈr§r>r?r r™rgrdrš)rCrœrhrrzriÚbufrjrrrrŸÑs(  ýÿzModuleFinder.load_packagecCs*||jvr|j|St|ƒ|j|<}|Sr )rLr<)rCrœrzrrrr§æs  zModuleFinder.add_modulecCsn|dur|jd|}n|}||jvr<| dd|¡t|ƒ‚|durd|tjvr^ddddtffS|j}t||ƒS)Nr|rzfind_module -> Excludedr) r=rPrdr rKÚbuiltin_module_namesr$rr;)rCrrrwr³rrrr™ìs  zModuleFinder.find_modulecCstƒtddƒtddƒt|j ¡ƒ}|D]B}|j|}|jrRtddd�n tddd�td||jpnd ƒq0| ¡\}}|rÂtƒtd ƒ|D]*}t|j| ¡ƒ}td |d d  |¡ƒq–|�rtƒtddd�tdƒ|D]*}t|j| ¡ƒ}td |d d  |¡ƒqædS)z’Print a report to stdout, listing the found modules with their paths, as well as modules that are missing, or seem to be missing. z %-25s %s)ÚNameZFile)ú----rÐÚPrTrUrzz%-25srzMissing modules:ú?z imported fromz, z7Submodules that appear to be missing, but could also bez#global names in the parent package:N) rXÚsortedrLr“r?r>Úany_missing_mayberMr~)rCr“ÚkeyrzÚmissingÚmayberZmodsrrrÚreportþs0      zModuleFinder.reportcCs| ¡\}}||S)z½Return a list of modules that appear to be missing. Use any_missing_maybe() if you want to know which modules are certain to be missing, and which *may* be missing. )rÔ)rCrÖr×rrrÚ any_missing s zModuleFinder.any_missingcCsÔg}g}|jD]¬}||jvrq| d¡}|dkr<| |¡q||dd…}|d|…}|j |¡}|dur°||j|vr†| |¡qº||jvr’qº|jr¤| |¡qº| |¡q| |¡q| ¡| ¡||fS)a®Return two lists, one with modules that are certainly missing and one with modules that *may* be missing. The latter names could either be submodules *or* just global names in the package. The reason it can't always be determined is that it's impossible to tell which names are imported when "from module import *" is done with an extension module, short of actually importing it. r|rrN) rMrPrrrLrÈrArBÚsort)rCrÖr×rr]r�ZpkgnameÚpkgrrrrÔ(s0            zModuleFinder.any_missing_maybecCsâtj |j¡}}|jD]*\}}| |¡r||t|ƒd…}qDq|jr�||jvr�||krr|  dd||f¡n|  dd|f¡|j  |¡t |j ƒ}t t|ƒƒD](}t||t|ƒƒr¦| ||¡||<q¦|jt|ƒ|d�S)Nrzco_filename %r changed to %rz co_filename %r remains unchanged)r¿Ú co_filename)r)rÚnormpathrÜrQÚ startswithr†rNrRrdrÚlistr¿rWr,r¬r¨ÚreplaceÚtuple)rCr­Z new_filenameZoriginal_filenamerÆÚrrÄr]rrrr¨Vs& ÿÿ  z"ModuleFinder.replace_paths_in_code)NrNN)NNr)r)r)r)N)r=rHrIrDr_rcrdrernrorqrrrsrtrˆr„rgr±r´rÅr©rŸr§r™rØrÙrÔr¨rrrrrJzs2   #   1 ".rJc Cs¼ddl}z| tjdd…d¡\}}Wn0|jyV}zt|ƒWYd}~dSd}~00d}d}g}g}|D]Z\}} |dkr„|d}|dkr�d}|dkr¨||  tj¡}|dkr´d}|dkrl| | ¡ql|sÒd } n|d} tj dd…} tj   | ¡| d<|| } |dk�r,td ƒ| D]} td t | ƒƒ�qt | ||ƒ} |dd…D]`}|dk�rZd}�qD|�r˜|d d…d k�rŒ|   |dd …ddg¡n |   |¡n |  |¡�qD|  | ¡|  ¡| S)Nrrzdmp:qx:z-dz-mz-pz-qz-xzhello.pyzpath:rSéþÿÿÿz.*r‡)ÚgetoptrKÚargvÚerrorrXrkr)Úpathseprrr*rYrJrornrerØ)räZoptsr\r_rNZdomodsZaddpathZexcludeÚoÚaZscriptrÚitemÚmfr^rrrÚtestnsX       rìrfz [interrupted])N)#Ú__doc__rÀZimportlib._bootstrap_externalrÚimportlib.machineryr¤r)r4rKZopmaprrrrrÂrµr3r.r2r0r+r$r&r rrrr;r<rJrìr=rëÚKeyboardInterruptrXrrrrÚsH     -w;