3
d                 @   s0   d Z ddlZddlmZmZ G dd deZdS )zDebug plugin
    N   )
PluginBaseloggerc                   s,   e Zd ZdZd fdd	Zd	ddZ  ZS )
DebugPluginzExecute workflow in seriesNc                sD   t t| j|d |r8d|kr8t|d dr8|d | _ntdd S )N)plugin_argscallable__call__z,plugin_args must contain a callable function)superr   __init__hasattr	_callable
ValueError)selfr   )	__class__ ?/tmp/pip-build-7vycvbft/nipype/nipype/pipeline/plugins/debug.pyr
      s    zDebugPlugin.__init__Fc             C   sB   t |tjstdtjd xtj|D ]}| j|| q*W dS )zExecutes a pre-defined pipeline in a serial order.

        Parameters
        ----------

        graph : networkx digraph
            defines order of execution
        z'Input must be a networkx digraph objectzExecuting debug pluginN)
isinstancenxZDiGraphr   r   infoZtopological_sortr   )r   graphconfigZ
updatehashnoder   r   r   run   s
    

zDebugPlugin.run)N)F)__name__
__module____qualname____doc__r
   r   __classcell__r   r   )r   r   r      s   r   )r   Znetworkxr   baser   r   r   r   r   r   r   <module>   s   