Your IP : 216.73.216.213
E�W� � @ s� d Z d d l Z d d l Z d d l Z d d l m Z m Z d d l m Z m Z m
Z
e e � Z Gd d � d e � Z Gd d � d e � Z
Gd d
� d
e � Z Gd d � d e � Z Gd
d � d e
� Z d S)zSupport for plugins.� N)�CoverageException�isolate_module)�CoveragePlugin�
FileTracer�FileReporterc @ s� e Z d Z d Z d d � Z e d d d � � Z d d � Z d d
� Z d d � Z d
d � Z
e
Z d d � Z d d � Z
d S)�Pluginsz7The currently loaded collection of coverage.py plugins.c C s1 g | _ i | _ g | _ d | _ d | _ d S)N)�order�names�file_tracers�current_module�debug)�self� r �J/opt/alt/python35/lib64/python3.5/site-packages/coverage/plugin_support.py�__init__ s
zPlugins.__init__Nc C s� | � } | | _ xr | D]j } | | _ t | � t j | } t | d d � } | sg t d | � � | j | � } | | | � q Wd | _ | S)z`Load plugins from `modules`.
Returns a list of loaded and configured plugins.
�
coverage_initNz7Plugin module %r didn't define a coverage_init function)r r �
__import__�sys�modules�getattrr Zget_plugin_options) �clsr �configr Zplugins�module�modr �optionsr r r �load_plugins s
zPlugins.load_pluginsc C s | j | | j � d S)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
�pluginr r r �add_file_tracer6 s zPlugins.add_file_tracerc C s | j | d � d S)zfAdd a plugin that does nothing.
This is only useful for testing the plugin support.
N)r )r
r r r r �add_noop? s zPlugins.add_noopc C s� d | j | j j f } | j r| | j j d � r| | j j d | j | f � t d | j f | j � } t | | � } | | _ d | _ | j
j | � | | j | <| d k r� | j | � d S)z�Add a plugin object.
`plugin` is a :class:`CoveragePlugin` instance to add. `specialized`
is a list to append the plugin to.
z%s.%sr zLoaded plugin %r: %rz plugin %rTN)
r � __class__�__name__r Zshould�write�
LabelledDebug�DebugPluginWrapperZ_coverage_plugin_nameZ_coverage_enabledr �appendr )r
r Zspecialized�plugin_nameZlabelledr r r r G s
zPlugins._add_pluginc C s
t | j � S)N)�boolr )r
r r r �__nonzero__\ s zPlugins.__nonzero__c C s
t | j � S)N)�iterr )r
r r r �__iter__a s zPlugins.__iter__c C s | j | S)zReturn a plugin by name.)r )r
r&