ó
    àÅŸgG(  ã                  ó  • S r SSKJr  SSKrSSKrSSKrSSKJr  SSKJ	r	  SSK
JrJr  SSKJr  SSKJr  SS	KJrJrJr  SS
KJrJrJrJrJrJr  \" \5      r " S S5      r " S S5      r " S S\5      r " S S\5      r " S S\5      r g)zSupport for plugins.é    )ÚannotationsN)Ú	FrameType)ÚAny)ÚIterableÚIterator)ÚPluginError)Úisolate_module)ÚCoveragePluginÚ
FileTracerÚFileReporter)ÚTArcÚTConfigurableÚ	TDebugCtlÚTLineNoÚTPluginConfigÚTSourceTokenLinesc                  ó¦   • \ rS rSrSrSS jr\ S       SS jj5       rSS jrSS jr	SS jr
SS	 jr      SS
 jrSS jrSS jrSS jrSrg)ÚPluginsé   z7The currently loaded collection of coverage.py plugins.c                ó\   • / U l         0 U l        / U l        / U l        / U l        S U l        U   g ©N)ÚorderÚnamesÚfile_tracersÚconfigurersÚcontext_switchersÚcurrent_module©Úselfs    ÚX/var/www/blue/EV-Temp_rev04/venv/lib/python3.13/site-packages/coverage/plugin_support.pyÚ__init__ÚPlugins.__init__   s3   € Ø+-ˆŒ
