
    ^h                         S SK r S SK JrJrJr  \\\\" S5      1r\	\ R                  \\ R                  \\ R                  \\ R                  0rS\\   S\4S jrS\4S jrS\4S jrS	 rS\4S
 jrg)    N)AnyIterableList	containerreturnc                 P    / nU  H  nUR                  [        U5      5        M     U$ )N)appendget_type_annotation)r   annotationsobjs      c/home/james-whalen/.local/lib/python3.13/site-packages/ipyflow/data_model/utils/annotation_utils.py_get_contained_type_annotationsr      s+    K.s34     typesc                    [        U5      n[        S 5      U;   nUR                  [        S 5      5        [        U;   a  UR                  [        5        [        U5      S:X  a  U(       a  U S    $ U $ [        U5      S:X  a  [        [        U5      5      nO[        R                  [        U5         nU(       a  [        R                  U   nX   $ )Nr      )settypediscardfloatintlennextitertypingUniontupleOptional)container_typer   
used_types	none_seenrets        r   _resolve_container_typesr#      s    UJT
j(ItDz"
3
:!'0~d#DnD	ZA	4
#$ll5,-ooc"r   c                 d   [        U 5      S:X  a  [        R                  $ [        U 5      S::  a  [        R                  [        U 5         $ [	        [        R
                  U 5      R                  n[        U5      S:X  a  [        R                  US   S4   $ [        R                  [        U 5         $ )Nr      r   .)r   r   Tupler   r#   r   __args__)r   argss     r   _resolve_tuple_typesr)   &   s    
5zQ||	Uq||E%L))'U;DDt9><<Q--<<e--r   c                    [        U 5      nU[        ;   a  U$ U[        ;   Ga  U[        L a  [	        [
        R                  [        U R                  5       5      5      n[	        [
        R                  [        U R                  5       5      5      n[        USS 5      n[        USS 5      nUb  Uc  [
        R                  $ [        U5      S:X  a  US   n[        U5      S:X  a  US   n[
        R                  XE4   $ U[        L a  [        [        U 5      5      $ [	        [        U   [        U 5      5      $ U[         L a  [
        R                  U    $ U$ )Nr'   r   r   )r   _PRIMITIVE_TYPES_CONTAINER_TYPESdictr#   r   r   r   keysvaluesgetattrDictr   r   r)   Type)r   obj_typekey_ann	value_annkey_args
value_argss         r   r
   r
   3   s-   CyH##	%	%t.<SXXZHG 1<SZZ\JI w
D9H J=J:#5{{"x=A%'{Hz?a'!+AJ{{8#788'(G(LMM+ *,KC,P  
T	{{3r   c                    U [        S 5      L a  SnO[        U S5      (       a  U R                  nOe[        U S5      (       aA  U R                  nUc1  U R                  nUS   [        S 5      L a  [        U5      S:X  a  SnOSnOU SL a  S	nO[        U 5      nUR                  S
5      (       a,  SU;   a&  UR                  S5      S   R                  S5      S   n[        U SS 5      nUb  US;  a  U SU 3n[        U SS 5      nUb  U Vs/ s H&  n[        U[        R                  5      (       a  M$  UPM(     nnUS;   aE  [        U5      S:  a6  US   [        S 5      L a%  [        U5      S:X  a  US S n[        U5      S:X  a  Sn[        U5      S:  aS  / nU H  nUR                  [        U5      5        M     US:H  nU SSR                  U(       a  [!        U5      OU5       S3nU$ s  snf )NNone__name___name   r   r   .z...ztyping.[.r   r   
__module__)r   builtins__main__r'   )r   r   z, ])r   hasattrr:   r;   r'   r   str
startswithsplitr0   
isinstancer   TypeVarr	   make_annotation_stringjoinsorted)annr"   r(   moduleann_argsarg	args_annsshould_sorts           r   rJ   rJ   U   s   
d4j	j	!	!ll	g		ii;<<DBx4:%#d)q. 	#h
~~i  SCZiinQ%%c*1-S,-Ff,NN#sJ-H#+S8C:c6>>3RC8S((H!T
*8}!#CR=8}! x=1I  !7!<=  .KE499+VI%69UVVWXCJ! Ts   #G&/G&)r   r   r   r   r   r   rE   r   r+   r-   r1   listr   Setr   r&   r,   r   r#   r)   r
   rJ    r   r   <module>rV      s     & &T$Z0 &++&++	6<<	 x}  D "
. 
.D+3 +r   