
    3j
                     x    S SK Jr  S SKrS SKJs  Jr  S SKJr  S SK	J
r
  S SKJr   " S S\R                  5      rg)    )AnyN)is_fake)	TwoTensor)return_and_correct_aliasingc                   |    \ rS rSr\SS j5       rSS jrS rS r\S 5       r	\
S 5       r SS	\S
\S-  4S jjrSrg)WrapperSubclass   Nc                 >   Uc  UR                  5       nUc  UR                  5       n0 nX4S'   UR                  5       US'   UR                  US'   UR                  US'   UR
                  US'   UR                  US'   [        R                  R                  " X40 UD6nU$ )Nstridesstorage_offsetdevicelayoutrequires_graddtype)
sizestrider   r   r   r   r   torchTensor_make_wrapper_subclass)clsa
outer_sizeouter_stridekwargsouts         \/home/wildlama/miniconda3/lib/python3.13/site-packages/torch/testing/_internal/subclasses.py__new__WrapperSubclass.__new__   s    J88:L(y#$#3#3#5 88x88x"#//''wll11#LVL
    c                     Xl         g Nr   )selfr   r   r   s       r   __init__WrapperSubclass.__init__   s    r   c                 4    S[        U R                  5       S3$ )NzWrapperSubclass())reprr   r#   s    r   __repr__WrapperSubclass.__repr__!   s    !$tvv,q11r   c                     S/S 4$ )Nr    r)   s    r   __tensor_flatten__"WrapperSubclass.__tensor_flatten__$   s    ud{r   c                     Ub  [        S5      eU S   n[        U5      (       a  Uc  [        S5      eUc  [        S5      e[        XBU5      $ )NzExpected meta to be Noner   z"Expected outer_size to not be Nonez$Expected outer_stride to not be None)AssertionErrorr   r   )inner_tensorsmetar   r   r   s        r   __tensor_unflatten__$WrapperSubclass.__tensor_unflatten__'   sX     !;<<#1::!$%IJJ#$%KLLql;;r   c                    Uc  0 n[         R                  " [        S U5      n[         R                  " [        S U5      nU" U0 UD6n[         R                  " U5      u  pU V
s/ s H/  n
[	        U
[
        R                  5      (       a  [        U
5      OU
PM1     nn
[         R                  " X5      nSSKJ	n  XL a  U$ [        XXL5      $ s  sn
f )Nc                     U R                   $ r!   r"   xs    r   <lambda>4WrapperSubclass.__torch_dispatch__.<locals>.<lambda>7   s    r   c                     U R                   $ r!   r"   r8   s    r   r:   r;   9   s    133r   r   )cond_op)pytreetree_map_onlyr   tree_flatten
isinstancer   r   tree_unflattentorch._higher_order_ops.condr=   r   )r   functypesargsr   args_akwargs_aout_a
out_a_flatspeco_aout_flatr   r=   s                 r   __torch_dispatch__"WrapperSubclass.__torch_dispatch__3   s    >F%%o}dK''Of))!..u5
 "
! %/sELL$A$AOC sJ! 	 
 ##H38?J.t6GG
s   $6C
expected_metadataexpected_typec                     U[        U R                  5      L a  U R                  $ U[        L a.  [        U R                  U R                  R                  5       5      $ g r!   )typer   r   clone)r#   rP   rQ   s      r   #__coerce_same_metadata_as_tangent__3WrapperSubclass.__coerce_same_metadata_as_tangent__I   sC     DL(66Mi'TVVTVV\\^44r   r"   )NNr!   )__name__
__module____qualname____firstlineno__staticmethodr   r$   r*   r.   r4   classmethodrN   r   rS   rU   __static_attributes__r-   r   r   r   r      sr     "2 	< 	< H H, DH!$59D[ r   r   )typingr   r   torch.utils._pytreeutils_pytreer>   torch._subclasses.fake_tensorr   "torch.testing._internal.two_tensorr   torch.utils._python_dispatchr   r   r   r-   r   r   <module>re      s,      $ $ 1 8 DFell Fr   