o
    2h&                     @   s  U d Z ddlmZmZmZmZmZmZmZ ddl	m
Z
mZmZmZmZmZmZmZmZmZmZ ddlmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZV ddlWmXZXmYZYmZZZm[Z[ ddl\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZl ddlmmnZn g dZoeZepeqd	< 	 eZereqd
< 	 eZereqd< 	 desdetfddZudS )z#OpTree: Optimized PyTree Utilities.    )	accessorsdataclasses	functoolsintegrationspytreetreespectyping)	AutoEntryDataclassEntryFlattenedEntryGetAttrEntryGetItemEntryMappingEntryNamedTupleEntryPyTreeAccessorPyTreeEntrySequenceEntryStructSequenceEntry)AMAX_RECURSION_DEPTHNONE_IS_LEAFNONE_IS_NODE
all_leavesbroadcast_commonbroadcast_prefixprefix_errorstree_accessorstree_alltree_anytree_broadcast_commontree_broadcast_map tree_broadcast_map_with_accessortree_broadcast_map_with_pathtree_broadcast_prefixtree_flattentree_flatten_one_leveltree_flatten_with_accessortree_flatten_with_pathtree_is_leaf	tree_itertree_leavestree_map	tree_map_tree_map_with_accessortree_map_with_accessor_tree_map_with_pathtree_map_with_path_tree_maxtree_mintree_partition
tree_pathstree_reducetree_replace_nonestree_structuretree_sumtree_transposetree_transpose_map tree_transpose_map_with_accessortree_transpose_map_with_pathtree_unflattentreespec_accessorstreespec_childtreespec_childrentreespec_defaultdicttreespec_dequetreespec_dicttreespec_entriestreespec_entrytreespec_from_collectiontreespec_is_leaftreespec_is_one_leveltreespec_is_prefixtreespec_is_strict_leaftreespec_is_suffixtreespec_leaftreespec_listtreespec_namedtupletreespec_nonetreespec_one_leveltreespec_ordereddicttreespec_pathstreespec_structseqtreespec_transformtreespec_tuple)dict_insertion_orderedregister_pytree_noderegister_pytree_node_classunregister_pytree_node)CustomTreeNodeFlattenFuncPyTree	PyTreeDef
PyTreeKind
PyTreeSpecPyTreeTypeVarUnflattenFuncis_namedtupleis_namedtuple_classis_namedtuple_instanceis_structseqis_structseq_classis_structseq_instancenamedtuple_fieldsstructseq_fields)__version__)`r   r   r   r#   r&   r%   r<   r(   r)   r6   r3   r   r'   r   r*   r+   r.   r/   r,   r-   r5   r2   r8   r9   r;   r:   r"   r   r   r   r   r!   r    r4   r7   r0   r1   r   r   r$   r   rQ   r=   rC   rD   r?   r>   rO   rS   rF   rI   rG   rH   rJ   rK   rN   rT   rL   rB   rM   rP   r@   rA   rR   rE   r   r   r   r   r	   r   r   r   r   r
   r   rV   rW   rX   rU   r^   r\   r]   r[   r_   rY   rZ   r`   ra   rb   rc   rg   rd   re   rf   rh   r   r   r   namereturnc                C   sD   | dkrddl ma tS | dkrddlma tS tdtd| )z!Get an attribute from the module.accessorr   Nintegrationzmodule z has no attribute )optree.accessorrl   optree.integrationrm   AttributeError__name__)rj    rr   J/var/www/html/chatgem/venv/lib/python3.10/site-packages/optree/__init__.py__getattr__   s   rt   N)v__doc__optreer   r   r   r   r   r   r   optree.accessorsr	   r
   r   r   r   r   r   r   r   r   r   
optree.opsr   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   optree.registryrU   rV   rW   rX   optree.typingrY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   optree.versionri   __all__int__annotations__boolstrobjectrt   rr   rr   rr   rs   <module>   s    $4 CHg