Ø02ˆŒ
Ø24ˆÔØ13ˆÔØ79ˆÔà*.ˆÔÚó    Nc                ó  • U " 5       nX4l         U Hd  nXTl        [        U5        [        R                  U   n[        USS5      nU(       d  [        SU< S35      eUR                  U5      nU" XH5        Mf     SUl        U$ )z`Load plugins from `modules`.

Returns a Plugins object with the loaded and configured plugins.

Úcoverage_initNzPlugin module z' didn't define a coverage_init function)Údebugr   Ú
__import__ÚsysÚmodulesÚgetattrr   Úget_plugin_options)	Úclsr)   Úconfigr&   ÚpluginsÚmoduleÚmodr%   Úoptionss	            r    Úload_pluginsÚPlugins.load_plugins'   sŠ   € ñ “%ˆØŒãˆFØ%+Ô"Ü�vÔÜ—+‘+˜fÑ%ˆCä# C¨¸$Ó?ˆMÞ Ü!Ø$ V¡JÐ.UÐVóð ð ×/Ñ/°Ó7ˆGÙ˜'Ö+ñ ð "&ˆÔØˆr#   c                ó:   • U R                  XR                  5        g)z•Add a file tracer plugin.

`plugin` is an instance of a third-party plugin class.  It must
implement the :meth:`CoveragePlugin.file_tracer` method.

N)Ú_add_pluginr   ©r   Úplugins     r    Úadd_file_tracerÚPlugins.add_file_tracerG   s   € ð 	×Ñ˜×!2Ñ!2Õ3r#   c                ó:   • U R                  XR                  5        g)z’Add a configuring plugin.

`plugin` is an instance of a third-party plugin class. It must
implement the :meth:`CoveragePlugin.configure` method.

N)r5   r   r6   s     r    Úadd_configurerÚPlugins.add_configurerP   s   € ð 	×Ñ˜×!1Ñ!1Õ2r#   c                ó:   • U R                  XR                  5        g)z�Add a dynamic context plugin.

`plugin` is an instance of a third-party plugin class.  It must
implement the :meth:`CoveragePlugin.dynamic_context` method.

N)r5   r   r6   s     r    Úadd_dynamic_contextÚPlugins.add_dynamic_contextY   s   € ð 	×Ñ˜×!7Ñ!7Õ8r#   c                ó(   • U R                  US5        g)zVAdd a plugin that does nothing.

This is only useful for testing the plugin support.

N)r5   r6   s     r    Úadd_noopÚPlugins.add_noopb   s   € ð 	×Ñ˜ Õ&r#   c                óþ  • U R                    SUR                  R                   3nU R                  (       a|  U R                  R	                  S5      (       a\  U R                  R                  SU R                   < SU< 35        [        SU R                   < 3U R                  5      n[        X5      nX1l        SUl	        U R                  R                  U5        XR                  U'   Ub  UR                  U5        gg)z€Add a plugin object.

`plugin` is a :class:`CoveragePlugin` instance to add.  `specialized`
is a list to append the plugin to.

Ú.r7   zLoaded plugin z: zplugin TN)r   Ú	__class__Ú__name__r&   ÚshouldÚwriteÚLabelledDebugÚDebugPluginWrapperÚ_coverage_plugin_nameÚ_coverage_enabledr   Úappendr   )r   r7   ÚspecializedÚplugin_nameÚlabelleds        r    r5   ÚPlugins._add_pluginj   sÖ   € ð ×,Ñ,Ð-¨Q¨v×/?Ñ/?×/HÑ/HÐ.IÐJˆØ�:�:˜$Ÿ*™*×+Ñ+¨H×5Ñ5Ø�J‰J×Ñ˜~¨d×.AÑ.AÑ-DÀBÀvÁjÐQÔRÜ$ w¨t×/BÑ/BÑ.EÐ%FÈÏ
É
ÓSˆHÜ'¨Ó9ˆFà'2Ô$Ø#'ˆÔ Ø�
‰
×Ñ˜&Ô!Ø"(�
‰
�;ÑØÑ"Ø×Ñ˜vÕ&ð #r#   c                ó,   • [        U R                  5      $ r   )Úboolr   r   s    r    Ú__bool__ÚPlugins.__bool__‚   ó   € Ü�D—J‘JÓÐr#   c                ó,   • [        U R                  5      $ r   )Úiterr   r   s    r    Ú__iter__ÚPlugins.__iter__…   rV   r#   c                ó    • U R                   U   $ )zReturn a plugin by name.)r   )r   rO   s     r    ÚgetÚPlugins.getˆ   s   € à�z‰z˜+Ñ&Ð&r#   )r   r   r   r   r   r   )ÚreturnÚNoner   )r)   úIterable[str]r-   r   r&   zTDebugCtl | Noner^   r   )r7   r
   r^   r_   )r7   r
   rN   zlist[CoveragePlugin] | Noner^   r_   ©r^   rS   )r^   zIterator[CoveragePlugin])rO   Ústrr^   r
   )rF   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r!   Úclassmethodr2   r8   r;   r>   rA   r5   rT   rY   r\   Ú__static_attributes__© r#   r    r   r      s�   † ÙAô%ð ð
 #'ð	àðð ðð  ð	ð
 
ôó ðô>4ô3ô9ô'ð'àð'ð 1ð'ð 
ô	'ô0 ô ÷'r#   r   c                  óD   • \ rS rSrSrS	S
S jjrSS jrSS jrSS jrSr	g)rI   é�   z?A Debug writer, but with labels for prepending to the messages.c                ó8   • [        U5      U/-   U l        X l        g r   )ÚlistÚlabelsr&   )r   Úlabelr&   Úprev_labelss       r    r!   ÚLabelledDebug.__init__�   s   € Ü˜;Ó'¨5¨'Ñ1ˆŒØ�
r#   c                óB   • [        XR                  U R                  5      $ )z<Add a label to the writer, and return a new `LabelledDebug`.)rI   r&   rn   )r   ro   s     r    Ú	add_labelÚLabelledDebug.add_label”   s   € ä˜U§J¡J°·±Ó<Ð<r#   c                ód   • U R                   S/-   nSR                  S [        U5       5       5      $ )z4The prefix to use on messages, combining the labels.Ú z:
c              3  ó4   #   • U H  u  pS U-  U-   v •  M     g7f)z  Nri   )Ú.0Úiro   s      r    Ú	<genexpr>Ú/LabelledDebug.message_prefix.<locals>.<genexpr>›   s   é € ÐKÑ7J©8¨1˜$˜q™& ž,Ò7Jùs   ‚)rn   ÚjoinÚ	enumerate)r   Úprefixess     r    Úmessage_prefixÚLabelledDebug.message_prefix˜   s,   € à—;‘; " Ñ%ˆØ�z‰zÑK´yÀÔ7JÓKÓKÐKr#   c                ó^   • U R                   R                  U R                  5        U 35        g)z/Write `message`, but with the labels prepended.N)r&   rH   r   )r   Úmessages     r    rH   ÚLabelledDebug.write�   s'   € à�
‰
×Ñ˜D×/Ñ/Ó1Ð2°7°)Ð<Õ=r#   )r&   rn   N)ri   )ro   rb   r&   r   rp   r`   )ro   rb   r^   rI   ©r^   rb   )r‚   rb   r^   r_   )
rF   rc   rd   re   rf   r!   rs   r   rH   rh   ri   r#   r    rI   rI   �   s   † ÙIöô=ôL÷
>r#   rI   c                  ól   ^ • \ rS rSrSrSU 4S jjrSS jrSS jrSS jrSS jr	SS jr
SS	 jrS
rU =r$ )rJ   é¢   z:Wrap a plugin, and use debug to report on what it's doing.c                ó:   >• [         TU ]  5         Xl        X l        g r   )Úsuperr!   r7   r&   )r   r7   r&   rE   s      €r    r!   ÚDebugPluginWrapper.__init__¥   s   ø€ Ü‰ÑÔØŒØ�
r#   c                óä   • U R                   R                  U5      nU R                  R                  SU< SU< 35        U(       a*  U R                  R	                  SU< 35      n[        X#5      nU$ )Nzfile_tracer(ú) --> úfile )r7   Úfile_tracerr&   rH   rs   ÚDebugFileTracerWrapper)r   ÚfilenameÚtracerr&   s       r    r�   ÚDebugPluginWrapper.file_tracerª   sb   € Ø—‘×(Ñ(¨Ó2ˆØ�
‰
×Ñ˜<¨¡|°6¸&¹ÐDÔEÞØ—J‘J×(Ñ(¨5°±Ð)=Ó>ˆEÜ+¨FÓ:ˆFØˆr#   c                ó  • U R                   R                  U5      n[        U[        5      (       d   eU R                  R                  SU< SU< 35        U(       a+  U R                  R                  SU< 35      n[        XU5      nU$ )Nzfile_reporter(r‹   rŒ   )r7   Úfile_reporterÚ
isinstancer   r&   rH   rs   ÚDebugFileReporterWrapper)r   r�   Úreporterr&   s       r    r“   Ú DebugPluginWrapper.file_reporter²   sw   € Ø—;‘;×,Ñ,¨XÓ6ˆÜ˜(¤L×1Ñ1Ð1Ð1Ø�
‰
×Ñ˜>¨(©°V¸H¹<ÐHÔIÞØ—J‘J×(Ñ(¨5°±Ð)=Ó>ˆEÜ/°ÀEÓJˆHØˆr#   c                ó‚   • U R                   R                  U5      nU R                  R                  SU< SU< 35        U$ )Nzdynamic_context(r‹   )r7   Údynamic_contextr&   rH   )r   ÚframeÚcontexts      r    r™   Ú"DebugPluginWrapper.dynamic_context»   s;   € Ø—+‘+×-Ñ-¨eÓ4ˆØ�
‰
×ÑÐ+¨E©9°F¸7¹+ÐFÔGØˆr#   c                ó‚   • U R                   R                  U5      nU R                  R                  SU< SU< 35        U$ )Nzfind_executable_files(r‹   )r7   Úfind_executable_filesr&   rH   )r   Úsrc_dirÚexecutable_filess      r    rž   Ú(DebugPluginWrapper.find_executable_filesÀ   s?   € ØŸ;™;×<Ñ<¸WÓEÐØ�
‰
×ÑÐ1°'±¸FÐCSÑBVÐWÔXØÐr#   c                óz   • U R                   R                  SU< S35        U R                  R                  U5        g )Nz
configure(Ú))r&   rH   r7   Ú	configure)r   r-   s     r    r¤   ÚDebugPluginWrapper.configureÅ   s/   € Ø�
‰
×Ñ˜: f¡Z¨qÐ1Ô2Ø�‰×Ñ˜fÕ%r#   c                ó6   • U R                   R                  5       $ r   )r7   Úsys_infor   s    r    r§   ÚDebugPluginWrapper.sys_infoÉ   s   € Ø�{‰{×#Ñ#Ó%Ð%r#   )r&   r7   )r7   r
   r&   rI   r^   r_   )r�   rb   r^   zFileTracer | None)r�   rb   r^   zFileReporter | str)rš   r   r^   ú
