ÿØÿà JFIF    ÿÛ „ !.%+&8&+/1555$;@;4?.451 4,$,44444444444414444444444444444444444444444444444444ÿÀ  á á" ÿÄ     ÿÄ ?    !1AQaq"2‘¡±ÁðBRbrÑá#‚’¢²3S CñÿÄ   ÿÄ !    !1QAa‘2ÿÚ   ? 5˜Z¯V¦cø)›t/? z¨±>Õ5€¶‹Á¤·¼z¼Ü¬+ñ®v¤¨_ˆR­BFn©—˜ý®ç̝P8gýt·ÉSTŦˆìät?þé¼íìN/Þa)ì–í6ô… Ï¿øÃj´¿KÇü]ÿ ªô¹-eKànëÕHTx}ýSÜ›ÿ ”7Ø×&µ<¦  ¥ÑO¶[Ù¯ä¨ÞÃÿ PZ-¬;#õ|•oaÿ ©CìÞz3˜öː/¤­ñTûIØ}š^ mÓ%ªxˆ¥ÉŸu=Z+ISe¿45™¼u;ú&WØ÷€æßQ™®{|íx*TC“#ZŠìZ§²‹ 6pv…³¿¡äª*áZÐ%ÒOáˆo"x«OHk w±æ+¬V(kMúŸ5Vö«$ ÁrÏbàb57/luR ¸ÑÛj Òµì`Мq­û žICÀÊ•©4€Âcà¨Ï€O´<èÐ:›ù(Ë^L8þ‘ÍÌ#¸Ð_Ì©ÙK(Öz 4¬û+¸;ü’V’84‘¬ÃŽ:[â‡ÔÌáõp¢~§ªlæ£ö{®G>J¼"°‡7¯ÆÉèßû ‹É‹§ÁòÃýâßî ^ƾÙõ‹×óH#«LP½ïX=xÑÍ$|W?•~• îëÔ©ª‹ {ÝT…Kÿ ”hûâá)J*ö˜–ÔU;iÇ€/ ÆþjóZ\ýwØ=Ìm ºèËL9 ýèÆð/¨’¥öo=nË.%Îì ŽÕ¯È|{Oj²ƒE6e/ßdÄõ²Ìâ1O®ò×TsəԸhOMýíMˆ¿¼H˜l²,7Â¥#MF/Úf°Ö½± ¸–dr‹NýÊ íjqx{œÉ ä-È ¦ øÄër¨q°ð †nцýÑÄÆ’mä…n<0È™;ÁÝá¯ÁZƒ7FÀmì­ É&9ˆîéi¶ùN§Y• ÃZãAâ?•‡©‰ , ó¾IŸŠc1 4â&y­&pŠ­6;M À 0¹qç»p.á …ŸÅáK@%6·y6ƒ‰3?”úºŽ‰éX5ªPT §µ!=Mž«Ú½‹ÅgÂSâÉaþÓoö–¯ÁÔìR>5éÿ üs¶ÆUcÌ kÇR ]ÿ ù¬¼«VŽ;Â|‡~¢¦”ÏŰæ {L™Õ°Óv¹ò¸írޡעCÃ!íVÕ {¶»sŒNPg/ "uÕbkm²“$ďå¿é¹§°½æz¯6 †s¿!s–wÚÝ“™Œ °.ûj>·+™Òa…©Œ&rÝÎtÛë긪Ît’LAVp%c Úý[ÄzJ¾ÇàXXç@˜ó<êL]·T˜¾¥1Ó©V‡g´æ½¦Ý@¹óø!_@´ÞâSÁ —S3™•& ]@JHÚý©ZŽ €×æÔr»Áf!‡yÞ4Mv*èÓã_{‘åóUuљØ«Oïé*®EvÑ Œ÷‡U \"㪒ÍK+À 4“M¡ï:0¥5í!'<@î´”>Ç»&Z–ïCCV˜Ì5Šo&îhè.žû |ÓK©h$s6KìŒëã)¹hI¦GïOåóI;ììü#É$Š0…Ææ¥TØ.5­¾gn´ “ÂÖ\:hœ89G)J@„}œ:’Ò{/Š"¦_Æ×7Æ3VÇŠÊa]ÚŒÙ€Ä–=®uÁßâACZƒ§§£ Qnâ:«,×{tyø¬iÛcœÜÄ€H½ÄÍCk´÷šß .W'b¤Íåh]÷€=,Žv×cÚEÚHXJX¶îo¨FÒtèöŸ>ªª6[J®Fµ£sGÁeqõfe\íjÒÐïÄÐGˆe1Ø‹.Ø”‘Ëuø Y­ˆÜ ŽG|zùªüMpDnQWÄ”%JŠ™)â*p@Örš«ÕT2Ð%ˆG#ª„ ·¤!°ŸOTÂT¸aÚ%4&h™LµšØüÐ.F¿²ÐÞ_Ç‚¾ÅÃaÜ÷09Æ q€öy˜v‡85õN÷]¬äѼóS{°_MެúÔ#°Ç¸0åÞè2ëôPcvÆw9®ií1Ä8F™˜à‰´+‰Ik1òÝ7“Ñ×ÒsÝ\x‚h`ÞÑ`ó"|µEcý£n˜h`}GÞ !±ù²Ápü²ß6 0ïi󜵩SÈÇ7˜-ÕURO˜¦´f$ªž-Í6(œ}<„ éc øs]ŽŽ„*—¾ ìdŽ„)méª\¿êÎIg¾ØÞ~I#C/¼¼´EÁÈŽi8“©õådô·>euä ƒ'Ê×लR1ÉJE1ÐAát`t;ÇР%Ý<‡¥„ÍÆ`×Oyó)õiI€ñQaŸ4Ûù\áàaÃÔ¹HÃu¹*k€¦<„e S‡&õÏ B!ŽhüÞ`yj}mªf×\¿ Ç~æ­9‡û\՞Ǖg²1Žû5V7 !àöšm° c`ܬøÇìµÒ'P"?…´Ö,"§^•õލsÔ)6˜sæéÍR¼ ò|Sl”‹7 nPW Gòú÷½§O¯‡„l¡kSÞŒr½PÊ@æ¢pŽ-mÿ #Ÿ˜Àº¶Áä¦;ïÔæ$1££`“Õ>„—·ž)ßð³ñ#Ï Ô$¶œ‰ÊE‹À;÷º ¯«P:Ñ”8–IÊtpÞ3ª“>ê“þës4ò2OÏÕ­±zô†Õ§‰.÷ä¸;¿˜“'œ›žª}«Œ{ª±Ì 9ÔóÞÕ‡0 $íWV3Üì¬ —@kÝ4@¿r¼±½¬™›?øØæ´'Áé®CË3-g$˜ö‡×auÚi´Žp/êÛ æF›Ú2v‹ã¿¿,nB1̨ƃqÞa5͝@&Æû“él÷ \C²½UÍc ¯k×¢U ÖéQå™—-r wô ÞÏ<Ò=&=ÿ Ôê Òêˈt,i—;LîÜ á¸*ÚÃ1$êL•LÍ <É)ýÐà’ ;F™{ƒ™˜€&'}‚ãÄK`¡ÞT@I;®žZóè‚s’7®°›+§O­Åq©é»²9<Ô J ¼9O’HL»Ùïì¸rk¼Ž_ý‘TŸu[²ßÚŒ·ü÷B%¯E ŸÔX5êO´ Ç•€’I0 ÉJX` ñ¹õ%;µŸD‘«´€àwÒ™U ûئžÖö\×®×´8 ½‡ºÐÆÓ§?Àkmœ=;d5*@-ì0F Rªýš[Ü6âö̃ڸr*KA9· u*µæ£?U¸Âêí†8@¦X4 e-ò„0s{ HâUpU?¼mñRa°®a%Ð'tÉ×’\¾ÊÉ]t›h>·(Ë@R¼¡Ãt h}’O÷au<+nT…Ö…MӐ??Óe95 q>í/;&JSû °¯ÊéÞ øƒ*Ã2½Ài&:nôUl=¾¿5eˆ3”ñc|Ú2V”>„»&eE;«ÚäC p¢Û úy 9š[ŒÌx¼擼A&DåÒ¯ˆ¤ÀÌ;"˜ ÏQä¸åhÊ}Ûq«Û0WžÒ|»€ø®öCm5•\ÇÀ§Pe3£]0ÃàLDÉ‰1øªxjgwT‚÷¿LΨK‹›ùs—xˆÜ±µ kæ¸f‰‰ÜGk/LÛØ6d9ò¶ùA{ƒA3š/¬D¬khÓk‰`˜"㯒r¿±Óã jx‡°e}<Ñø\3y:'À•/h½Í€Ç4~g ?Û(¼]v‘ªlKÎâ~?O‚W%{Ì:“'©úNq¾›úo(X’¥¯ˆ nFê{Ç€ü?º'ë ø‹ì Þ09ŒÌç9Æ —ËC`j@ÓÄ(+a‹un¸#ÂꟋ{K`‘ÑÍÍ'à´»/Û,KW;Þ4²þð ï Nm|~fGÏ(…³Ã)«1ö­Õ ¥‡¨©ƒÃ™ü-s=à=U66Ï«Ýc蓦W¹íž®›nÔ%êÇìŒ<#Ü×84ån®Ð ÒåOC` ñânÑs‡¢ç 1õ%Îhì½Ã½® e:ݼUZo™`  ÅZŸŒÊ«ê1ÏÄo$q¹Þ€©ˆhÐÉä¯ñ[!…Ú˜àJ:x2$Íß&PåT£6ç— ‡Í*4Ýšçjÿ ‰É nófÐ ó(L5C•åÆ\rMÒ@ò }y-W}™üýVù—ú¢=Ù”c®‘< M ž ´Phr ¦©TD ‘ù.$´÷O‡‘V2Æò.=IUŒ=ž‡â¬i™aþÓåÙ?òUø'ØÖ•.~* šTŒ!•-×áºTâ®ä#õü'´ eýlYÅÓeÕKÂrT"CÚ@u!Óxƒ{š3€}1¿(r}%«nËamjÑ%ÑNEò v ˜à  σöK³,*º.àzù¨™Ó ÚçâU¦*¿ 9{%Ö¹ njûdaXöb) kÛÆ±ûÓ\°M7ˆÂ=û›ç¿Ã‚­V»Cg–8ÙêE- j)k$º`Ã-ùEýeBÆÇ]c¡°ñty&Òd0nõ'¡W+ƒ*|–øµFa\GQªEAÔp5\Ǽ·¼Ç8·õ -â§Ú[ ‡ uZeÖ 3}×d'+¹:ð+K†Û®s!Ï$úe€<Û”x)1»a­¡LC]¸µík…ÚàA»AYº{†ªS[¦5HÒ7ù --,ísòDØ€èk ÞÀîÜ ò@â( ËNˆë›4ô½•/¦o‡€Û7 ê•ÆêòðÜy'Án½µ á˜ݦ ndeo…[ì¶Ê,¥R³Ä=À±—–ß;£™´ñSâ*g§”ïaið‘Jå~™ÓÞ ß³Õ¢»8x埒²52>AÊb&-÷\7´éÄù€T˜,w;3{ï˜k…à¹ÄqÀ«œ{€\ ˆ¾[´¨јr &Úé„Ívˆ±8†¿]|¬ņ4I×pÞS1ÈÖz‰#Ìv‡G!YNògñ:màTz¢Ý1ô©^O=~ë|5Bã™ç•¼µõ•bÆ@úÕS¬ÈŒ#¬zünrŸ û” Z²•èðV"ÁHÚý©wÝ €7¼Ìu1hÑa3Éä û f$o¿É ™Ú›ÝçnpÒ3äÌ3†Í§,Äï]$‰/pê †«À¼¸e9­Æê_C]žƒ·ý·frÁN«, E=›Çq -‰öŒ:aÏ¿±í&£Í:-} 84‘ÿ eƒQÑeëSsuiA ³g㟥ú£?ÿ ʼn*”“÷aühe:ÊWa@ÒÞk±eØ] F Ô—r.åä˜ @ö¥ªZoÐýYL·¥S²G/‡ñ <~*ZÆ´è>JlòàÛÆ½ÿ 窘ìGN¢:I®KšJp/`íIÁÀõ#Ä-€ö­šµŒoF4|ÆQØÆ@Ì|£Ô…¢À{9˜è½Üó›€ôYÒÎYsið;ís¤€à²ˆ‚4qÉVŒI$ ‰"° æµ8cXGjœˏ¡Aâý•ËÜ¢ûï e·çLx']á"oÅÎê3¯Ç—¹”ó0nå‚âg{Œñ> S´˜îè°g238‚ãköÝfÚd´6Ò€;ò÷±¢™¼›º ¢Æ'¥Ðx'e¬ç ]bÈÆV¢ó‹kýBO ðÊâ$Ÿ!×T 3Mýמ žìٍàÌü‘8÷€àæØ8æ©6‰©L´«…oãpð„~Çk‰!ñ;‹”ÛžÍ àž±z Ÿôû øŸÝužÏ;ÿ #|u6™Þ¬ÚˆÐõA4¶â|ôl|Ê2ŽÇ¤ÝÅÇY.<#Aí.k§hóF‚”Y; M½Ö4hŸ4&›­¿tès´%FìL¥£Ãk‰ÇT¤haÁ¤ÚxfÉ`ÑìË›>i 3t‚:,–+^÷´–{Û–Nxi"x‘Ûg î¨>¥Õ܁ùZH,2Û“:8xÊ¢Çí9.É-Ìâã-=çjwµS˜dütžçwýGòú®®ûº_ˆýx$–¡ãøO EÚÛÏ÷R„×w+3£Á£öUMyR²¹âŒ°š›¸Ñãò9§Ó_Dl+Ùßc›úšGÅÌc†Ž!Ko=¶.‘Îÿ c²(2®V mª.ÿ ¹B›¹å ù„öŸSV>™ü¯$y:G¢Z×àøúdî¹û­·ýÇ´:•c LÍõi_‹ö+ÎæGÊè>OŠ•äž´§Þ{X}¨1ÚTc›»Qþ•êô°t¿OP?eæ~É{5]•ÙR£r5†nZ\ã@ &îJõ ¾àC°þV>fé¥/ü5ñÊIº_é5 ;e­h<@ Ä&æÃëE%;X,ÒãÆÞ`Oò¦kŸm#˜!ÀyÄ¢| óLšò¥Ä` ¶R=|ÈCâh5ò3DˆïF†ðÒ#ÅìÛœ?¸yhBãœí ZxßÎÄhºRK„`Þödvײ™ÀÈÑÒgŒuY w³%†ƒÓzõ ÖÏp‚dH®¦A´ù§»ÓÇMæ~)ˆð‡û:ù&Ä •vGD´À n ݇¼Ö8Fö óáà£~Ë¥x`oK|Ä?fxiØü%pìR>éò+Û±éÎ>núlFŤ'tq8LZÏvÃ?„¡ß±È⽆¯³íü@x|PöUäèØã¡ð‚ŒAìÏ"vÍwóŸÍ{ ý0.z È•Ö{,N¡£¡ŸKÕÙž>Ýœþ ÍÀ°<×EA!Å‚D™IúOÍ¡>ôG}Â` ÍßkÜL™Ž Þð™ {IøF²¹òQ3&!ÃÂÞz.d&Ï-sH¸,Ôõ˜ŽP€ 77ˆÝ¼ÊëÜw =cÕ Ú,ØÐ5ÎYÐ)ì´öœgŒ[¤ßv㙑8心>h]§µháYš£²ºÑ.{Ï7Sð•?´~×SÃKýJÛ˜ ™Íäiúu<µX¶1õ^kâçIÑ£sZ4h>j*ÔšD:4­¿_ ÷¸ Õxæÿ ¸?Mù _•­ÊÐ ä ÷ý ÑwL œ­ïnTkÛUÍN©ë:¦fV ¶ÜÔÜMªÅâA½–¿R×TXš-%iTÊT•‡Ù‚JôϐZxWÑè‰f‰òG º ×Õû2aZ7OU3[“×AT–ÞŒ…-‘¤”Ì ì&(ˆ¿­•ƒkï’:ðY¦W‘ Å)“†‘˜³Åtcø˜ñTÂwÚÇ4|üLÇªí–v- qˆèU qPE.†â‘˜µ Æ,ÐÅs]8¾„oúÑ i>ÜxxÈó)ƒ ´æÁâØ$À‰vžŸf$Ž |ãw;ÀÁIJ»b` {¦Ó¤Ú$©YÀ‘n@Óïž«9J¼êG m¤ ܯ¹ÌW4€ÐÒÅÛ‡#褕Ÿn-?í|с¥÷Ú¹¬'´ÞÜ9ÓK `hê£SÄSà?7—Wí_´…óB›»:=Ãïq`<8ñÓŒÑlú2d¬ê³£hÖ[l|$vÝro~'R®‰§°ñmY ͧäP |PUª¹·:3Œ[Û{Xÿ ºâ@‚W–Äé u‚ ¯´*=íή.pûÒdt @G‰¬ s¸ ëÉücr ÞæÑ¨Ê@>¤¢Ö±. Þ'¯°ÌME[YéïĵÂCå½ Ué©Áû'Ê9%eÔðNU”ë‘ÌsD3/®+UI˜9h.WC”빓$#:pz:YÓ ¿xž* ³$Í +$kñAŠ‹†¢ Uê>¸)_š¬÷©ßAÂÔb9ÇU ¯¾á•9¯ÏÏ÷O÷¼¼Fähal1‰3Ì[Ïr•´UCksNÐ] R‘¸¥H+§Šé†c©vÖÞ0iÓ76s†î!§=ß ¼~Ô'°Ãmäoäš³ªøi1úÉ)³yV8 CLÄØÁ‘WYïi€H6ÖÑiámø^ÈY´°Ñ7¥Û*—Ñ©L«Qƒï—Ùrÿ ›£Ð*š¸ˆL©ˆ$ˆ ÷¾D§9È®«qbqC)–ˆïv´çñsÑVT­Ø, <àïºÀO«Jý·õ àfPìð .wFšir´þ’2_Y *Æ€x\« ì€9š@ Ž|F⇥ˆkZ@hÖÄ0t¿-<“‹qµ¾*ZL¤Ú)&BJpÓF5=$„at*Zš$’ÑtdûÝRI1 2މ$€$I$#‰SÞ’Hë¬ï;Á$¡t$’`<(ñÇt)$‡Ð.Êf¢X’Kt=Éé$‚ˆªè¢oÝëòI%Rgcª÷ŠyI%¡‰ÿ !ñ)´õ $¤ Ô’IIGÿÙa 3gZ@sddlmZddlmZmZmZddlZddlZddlZddl m Z ddl Z ddl Z ddl Z ddlZddlZddlZGdddejZGdddejZGd d d ejZGd d d ejZGd ddejZddZedkredS))Path)unloadcheck_warnings CleanImportN)spec_from_file_locationc@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS) PkgutilTestscCs.t|_|tj|jtjd|jdSNr) tempfilemkdtempdirname addCleanupshutilrmtreesyspathinsertselfr0/opt/python39/lib/python3.9/test/test_pkgutil.pysetUps zPkgutilTests.setUpcCs tjd=dSr)rrrrrrtearDownszPkgutilTests.tearDowncCsd}d}tj|j|}t|ttj|dd}|ttj|dd}|||ttj|dttj|ddd}|||t |d}| ||t |d}| ||t j |=dS)Ntest_getdata_filesys%Hello, world! Second line Third line __init__.pywbres.txtsub sub/res.txt) osrjoinr mkdiropenclosewritepkgutilget_data assertEqualrmodules)rpkg RESOURCE_DATAZ package_dirfres1res2rrrrs$       z!PkgutilTests.test_getdata_filesysc Csd}d}d}tj|j|}t|d}||dd||d|||d||tj d |t |d }| ||t |d }| ||g}t |gD]} || t j|| jq| |dgtjd =tj|=dS) Ntest_getdata_zipfile.ziptest_getdata_zipfilerw /__init__.py/res.txtz /sub/res.txtrrr)rrr r zipfileZipFilewritestrr#rrr%r&r' iter_modulesassertIsInstance ModuleInfoappendnamer() rzipr)r*zip_filezr,r-names moduleinforrrr/;s*     z!PkgutilTests.test_getdata_zipfilec Cs0d}d}d}tj|j|}t|d}||dd||d||tj d|ztt |d }| ||g}t t|gD]}||t j||jq| ||gWtjd=tj|dntjd=tj|d0d } |t| tt d Wdn1s"0YdS) Nr.r/rr0r1r2r3rrz9path must be None or list of paths to look for modules inZ invalid_path)rrr r r4r5r6r#rrr%r&r'r7rr8r9r:r;r(popZassertRaisesRegex ValueErrorlist) rr<r)r*r=r>resr?r@Z expected_msgrrrtest_issue44061_iter_modules^s0   z)PkgutilTests.test_issue44061_iter_modulescCsRd}tj|j|}t|d|tj|tj|jgdD]}| dq>dS)NZunreadable_packager)rzunexpected package found) rrr r r!r rmdirr% walk_packagesfail)rZ package_namedtrrrtest_unreadable_dir_on_syspaths  z+PkgutilTests.test_unreadable_dir_on_syspathc Cshd}tj|j|}t|ttj|dd}|ttj|dttj|ddd}|ttj|ddd}|d}tj|j|}t|ttj|dd}|ttj|dttj|ddd}|ttj|ddd}|gd}ddt|jgD}| |||D]}| d rXqDt j |=qDdS) Ntest_walkpackages_filesysrrrzmod.py)rzsub.test_walkpackages_filesysz!sub.test_walkpackages_filesys.modrLztest_walkpackages_filesys.subz!test_walkpackages_filesys.sub.modcSsg|] }|dqSr.0errr z:PkgutilTests.test_walkpackages_filesys..mod) rrr r r!r"r#r%rGr'endswithrr() rpkg1Zpkg1_dirr+pkg2Zpkg2_direxpectedactualr)rrrrLs6    z&PkgutilTests.test_walkpackages_filesysc Csd}d}d}tj|j|}t|d}||dd||d|dd||d|dd||dd||d|dd||d|dd|tj d |gd }d d t |gD}| ||tjd =|D]}| d rqtj|=qdS)zBTests the same as test_walkpackages_filesys, only with a zip file.ztest_walkpackages_zipfile.ziptest_walkpackages_zipfilerr0r1r2/z/mod.pyr)rzsub.test_walkpackages_zipfilez!sub.test_walkpackages_zipfile.modrZztest_walkpackages_zipfile.subz!test_walkpackages_zipfile.sub.modcSsg|] }|dqSrMrrOrrrrRrSz:PkgutilTests.test_walkpackages_zipfile..rTN)rrr r r4r5r6r#rrr%rGr'rUr() rr<rVrWr=r>rXrYr)rrrrZs*   z&PkgutilTests.test_walkpackages_zipfilecCsd}|ttftt|Wdn1s60Yd}|ttftt|Wdn1sv0YdS)NZtest_dirstest_dir) assertRaises TypeErrorrBrCr%rG)r str_inputZ bytes_inputrrr2test_walk_packages_raises_on_string_or_bytes_inputs ,z?PkgutilTests.test_walk_packages_raises_on_string_or_bytes_inputc Csddl}ddl}dtfdtjfdtjjfd|fd|fd|jfd|jfd |jjfd |jjfd |jjjfd |jjjfd tfdtfdtj fdtj fdt fdt fdtjff}dt fdt fdt fdt fdt fdt fdt fdt fdtfdt fdt fdtfdtfd tfd!t fd"t fd#t ff}d$}|D]}tj|j|}ztj|dd%WntyVYqYn0tj|d&}t|d'"}|d|Wdn1s0Ytt|}|||ff7}t|dkr||dd(t ff7}q|d)t ff7}|D]N\} } |j| d*&t| } || | Wdn1s@0Yq|D]n\} } |j| d*F|| t| Wdn1s0YWdn1s0YqRdS)+Nrrzos.pathzos.path:pathseploggingzlogging:zlogging.handlerszlogging.handlers:zlogging.handlers:SysLogHandlerzlogging.handlers.SysLogHandlerz(logging.handlers:SysLogHandler.LOG_ALERTz(logging.handlers.SysLogHandler.LOG_ALERTz builtins.intz builtins:intzbuiltins.int.from_byteszbuiltins:int.from_byteszbuiltins.ZeroDivisionErrorzbuiltins:ZeroDivisionErrorzos:pathrNg@Tr2z?abczabc/foofoozos.foozos.foo:zos.pth:pathsepzlogging.handlers:NoSuchHandlerz,logging.handlers:SysLogHandler.NO_SUCH_VALUEz,logging.handlers.SysLogHandler.NO_SUCH_VALUEZeroDivisionErrorz os.path.9abcZ9abc) u वमसéÈu안녕하세요u さよならuありがとうu Хорошоuспасибоu现代汉语常用字表exist_okrr0u ०वमस)s)r`Zlogging.handlersrrpathsephandlersZ SysLogHandlerZ LOG_ALERTint from_bytesrbr]rB ImportErrorAttributeErrorr r makedirsUnicodeEncodeErrorr"r$flush importlibinvalidate_caches import_modulelenZsubTestr% resolve_namer'r\) rr`Z success_casesZ failure_casesZ unicode_wordsZuwrIr+rTrhrXoexcrrrtest_name_resolutions       (   0  z!PkgutilTests.test_name_resolutionN) __name__ __module__ __qualname__rrrr/rErKrLrZr_ryrrrrrs#' (# rc@sLeZdZGdddeZGdddeZddZddZd d Zd d Z d S)PkgutilPEP302Testsc@s$eZdZddZddZddZdS)zPkgutilPEP302Tests.MyTestLoadercCsdSNr)rspecrrr create_moduleDsz-PkgutilPEP302Tests.MyTestLoader.create_modulecCs|jddd|jd<dS)NloadsrrN)__dict__get)rrTrrr exec_moduleGsz+PkgutilPEP302Tests.MyTestLoader.exec_modulecCsdS)N Hello, world!r)rrrrrr&Ksz(PkgutilPEP302Tests.MyTestLoader.get_dataN)rzr{r|rrr&rrrr MyTestLoaderCsrc@seZdZdddZdS)z!PkgutilPEP302Tests.MyTestImporterNcCs t}t|d|jj|gdS)Nz<%s>)loadersubmodule_search_locations)r}rr __class__rz)rfullnamertargetrrrr find_specOs  z+PkgutilPEP302Tests.MyTestImporter.find_spec)NN)rzr{r|rrrrrMyTestImporterNsrcCstjd|dSr)r meta_pathrrrrrrrVszPkgutilPEP302Tests.setUpcCs tjd=dSr)rrrrrrrYszPkgutilPEP302Tests.tearDowncCs |tdddtjd=dS)Nradummyr)r'r%r&rr(rrrrtest_getdata_pep302\sz&PkgutilPEP302Tests.test_getdata_pep302cCsDddl}||jd|tddd||jdtjd=dS)NrrNrarr)rar'rr%r&rr()rrarrrtest_alreadyloadedas z%PkgutilPEP302Tests.test_alreadyloadedN) rzr{r|objectrrrrrrrrrrr}As  r}c@s4eZdZddZddZddZddZd d Zd S) ExtendPathTestscCspt}tjd|tj||}t|ttj|dd}| dWdn1sb0Y|S)Nrrr0zKfrom pkgutil import extend_path __path__ = extend_path(__path__, __name__) ) r r rrrrr r!r"r$)rpkgnamer Zpkgdirflrrr create_initos (zExtendPathTests.create_initcCsTtj|||d}t|d"}td||dWdn1sF0YdS)N.pyr0zvalue={})file)rrr r"printformat)rr rZsubmodule_namevalue module_namerrrrcreate_submodulezs z ExtendPathTests.create_submodulec Csd}||}||}|||dd|||ddddl}ddl}||jjd||jjd|t|j tt j ||t j ||gt |t |tj d=tj d=tjd=tjd=tjd=dS)NrabarrbazrNfoo.barfoo.baz)rrfoo.barfoo.bazr'rrrsorted__path__rrr r rrr(rrZ dirname_0Z dirname_1rarrr test_simples*      zExtendPathTests.test_simplec Cstj}tj}d}d}||}tj||}d||}tj |dtj |dzV| |||dt |t||}||} |D]r} t| |} | j} z | j} WntyYn0|| t jj|| | || t jj|t| |q|tt|dWdn1s,0Y|tt|dWdn1sd0YWt|tjd=ztj d=tj d=WntyYn0n>t|tjd=ztj d=tj d=WntyYn00dS)NspamZeggsz{}.{}rzinvalid.modulez.spamz spam.eggs)r%iter_importers get_importerrrrr rrr(rArrrrtrC _get_specrrnr8 machinery FileFinderr'SourceFileLoader assertIsNoner\rmr rKeyError) rrrrmodnamer ZpathitemrZ importersZexpected_importerfinderrrrrrtest_iter_importerssZ         , .    z#ExtendPathTests.test_iter_importersc Csd}||}||}|||ddttj||d|||ddddl}ddl}||j j d||j j d|t |j t tj||tj||gt|t|tjd=tjd=tjd=tjd=tjd=dS) NrarrrrrNrr)rrrunlinkrr rrr'rrrrrr rrr(rrrrtest_mixed_namespaces,      z$ExtendPathTests.test_mixed_namespaceN)rzr{r|rrrrrrrrrrns  0rc@s,eZdZddZddZddZddZd S) NestedNamespacePackageTestcCst|_tjdd|_dSr~)r r basedirrrold_pathrrrrrs z NestedNamespacePackageTest.setUpcCs |jtjdd<t|jdSr~)rrrr rrrrrrrsz#NestedNamespacePackageTest.tearDowncCs|dd\}}tj|j|dtjj}tj|ddttj||dd}| |Wdn1sr0YdS)N.rNTrerr0) rsplitrrr rreplacesepror"r$)rr;contentsbasefinal base_pathr+rrrrs z(NestedNamespacePackageTest.create_modulecCsd}|d||d||d||d||dd|dd tjd tj|jd tjd tj|jd d dl}|t d | t |j dd dl }|t d| t |jj dd dlm}d dlm}| |d| |ddS)NzBimport pkgutil; __path__ = pkgutil.extend_path(__path__, __name__)za.pkg.__init__zb.pkg.__init__za.pkg.subpkg.__init__zb.pkg.subpkg.__init__za.pkg.subpkg.czc = 1zb.pkg.subpkg.dzd = 2rabr)z pkg.subpkg)c)rIrN)rrrrrr rr)r rr'rurZ pkg.subpkgZsubpkgZ pkg.subpkg.crZ pkg.subpkg.drI)rZpkgutil_boilerplater)rrIrrr test_nesteds(           z&NestedNamespacePackageTest.test_nestedN)rzr{r|rrrrrrrrrsrc@seZdZddZddZddZddZeed kd d d Z d dZ ddZ ddZ ddZ ddZddZddZddZdS)ImportlibMigrationTestscCs tdtfS)Nz5This emulation is deprecated, use 'importlib' instead)rDeprecationWarningrrrrcheck_deprecateds z(ImportlibMigrationTests.check_deprecatedcCs6|tdWdn1s(0YdSNr2)rr%Z ImpImporterrrrrtest_importer_deprecateds z0ImportlibMigrationTests.test_importer_deprecatedcCs<| tddddWdn1s.0YdSr)rr%Z ImpLoaderrrrrtest_loader_deprecated"s z.ImportlibMigrationTests.test_loader_deprecatedcCsltR}|td|td|td|t|jdWdn1s^0YdSNrrz test.supportr)rassertIsNotNoner% get_loaderr'ruwarningsrr0rrr test_get_loader_avoids_emulation&s z8ImportlibMigrationTests.test_get_loader_avoids_emulation__main__znot compatible with __main__cCsbt}bzPt2}|tt|t|jdWdn1sF0YW|an|a0dSr) __loader__rrr%rrzr'rur)rZ this_loaderr0rrr0test_get_loader_handles_missing_loader_attribute-s2zHImportlibMigrationTests.test_get_loader_handles_missing_loader_attributecCs^d}tt|}|`t|$|tj|<t|}Wdn1sF0Y||dSNrtyper__spec__rr(r%rrrr;rTrrrr.test_get_loader_handles_missing_spec_attribute9s   (zFImportlibMigrationTests.test_get_loader_handles_missing_spec_attributecCs`d}tt|}d|_t|$|tj|<t|}Wdn1sH0Y||dSrrrrrr+test_get_loader_handles_spec_attribute_noneBs   (zCImportlibMigrationTests.test_get_loader_handles_spec_attribute_nonecCs>d}dtj|<zt|}Wtj|=n tj|=0||dSNz totally bogus)rr(r%rrrr;rrrr#test_get_loader_None_in_sys_modulesKs   z;ImportlibMigrationTests.test_get_loader_None_in_sys_modulescCsd}t|}||dSr)r% find_loaderrrrrrtest_find_loader_missing_moduleTs z7ImportlibMigrationTests.test_find_loader_missing_modulecCsltR}|td|td|td|t|jdWdn1s^0YdSr)rrr%rr'rurrrrr!test_find_loader_avoids_emulationYs z9ImportlibMigrationTests.test_find_loader_avoids_emulationcCsLt2}|td|t|jdWdn1s>0YdS)Nz*??r)rrr%rr'rurrrrr"test_get_importer_avoids_emulation`sz:ImportlibMigrationTests.test_get_importer_avoids_emulationcCs4zttdWnty.|dYn0dS)Nz/homez3Unexpected AttributeError when calling get_importer)r%rrrnrHrrrrtest_issue44061fs z'ImportlibMigrationTests.test_issue44061cCsJt0}tD]}q|t|jdWdn1s<0YdSr)rr%rr'rur)rr0Zimporterrrr$test_iter_importers_avoids_emulationlszs*  /-})^