U
    Kºcd  ã                   @   s2   d dl mZmZ dd„ ZG dd„ dƒZdd„ ZdS )	é    )Útree_flattenÚtree_unflattenc                    s"   t |ƒ\}}‡ fdd„|D ƒ |S )Nc                    s   g | ]}ˆ |ƒ‘qS © r   )Ú.0Úarg©Úfn_r   ú?/tmp/pip-unpacked-wheel-gikjz4vx/functorch/_src/pytree_hacks.pyÚ
<listcomp>   s     ztree_map_.<locals>.<listcomp>)r   )r   ZpytreeZ	flat_argsÚ_r   r   r	   Ú	tree_map_
   s    r   c                   @   s   e Zd Zdd„ ZdS )ÚPlaceHolderc                 C   s   dS )NÚ*r   )Úselfr   r   r	   Ú__repr__   s    zPlaceHolder.__repr__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r	   r      s   r   c                 C   s&   dd„ t | jƒD ƒ}t|| ƒ}t|ƒS )Nc                 S   s   g | ]
}t ƒ ‘qS r   )r   )r   r   r   r   r	   r
      s     z#treespec_pprint.<locals>.<listcomp>)ÚrangeZ
num_leavesr   Úrepr)ÚspecZleafsÚresultr   r   r	   Útreespec_pprint   s    
r   N)Ztorch.utils._pytreer   r   r   r   r   r   r   r   r	   Ú<module>   s   