grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]-Zã@swddlZddlZddlZddlZddlZddlZddlZddlZddl Z e j ƒ�!e j de ƒddl Z WdQRXejdZejdZejdZejdZeefZejZiZdd„ZiZd d „ZGd d „d ƒZGd d„dƒZdd„Zedkrsy eƒZWnek rredƒYnXdS)éNÚignoreÚ LOAD_CONSTÚ IMPORT_NAMEÚ STORE_NAMEÚ STORE_GLOBALcCstj|gƒj|ƒdS)N)ÚpackagePathMapÚ setdefaultÚappend)Z packagenameÚpath©r ú1/opt/alt/python35/lib64/python3.5/modulefinder.pyÚAddPackagePath sr cCs|t|s zModule.__repr__)rÚ __module__Ú __qualname__rrr r r r r/s  rc@sceZdZddggdd„Zdd„Zdd„Zd d „Zd d „Zd d„Zddd6dd„Z d7dd„Z dd„Z dd„Z ddd„Z dd„Zdd„Zdd„Zd d!„Zd8d"d#„Zejd$d%„Zd&d'„Zd(d)„Zd*d+„Zdd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„ZdS)9Ú ModuleFinderNrcCsa|dkrtj}||_i|_i|_||_d|_||_||_g|_dS)Nr) Úsysr ÚmodulesÚ badmodulesÚdebugÚindentÚexcludesÚ replace_pathsÚprocessed_paths)rr r%r'r(r r r rIs         zModuleFinder.__init__cGs{||jkrwx't|jƒD]}tdddƒqWt|ddƒx$|D]}tt|ƒddƒqPWtƒdS)Nz Úendú )r%Úranger&ÚprintÚrepr)rÚlevelÚstrÚargsÚiÚargr r r ÚmsgUs zModuleFinder.msgcGs:|d}||jkr6|jd|_|j|ŒdS)Nré)r%r&r4)rr1r/r r r Úmsgin^s zModuleFinder.msgincGs:|d}||jkr6|jd|_|j|ŒdS)Nrr5)r%r&r4)rr1r/r r r Úmsgoutds zModuleFinder.msgoutc CsU|jdd|ƒt|ƒ�/}ddtjf}|jd|||ƒWdQRXdS)NéÚ run_scriptÚÚrÚ__main__)r4ÚopenÚimpÚ PY_SOURCEÚ load_module)rÚpathnameÚfpÚstuffr r r r9jszModuleFinder.run_scriptc Csrtjj|ƒ\}}tjj|ƒ\}}t|ƒ�/}|dtjf}|j||||ƒWdQRXdS)Nr;)Úosr ÚsplitÚsplitextr=r>r?r@)rrAÚdirrÚextrBrCr r r Ú load_fileps zModuleFinder.load_filer5c Cs‚|jdd||||ƒ|j|d|ƒ}|j||ƒ\}}|j||ƒ}|se|S|jr~|j||ƒdS)NéÚ import_hookr/)r4Údetermine_parentÚfind_head_packageÚ load_tailrÚensure_fromlist) rrÚcallerÚfromlistr/ÚparentÚqÚtailÚmr r r rKws zModuleFinder.import_hookcCs�|jdd||ƒ| s)|dkr=|jddƒdS|j}|dkrý|jre|d8}|dkr•|j|}|jdd|ƒ|S|jdƒ|kr¶tdƒ‚dj|jdƒd| …ƒ}|j|}|jdd|ƒ|S|jr*|j|}|jdd|ƒ|Sd|kry|j dƒ}|d|…}|j|}|jdd|ƒ|S|jddƒdS) NérLrzdetermine_parent -> Noner5zdetermine_parent ->Ú.zrelative importpath too deep) r6r7rrr#ÚcountÚ ImportErrorÚjoinrEÚrfind)rrPr/ZpnamerRr2r r r rL‚s<       #     zModuleFinder.determine_parentcCs;|jdd||ƒd|krX|jdƒ}|d|…}||dd…}n |}d}|r€d|j|f}n|}|j|||ƒ}|rÄ|jdd||fƒ||fS|r|}d}|j|||ƒ}|r|jdd||fƒ||fS|jdd|ƒtd |ƒ‚dS) NrVrMrWr5r:z%s.%szfind_head_package ->z"raise ImportError: No module namedzNo module named )r6ÚfindrÚ import_moduler7rY)rrRrr2ÚheadrTZqnamerSr r r rM¥s.   zModuleFinder.find_head_packagecCsÝ|jdd||ƒ|}x§|rÅ|jdƒ}|dkrLt|ƒ}|d|…||dd…}}d|j|f}|j|||ƒ}|s|jdd|ƒtd|ƒ‚qW|jdd |ƒ|S) NrVrNrWrr5z%s.%sz"raise ImportError: No module namedzNo module named z load_tail ->)r6r\Úlenrr]r7rY)rrSrTrUr2r^Zmnamer r r rNÀs  %zModuleFinder.load_tailcCs¸|jdd|||ƒx˜|D]�}|dkrc|s°|j|ƒ}|r°|j||dƒq t||ƒs d|j|f}|j|||ƒ}|s td|ƒ‚q WdS)NrVrOÚ*r5z%s.%szNo module named )r4Úfind_all_submodulesrOÚhasattrrr]rY)rrUrQZ recursiveÚsubÚallÚsubnameZsubmodr r r rOÏs  zModuleFinder.ensure_fromlistc Cs<|js dSi}g}|tjjdd…7}|tjjdd…7}|tjjdd…7}xÈ|jD]½}ytj|ƒ}Wn(tk r´|j dd|ƒwqYnXxv|D]n}d}xC|D];}t |ƒ} || d…|krÏ|d| …}PqÏW|r¼|dkr¼|||YnX|jdd|ƒ|S||jkry|jddƒdS|r¢|jdkr¢|jddƒdSy+|j||oº|j|ƒ\}}}Wn)tk rø|jdddƒdSYnXz|j||||ƒ}Wd|r(|j ƒX|r?t |||ƒ|jdd|ƒ|S)NrJr]zimport_module ->zimport_module -> None) r6r#ÚKeyErrorr7r$rÚ find_modulerYr@ÚcloseÚsetattr)rZpartnameÚfqnamerRrUrBrArCr r r r]ùs6  "   zModuleFinder.import_modulec Cs…|\}}}|jdd||o'd|ƒ|tjkrf|j||ƒ}|jdd|ƒ|S|tjkr”t|jƒd|dƒ} n‹|tjkryt j j |jƒƒ} WnEt k r} z%|jddt | ƒ|ƒ‚WYdd} ~ XnXtj| ƒ} nd} |j|ƒ}||_| rn|jrU|j| ƒ} | |_|j| |ƒ|jdd|ƒ|S)Nr8r@rBzload_module ->Ú Úexeczraise ImportError: )r6r>Z PKG_DIRECTORYÚ load_packager7r?ÚcompileÚreadZ PY_COMPILEDrfÚ_bootstrap_externalÚ_validate_bytecode_headerrYr0ÚmarshalÚloadsÚ add_modulerr(Úreplace_paths_in_coderÚ scan_code) rrvrBrAÚ file_infoÚsuffixÚmodeÚtyperUÚcoZ marshal_dataÚexcr r r r@s2   zModuleFinder.load_modulecCsN||jkri|j|<|r9d|j||jYs z0ModuleFinder.scan_opcodes_25..Ústorer8r5rÚabsolute_importÚrelative_import) Úco_codeÚco_namesÚ co_constsÚdisZ_unpack_opargsÚ enumerateÚ STORE_OPSrr) rr‡ÚunpackÚcoderoÚconstsZopargsr2r�Zopargr/rQr r r Úscan_opcodes_25Ss     4 zModuleFinder.scan_opcodes_25cCs'|j}|j}xÕ||ƒD]Ç\}}|dkrP|\}d|j|.r/rWr”)r•ržrrŒrr#ÚgetrÚupdaterrrLÚ RuntimeErrorr—Ú isinstancer†r‚)rr‡rUrœÚscannerZwhatr1rrQZ have_starZmmr/rRÚcr r r r‚isH            zModuleFinder.scan_codec CsØ|jdd||ƒtj|ƒ}|r1|}|j|ƒ}||_|g|_|jtj|gƒ|_|jd|jƒ\}}}z1|j||||ƒ|j dd|ƒ|SWd|rÓ|j ƒXdS)Nr8ryrzload_package ->) r6rr r€rrrrsr@r7rt)rrvrArrUrBÚbufrCr r r ryšs  zModuleFinder.load_packagecCs5||jkr|j|St|ƒ|j|<}|S)N)r#r)rrvrUr r r r€¯s zModuleFinder.add_modulecCs¡|dk r |jd|}n|}||jkrT|jdd|ƒt|ƒ‚|dkr‘|tjkrˆddddtjffS|j}tj ||ƒS)NrWrJzfind_module -> Excludedr:) rr'r7rYr"Úbuiltin_module_namesr>Z C_BUILTINr rs)rrr rRr‹r r r rsµs    zModuleFinder.find_modulecCs|tƒtddƒtddƒt|jjƒƒ}xa|D]Y}|j|}|jrntdddƒntdddƒtd ||jp”d ƒq?W|jƒ\}}|r tƒtd ƒxC|D];}t|j|jƒƒ}td |d dj|ƒƒqÌW|rxtƒtdddƒtdƒxC|D];}t|j|jƒƒ}td |d dj|ƒƒq9WdS)Nz %-25s %sÚNameÚFileú----ÚPr*r+rUz%-25sr:zMissing modules:ú?z imported fromz, z7Submodules that appear to be missing, but could also bez#global names in the parent package:)r¨r©)rªrª) r-Úsortedr#rmrrÚany_missing_mayber$rZ)rrmÚkeyrUÚmissingÚmayberZmodsr r r ÚreportÆs0        zModuleFinder.reportcCs|jƒ\}}||S)N)r®)rr°r±r r r Ú any_missingèszModuleFinder.any_missingcCs(g}g}xû|jD]ð}||jkr.q|jdƒ}|dkrY|j|ƒq||dd…}|d|…}|jj|ƒ}|dk rù||j|kr¾|j|ƒq||jkrÐq|jré|j|ƒq|j|ƒq|j|ƒqW|jƒ|jƒ||fS)NrWrr5) r$r'r[r r#r rrÚsort)rr°r±rr2reZpkgnameZpkgr r r r®ðs0       zModuleFinder.any_missing_maybecCs…tjj|jƒ}}xA|jD]6\}}|j|ƒr#||t|ƒd…}Pq#W|jrÅ||jkrÅ||krž|j dd||fƒn|j dd|fƒ|jj |ƒt |j ƒ}xJt t|ƒƒD]6}t||t|ƒƒrç|j||ƒ||Zopmaprrrrršr�rr rrrr!rÓrrÒÚKeyboardInterruptr-r r r r Ús<                  ÿõ ;