ido(PdZddlmZddlZddlZddlZddlmZddlm Z m Z m Z m Z m Z mZmZmZmZddlmZddlmZddlmZmZmZdd lmZmZmZmZmZm Z eeZGd d Z!Gd d Z"GddeZ#GddeZ$GddeZ%dS)zSupport for plugins.) annotationsN) FrameType) AnyDictIterableIteratorListOptionalSetTupleUnion) PluginError)isolate_module)CoveragePlugin FileTracer FileReporter)TArc TConfigurable TDebugCtlTLineNo TPluginConfigTSourceTokenLinescveZdZdZddZe ddd Zd dZd dZd dZ d dZ d!dZ d"dZ d#dZ d$dZdS)%Pluginsz7The currently loaded collection of coverage.py plugins.returnNonec^g|_i|_g|_g|_g|_d|_|dSN)ordernames file_tracers configurerscontext_switcherscurrent_moduleselfs L/opt/cloudlinux/venv/lib/python3.11/site-packages/coverage/plugin_support.py__init__zPlugins.__init__s<+- 02 241379-1 '''Nmodules Iterable[str]configrdebugOptional[TDebugCtl]c|}||_|D]q}||_t|tj|}t |dd}|st d|d||}|||rd|_|S)zpLoad plugins from `modules`. Returns a Plugins object with the loaded and configured plugins. coverage_initNzPlugin module z' didn't define a coverage_init function)r-r$ __import__sysr*getattrrget_plugin_options) clsr*r,r-pluginsmodulemodr0optionss r' load_pluginszPlugins.load_plugins&s#%%  , ,F%+G " v   +f%C#C$??M  !VVVVV//77G M'7 + + + +!%r)pluginrc<|||jdS)zAdd 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&r;s r'add_file_tracerzPlugins.add_file_tracerFs# !233333r)c<|||jdS)zAdd a configuring plugin. `plugin` is an instance of a third-party plugin class. It must implement the :meth:`CoveragePlugin.configure` method. N)r=r"r>s r'add_configurerzPlugins.add_configurerOs# !122222r)c<|||jdS)zAdd a dynamic context plugin. `plugin` is an instance of a third-party plugin class. It must implement the :meth:`CoveragePlugin.dynamic_context` method. N)r=r#r>s r'add_dynamic_contextzPlugins.add_dynamic_contextXs# !788888r)c2||ddS)zfAdd a plugin that does nothing. This is only useful for testing the plugin support. N)r=r>s r'add_noopzPlugins.add_noopas &&&&&r) specializedOptional[List[CoveragePlugin]]c|jd|jj}|jrl|jdrR|jd|jd|t d|j|j}t||}||_d|_ |j |||j |<|| |dSdS)zAdd a plugin object. `plugin` is a :class:`CoveragePlugin` instance to add. `specialized` is a list to append the plugin to. .r;zLoaded plugin z: zplugin TN) r$ __class____name__r-shouldwrite LabelledDebugDebugPluginWrapper_coverage_plugin_name_coverage_enabledrappendr )r&r;rF plugin_namelabelleds r'r=zPlugins._add_pluginis,JJv/?/HJJ : :$*++H55 : J  Qd.AQQvQQ R R R$%Ft/B%F%F SSH'99F'2$#'  &!!!"( ;  "   v & & & & & # "r)boolc*t|jSr)rUrr%s r'__bool__zPlugins.__bool__DJr)Iterator[CoveragePlugin]c*t|jSr)iterrr%s r'__iter__zPlugins.__iter__rXr)rSstrc|j|S)zReturn a plugin by name.)r )r&rSs r'getz Plugins.getsz+&&r))rrr)r*r+r,rr-r.rr)r;rrr)r;rrFrGrrrrU)rrY)rSr]rr)rK __module__ __qualname____doc__r( classmethodr:r?rArCrEr=rWr\r_r)r'rrsAA(((( &* [>444433339999''''''''0        ''''''r)rc4eZdZdZddd Zdd Zdd ZddZdS)rNz?A Debug writer, but with labels for prepending to the messages.relabelr]r-r prev_labelsr+cDt||gz|_||_dSr)listlabelsr-)r&rgr-rhs r'r(zLabelledDebug.__init__s#;''5'1  r)rc8t||j|jS)zz/LabelledDebug.message_prefix..s.KK81e$q&,KKKKKKr))rkjoin enumerate)r&prefixess r'message_prefixzLabelledDebug.message_prefixs9;"%zzKKy7J7JKKKKKKr)messagercf|j||dS)z/Write `message`, but with the labels prepended.N)r-rMrw)r&rxs r'rMzLabelledDebug.writes5 D//11<7<<=====r)N)re)rgr]r-rrhr+)rgr]rrNrr])rxr]rr)rKrarbrcr(rmrwrMrer)r'rNrNssII====LLLL >>>>>>r)rNcTeZdZdZdfd Zdd ZddZddZddZd dZ d!dZ xZ S)"rOz:Wrap a plugin, and use debug to report on what it's doing.r;rr-rNrrcdt||_||_dSr)superr(r;r-)r&r;r-rJs r'r(zDebugPluginWrapper.__init__s+   r)filenamer]Optional[FileTracer]c|j|}|jd|d||r-|jd|}t ||}|S)Nz file_tracer() --> file )r; file_tracerr-rMrmDebugFileTracerWrapper)r&r~tracerr-s r'rzDebugPluginWrapper.file_tracersx((22 DDD&DDEEE  ;J(()=)=)=>>E+FE::F r)Union[FileReporter, str]c|j|}|jd|d||r.|jd|}t |||}|S)Nzfile_reporter(rr)r; file_reporterr-rMrmDebugFileReporterWrapper)r&r~reporterr-s r'rz DebugPluginWrapper.file_reporters{;,,X66 H(HHHHHIII  KJ(()=)=)=>>E/(EJJHr)framer Optional[str]cz|j|}|jd|d||S)Nzdynamic_context(r)r;dynamic_contextr-rM)r&rcontexts r'rz"DebugPluginWrapper.dynamic_contextsC+--e44 FEFF7FFGGGr)src_dirr+cz|j|}|jd|d||S)Nzfind_executable_files(r)r;find_executable_filesr-rM)r&rexecutable_filess r'rz(DebugPluginWrapper.find_executable_filessF;< )rsource_filenamer-rM)r& sfilenames r'rz&DebugFileTracerWrapper.source_filenames:K//11  ?)??@@@r)rUcr|j}|jd||S)Nz"has_dynamic_source_filename() --> )rhas_dynamic_source_filenamer-rM)r&hass r'rz2DebugFileTracerWrapper.has_dynamic_source_filenames9k5577 EcEEFFF r)r~rc|j||}|jd|||||S)Nz*dynamic_source_filename({!r}, {}) --> {!r})rdynamic_source_filenamer-rMformatr)r&r~rdyns r'rz.DebugFileTracerWrapper.dynamic_source_filenamesbk11(EBB ELL d&&u--s      r)Tuple[TLineNo, TLineNo]c|j|}|jd||d||S)Nzline_number_range(r)rline_number_ranger-rMr)r&rpairs r'rz(DebugFileTracerWrapper.line_number_rangesQ{,,U33 Ud.>.>u.E.EUUTUUVVV r)N)rrr-rNrr)rrrr]rzr`)r~r]rrrr)rrrr) rKrarbrcr(rrrrrrer)r'rrs##      r)rcteZdZdZdfd Zdd Zdd ZddZd dZd!dZ ddZ d"dZ d#dZ ddZ d$dZxZS)%rzA debugging `FileReporter`.r~r]rrr-rNrrcft|||_||_dSr)r}r(rr-)r&r~rr-rJs r'r(z!DebugFileReporterWrapper.__init__s- """   r)cr|j}|jd||S)Nzrelative_filename() --> )rrelative_filenamer-rMr&rets r'rz*DebugFileReporterWrapper.relative_filenames9m--// ;C;;<<< r) Set[TLineNo]cr|j}|jd||S)Nz lines() --> )rlinesr-rMrs r'rzDebugFileReporterWrapper.liness9m!!## ///000 r)cr|j}|jd||S)Nzexcluded_lines() --> )rexcluded_linesr-rMrs r'rz'DebugFileReporterWrapper.excluded_liness9m**,, 888999 r)rIterable[TLineNo]cz|j|}|jd|d||S)Nztranslate_lines(r)rtranslate_linesr-rM)r&rrs r'rz(DebugFileReporterWrapper.translate_linessCm++E22 BEBB3BBCCC r)arcsIterable[TArc] Set[TArc]cz|j|}|jd|d||S)Nztranslate_arcs(r)rtranslate_arcsr-rM)r&rrs r'rz'DebugFileReporterWrapper.translate_arcs sCm**400 @4@@@@AAA r)cr|j}|jd||S)Nzno_branch_lines() --> )rno_branch_linesr-rMrs r'rz(DebugFileReporterWrapper.no_branch_liness9m++-- 9#99::: r)Dict[TLineNo, int]cr|j}|jd||S)Nzexit_counts() --> )r exit_countsr-rMrs r'rz$DebugFileReporterWrapper.exit_countss9m'')) 5c55666 r)cr|j}|jd||S)Nz arcs() --> )rrr-rMrs r'rzDebugFileReporterWrapper.arcss9m  "" .s../// r)c|j}|jdt |fz|S)Nzsource() --> %d chars)rsourcer-rMlenrs r'rzDebugFileReporterWrapper.source!s>m""$$ 0CHH;>??? r)rct|j}|jdt |fz|S)Nz"source_token_lines() --> %d tokens)rjrsource_token_linesr-rMrrs r'rz+DebugFileReporterWrapper.source_token_lines&sF4=335566 =S KLLL r))r~r]rrr-rNrrrz)rr)rrrr)rrrr)rr)rr)rr)rKrarbrcr(rrrrrrrrrrrrs@r'rrs %%          r)r)&rc __future__rros.pathr2typesrtypingrrrrr r r r r coverage.exceptionsr coverage.miscrcoverage.pluginrrrcoverage.typesrrrrrrrrNrOrrrer)r'rs""""""  SSSSSSSSSSSSSSSSSSSSSS++++++((((((DDDDDDDDDD^Bp'p'p'p'p'p'p'p'f>>>>>>>>*(&(&(&(&(&(&(&(&V"""""Z"""J88888|88888r)