str | None)rŸ   rb   r^   r`   )r-   r   r^   r_   )r^   zIterable[tuple[str, Any]])rF   rc   rd   re   rf   r!   r�   r“   r™   rž   r¤   r§   rh   Ú__classcell__©rE   s   @r    rJ   rJ   ¢   s.   ø† ÙD÷ô
ôôô
 ô
&÷&ò &r#   rJ   c                  óT   • \ rS rSrSrSS jrSS jrSS jrSS jrSS jr	SS jr
S	rg
)rŽ   éÍ   zA debugging `FileTracer`.c                ó   • Xl         X l        g r   )r�   r&   )r   r�   r&   s      r    r!   ÚDebugFileTracerWrapper.__init__Ð   s   € ØŒØ�
r#   c                ó†   • S[         R                  R                  UR                  R                  5      UR
                  4-  $ )z7A short string identifying a frame, for debug messages.z%s@%d)ÚosÚpathÚbasenameÚf_codeÚco_filenameÚf_lineno)r   rš   s     r    Ú_show_frameÚ"DebugFileTracerWrapper._show_frameÔ   s7   € àÜ�G‰G×Ñ˜UŸ\™\×5Ñ5Ó6Ø�N‰Nð
ñ 
ð 	
r#   c                óx   • U R                   R                  5       nU R                  R                  SU< 35        U$ )Nzsource_filename() --> )r�   Úsource_filenamer&   rH   )r   Ú	sfilenames     r    rº   Ú&DebugFileTracerWrapper.source_filenameÛ   s4   € Ø—K‘K×/Ñ/Ó1ˆ	Ø�
‰
×ÑÐ1°)±Ð?Ô@ØÐr#   c                óx   • U R                   R                  5       nU R                  R                  SU< 35        U$ )Nz"has_dynamic_source_filename() --> )r�   Úhas_dynamic_source_filenamer&   rH   )r   Úhass     r    r¾   Ú2DebugFileTracerWrapper.has_dynamic_source_filenameà   s3   € Ø�k‰k×5Ñ5Ó7ˆØ�
‰
×ÑÐ=¸c¹WÐEÔFØˆ
r#   c                ó°   • U R                   R                  X5      nU R                  R                  SR	                  XR                  U5      U5      5        U$ )Nz*dynamic_source_filename({!r}, {}) --> {!r})r�   Údynamic_source_filenamer&   rH   Úformatr·   )r   r�   rš   Údyns       r    rÂ   Ú.DebugFileTracerWrapper.dynamic_source_filenameå   sM   € Ø�k‰k×1Ñ1°(ÓBˆØ�
‰
×ÑÐE×LÑLØ×&Ñ& uÓ-¨só
ô 	ð ˆ
r#   c                óž   • U R                   R                  U5      nU R                  R                  SU R	                  U5       SU< 35        U$ )Nzline_number_range(r‹   )r�   Úline_number_ranger&   rH   r·   )r   rš   Úpairs      r    rÇ   Ú(DebugFileTracerWrapper.line_number_rangeì   sG   € Ø�{‰{×,Ñ,¨UÓ3ˆØ�
‰
×ÑÐ-¨d×.>Ñ.>¸uÓ.EÐ-FÀfÈTÉHÐUÔVØˆr#   )r&   r�   N)r�   r   r&   rI   r^   r_   )rš   r   r^   rb   r„   ra   )r�   rb   rš   r   r^   r©   )rš   r   r^   ztuple[TLineNo, TLineNo])rF   rc   rd   re   rf   r!   r·   rº   r¾   rÂ   rÇ   rh   ri   r#   r    rŽ   rŽ   Í   s#   † Ù#ôô
ôô
ô
÷r#   rŽ   c                  ó”   ^ • \ rS rSrSrSU 4S jjrSS jrSS jrSS jrSS jr	SS jr
SS	 jrSS
 jrSS jrSS jrSS jrSrU =r$ )r•   éò   zA debugging `FileReporter`.c                ó<   >• [         TU ]  U5        X l        X0l        g r   )rˆ   r!   r–   r&   )r   r�   r–   r&   rE   s       €r    r!   Ú!DebugFileReporterWrapper.__init__õ   s   ø€ Ü‰Ñ˜Ô"Ø ŒØ�
r#   c                óx   • U R                   R                  5       nU R                  R                  SU< 35        U$ )Nzrelative_filename() --> )r–   Úrelative_filenamer&   rH   ©r   Úrets     r    rÏ   Ú*DebugFileReporterWrapper.relative_filenameú   s3   € Ø�m‰m×-Ñ-Ó/ˆØ�
‰
×ÑÐ3°C±7Ð;Ô<Øˆ
r#   c                óx   • U R                   R                  5       nU R                  R                  SU< 35        U$ )Nzlines() --> )r–   Úlinesr&   rH   rÐ   s     r    rÔ   ÚDebugFileReporterWrapper.linesÿ   s2   € Ø�m‰m×!Ñ!Ó#ˆØ�
‰
×Ñ˜<¨¡wÐ/Ô0Øˆ
r#   c                óx   • U R                   R                  5       nU R                  R                  SU< 35        U$ )Nzexcluded_lines() --> )r–   Úexcluded_linesr&   rH   rÐ   s     r    r×   Ú'DebugFileReporterWrapper.excluded_lines  s3   € Ø�m‰m×*Ñ*Ó,ˆØ�
‰
×ÑÐ0°±Ð8Ô9Øˆ
r#   c                ó‚   • U R                   R                  U5      nU R                  R                  SU< SU< 35        U$ )Nztranslate_lines(r‹   )r–   Útranslate_linesr&   rH   )r   rÔ   rÑ   s      r    rÚ   Ú(DebugFileReporterWrapper.translate_lines	  s;   € Ø�m‰m×+Ñ+¨EÓ2ˆØ�
‰
×ÑÐ+¨E©9°F¸3¹'ÐBÔCØˆ
r#   c                ó‚   • U R                   R                  U5      nU R                  R                  SU< SU< 35        U$ )Nztranslate_arcs(r‹   )r–   Útranslate_arcsr&   rH   )r   ÚarcsrÑ   s      r    rÝ   Ú'DebugFileReporterWrapper.translate_arcs  s:   € Ø�m‰m×*Ñ*¨4Ó0ˆØ�
‰
×Ñ˜?¨4©(°&¸¹Ð@ÔAØˆ
r#   c                óx   • U R                   R                  5       nU R                  R                  SU< 35        U$ )Nzno_branch_lines() --> )r–   Úno_branch_linesr&   rH   rÐ   s     r    rá   Ú(DebugFileReporterWrapper.no_branch_lines  s3   € Ø�m‰m×+Ñ+Ó-ˆØ�
‰
×ÑÐ1°#±Ð9Ô:Øˆ
r#   c                óx   • U R                   R                  5       nU R                  R                  SU< 35        U$ )Nzexit_counts() --> )r–   Úexit_countsr&   rH   rÐ   s     r    rä   Ú$DebugFileReporterWrapper.exit_counts  s3   € Ø�m‰m×'Ñ'Ó)ˆØ�
‰
×ÑÐ-¨c©WÐ5Ô6Øˆ
r#   c                óx   • U R                   R                  5       nU R                  R                  SU< 35        U$ )Nzarcs() --> )r–   rÞ   r&   rH   rÐ   s     r    rÞ   ÚDebugFileReporterWrapper.arcs  s2   € Ø�m‰m× Ñ Ó"ˆØ�
‰
×Ñ˜; s¡gÐ.Ô/Øˆ
r#   c                óŠ   • U R                   R                  5       nU R                  R                  S[	        U5      4-  5        U$ )Nzsource() --> %d chars)r–   Úsourcer&   rH   ÚlenrÐ   s     r    ré   ÚDebugFileReporterWrapper.source"  s7   € Ø�m‰m×"Ñ"Ó$ˆØ�
‰
×ÑÐ0´C¸³H°;Ñ>Ô?Øˆ
r#   c                óœ   • [        U R                  R                  5       5      nU R                  R	                  S[        U5      4-  5        U$ )Nz"source_token_lines() --> %d tokens)rm   r–   Úsource_token_linesr&   rH   rê   rÐ   s     r    rí   Ú+DebugFileReporterWrapper.source_token_lines'  s<   € Ü�4—=‘=×3Ñ3Ó5Ó6ˆØ�
‰
×ÑÐ=ÄÀSÃÀÑKÔLØˆ
r#   )r&   r–   )r�   rb   r–   r   r&   rI   r^   r_   r„   )r^   úset[TLineNo])rÔ   zIterable[TLineNo]r^   rï   )rÞ   zIterable[TArc]r^   ú	set[TArc])r^   zdict[TLineNo, int])r^   rð   )r^   r   )rF   rc   rd   re   rf   r!   rÏ   rÔ   r×   rÚ   rÝ   rá   rä   rÞ   ré   rí   rh   rª   r«   s   @r    r•   r•   ò   sB   ø† Ù%÷ô
ô
ô
ô
ô
ô
ô
ô
ô
÷
ò r#   r•   )!rf   Ú
__future__r   r±   Úos.pathr(   Útypesr   Útypingr   Úcollections.abcr   r   Úcoverage.exceptionsr   Úcoverage.miscr	   Úcoverage.pluginr
   r   r   Úcoverage.typesr   r   r   r   r   r   r   rI   rJ   rŽ   r•   ri   r#   r    Ú<module>rú      s~   ðñ å "ã 	Û Û 
å Ý ß .å +Ý (ß DÑ D÷÷ ñ �BÓ€÷p'ñ p'÷f>ñ >ô*(&˜ô (&ôV"˜Zô "ôJ8˜|õ 8r#   