
    Ki                        d Z ddlmZ ddlmZmZ ddlmZmZm	Z	m
Z
 ddlmZmZmZ ddlmZmZmZmZ ddlmZ dd	lmZmZ erd
dlmZmZ d
dlmZ  e
de      Z	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZ e	 	 	 	 	 	 dd       Z!y)z2Dependency resolution helpers and context manager.    )annotations)AsyncExitStackasynccontextmanager)TYPE_CHECKINGAnyAsyncGeneratorTypeVar)FailedDependencyget_annotation_dependenciesvalidate_dependencies   )
Dependencycurrent_docketcurrent_executioncurrent_worker)_TaskArgument)_Dependsget_dependency_parameters   )	ExecutionTaskFunction)WorkerD)boundc                    |j                   sJ d       t        |       j                         D ]  \  }}t        ||      s|c S  t	        |       j                         D ]  \  }}|D ]  }t        ||      s|c c S    y NzDependency must be single)singler   items
isinstancer   )functiondependency_type_
dependencydependenciess        k/home/jay/workspace/scripts/.codegraph-venv/lib/python3.12/site-packages/docket/dependencies/_resolution.py'get_single_dependency_parameter_of_typer&      s     !!>#>>!28<BBD :j/2 7x@FFH "<& 	"J*o6!!	""     c                z    |j                   sJ d       | j                         D ]  \  }}t        ||      s|c S  y r   )r   r   r   )r$   r!   r"   r#   s       r%   get_single_dependency_of_typer)   '   sJ     !!>#>>!%++- :j/2 r'   c                 K   t        j                  | j                        }t        j                  |       }t	        j                  |      }t
        j                  j                  i       }	 t               4 d {   }t
        j                  j                  |      }	 i }t        |j                        }	|	j                         D ]p  \  }
}|j                  }|
|v r	||
   ||
<   t        |t              r%|j                  st!        |
t#        d            ||
<   T	 |j%                  |       d {   ||
<   r t)        |j                        } |j                         D ]c  \  }}|j                  j+                  ||j+                  |            }|D ].  }|j-                  ||      }	 |j%                  |       d {    0 e | t
        j                  j/                  |       d d d       d {    t
        j                  j/                  |       t	        j.                  |       t        j.                  |       t        j.                  |       y 7 7 ,# t&        $ r}t!        |
|      ||
<   Y d }~d }~ww xY w7 # t&        $ r}t!        ||      ||<   Y d }~d }~ww xY w# t
        j                  j/                  |       w xY w7 # 1 d {  7  sw Y   xY w# t
        j                  j/                  |       t	        j.                  |       t        j.                  |       t        j.                  |       w xY ww)NzNo parameter name specified)r   setdocketr   r   r   cacher   stackr   r    r   kwargsr   r   	parameterr
   
ValueErrorenter_async_context	Exceptionr   getbind_to_parameterreset)worker	executiondocket_tokenworker_tokenexecution_tokencache_tokenr.   stack_token	arguments
parametersr0   r#   r/   errorr   parameter_namer$   valuer   s                      r%   resolved_dependenciesrC   1   s     "%%fmm4L!%%f-L'++I6O..$$R(K4+!# .	2 .	2u"..,,U3K,2,.	6y7I7IJ
-7-=-=-? R)Iz&--F F*/5i/@	), 
 #:}= * 4 4/?%z2O'P0	), !R5:5N5N&6 0	),%R0 :):L:LM4EK4E4E4G 0NL%,,00&	n(EE '3 
 * < <^U S"'";";E"BBB	  $$[1].	2 .	2` 	[)0\*\*g.	200 % R/?	5/Q	),R C( 8H .9In5 $$[1].	2 .	2 .	2 .	2` 	[)0\*\*s   A)M
,K' :I;K' > KA;J,I/I0I7A0J,(J<J
=J	J,
K)K' 4K5K' 9AM
K' I	J'I<6J,<JJ,J	J)	J$	J,$J)	)J,,!KKK' K$KK$ K' 'A MM
N)r    r   r!   type[D]returnD | None)r$   zdict[str, Dependency[Any]]r!   rD   rE   rF   )r7   r   r8   r   rE   z$AsyncGenerator[dict[str, Any], None])"__doc__
__future__r   
contextlibr   r   typingr   r   r   r	   uncalled_forr
   r   r   _baser   r   r   r   _contextualr   _functionalr   r   r8   r   r   r7   r   r   r&   r)   rC    r'   r%   <module>rP      s    8 " : > >  Q P & <3Cz"-4,?F <+<+(<+)<+ <+r'   