
    N jB                    p    S SK Jr  S SKJr  S SKJrJrJr  S SKr\(       a  SSK	J
r
  \ " S S5      5       rg)	    )annotations)	dataclass)AnyOptionalTYPE_CHECKINGN   DimEntryc                      \ rS rSr% S\S'   S\S'   S\S'   S\S'   SS	 jrSS
 jrSS jr\ S       SS jj5       r	Sr
g)
TensorInfo   zOptional[torch.Tensor]tensorzlist[DimEntry]levelsbool
has_devicebatchedtensorc                p   ^ SSK Jm  [        U4S jU R                   5       5      (       d  [	        S5      eg )Nr   r	   c              3  <   >#    U  H  n[        UT5      v   M     g 7fN)
isinstance).0lr
   s     k/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/functorch/dim/_tensor_info.py	<genexpr>+TensorInfo.__post_init__.<locals>.<genexpr>   s     @Kq:a**Ks   z%All levels must be DimEntry instances)
_dim_entryr
   allr   AssertionError)selfr
   s    @r   __post_init__TensorInfo.__post_init__   s-    (@DKK@@@ !HII A    c                2    SSK Jn  U" U R                  5      $ )Nr   )ndim_of_levels)r   r$   r   )r   r$   s     r   ndimTensorInfo.ndim   s    .dkk**r"   c                    U R                   S L$ r   )r   )r   s    r   __bool__TensorInfo.__bool__   s    {{$&&r"   c                   SSK JnJnJn  UR	                  U 5      (       aS  [        U R                  5       U R                  5       U R                  5       U(       a  U R                  5       5      $ S 5      $ UR	                  U 5      (       ab  U R                  (       a  U R                  5       OS nU(       a!  U R                  (       a  U R                  5       OS n[        UU" U 5      /SU5      $ [        U [        R                  5      (       aH  / n[        U R                  5       * S5       H  n	UR!                  U" U	5      5        M     [        XSU 5      $ U(       a  [#        S5      e[        S / SS 5      $ )Nr   )Dimr
   TensorFr   Tzexpected a tensor object) r+   r
   r,   check_exactr   _get_tensor_get_levels_get_has_device_get_batchtensoris_bound
_get_ranger   torchrangedimappend
ValueError)
hensure_batchedensure_presentr+   r
   r,   r   batchtensorr   is
             r   createTensorInfo.create"   s4    	,+a  !!#(6""$	  =A	  __Q'(zzQ\\^tF(61::""$4  !	  5<<((FAEEG8Q'hqk* (aq11 !;<<dBt44r"    N)returnNone)rB   int)rB   r   )TT)r:   r   r;   r   r<   r   rB   r   )__name__
__module____qualname____firstlineno____annotations__r    r%   r(   staticmethodr?   __static_attributes__rA   r"   r   r   r      sa    ""))J+
' DH"5"5 $"5=A"5	"5 "5r"   r   )
__future__r   dataclassesr   typingr   r   r   r5   r   r
   r   rA   r"   r   <module>rO      s5    " ! / /  $ 75 75 75r"   