U
    Kc#                     @   s6   d
ddZ deeedddZdeeedddZd	S ) Tc                 c   s   t  }|r| j||dn|| fg}|D ]\\}}||}	|	D ]F\}
}|dks:||krTq:|rb|| ||rldnd |
 }||fV  q:q&dS )z>Helper method for yielding various names + members of modules.)prefixremove_duplicateN.r   )setZnamed_modulesadd)modZget_members_fnr   recurser   memomodulesZmodule_prefixmodulememberskvname r   I/tmp/pip-unpacked-wheel-gikjz4vx/functorch/_src/named_members_polyfill.py_named_members   s    
r   r   r   r   c                 c   s*   t | dd |||d}|D ]
}|V  qd S )Nc                 S   s
   | j  S N)_parametersitemsr   r   r   r   <lambda>       z#_named_parameters.<locals>.<lambda>r   r   r   r   r   r   genelemr   r   r   _named_parameters   s      r   c                 c   s*   t | dd |||d}|D ]
}|V  qd S )Nc                 S   s
   | j  S r   )_buffersr   r   r   r   r   r      r   z _named_buffers.<locals>.<lambda>r   r   r   r   r   r   _named_buffers   s      r    N)r   TT)r   TT)r   TT)r   strboolr   r    r   r   r   r   <module>   s   
	