File: //opt/alt/python37/lib64/python3.7/site-packages/guppy/etc/__pycache__/Cat.cpython-37.opt-1.pyc
B
    �]�  �               @   s|   G d d� d�Z G dd� d�ZG dd� d�ZG dd� d�ZG dd	� d	e�Zd
d� Zdd
� Zdd� Zdd� Zdd� Z	dd� Z
dS )c               @   s,   e Zd Zdd� Zdd� Zdd� Zdd� Zd	S )
�Graphc             C   s   || _ || _d S )N)�objects�arrows)�selfr   r   � r   �@/opt/alt/python37/lib64/python3.7/site-packages/guppy/etc/Cat.py�__init__   s    zGraph.__init__c             C   s   | j | d S )N�    )r   )r   �xr   r   r   �source   s    zGraph.sourcec             C   s   | j | d S )N�   )r   )r   r	   r   r   r   �target	   s    zGraph.targetc             C   s.   | j }tdd� t| j�� �D ��}| �||�S )Nc             S   s    g | ]\}\}}|||ff�qS r   r   )�.0Zarrow�src�tgtr   r   r   �
<listcomp>   s   z"Graph.get_dual.<locals>.<listcomp>)r   �dict�listr   �items�	__class__)r   r   r   r   r   r   �get_dual   s    zGraph.get_dualN)�__name__�
__module__�__qualname__r   r
   r   r   r   r   r   r   r      s   r   c               @   s   e Zd Zdd� Zdd� ZdS )�Catc             C   s   || _ || _d S )N)�graph�	relations)r   r   r   r   r   r   r      s    zCat.__init__c             C   s    | j �� }t| j�}| �||�S )N)r   r   �dual_relationsr   r   )r   r   r   r   r   r   r      s    
zCat.get_dualN)r   r   r   r   r   r   r   r   r   r      s   r   c               @   s   e Zd Zddd�ZdS )�FunctorNc             C   s$   t |�| _t |�| _|| _|| _d S )N)�adapt_function�fo�far   r   )r   r   r    r   r   r   r   r   r   $   s    
zFunctor.__init__)NN)r   r   r   r   r   r   r   r   r   #   s   r   c               @   sL   e Zd Zdd� Zdd� Zdd� Zdd� Zd	d
� Zdd� Zd
d� Z	dd� Z
dS )�Functionc             C   s@   t |dd �}t|�rn|}t|�s*td��|| _|| _|| _d S )N�__getitem__z.Function: map is neither callable or indexable)�getattr�callable�	TypeError�fr   r   )r   �mapr   r   r&