
    hf                     4   S r SSKrSSKrSSKrSSKrSSKJr  SSKJrJ	r	J
r
JrJrJrJr  SSKr SSKJr  SSKr\\\\   \4   r\" S5      r\" S5      r\R2                   " S S	\	\\4   5      5       rS
r " S S\R8                  5      r\R<                  R?                  S5      S4S\S\ S\!4S jj5       r"\R<                  R?                  S5      S5S\S\ S\#S\!4S jj5       r$\R=                  S5      S\S\4S j5       r%\RM                  S5       S6SSSS.S\S\S\S\ 4S  jjj5       r'\RQ                  S!5      S"\S#\#S$\#S\
\   4S% j5       r)\R=                  S&5      S'\\#\#4   S\\#\#4   4S( j5       r*\R=                  S)5       S7S*\\#   S+\\#   S\\\#   \\#   4   4S, jj5       r+\RL                  R?                  S-5      S\\   S\4S. j5       r,\RQ                  S/5      S0\S1\#S\\   4S2 j5       r-\R\                  S3 5       r/g! \ a
    SSKJr   GNf = f)8z-
Registered functions used for config tests.
    N)Path)	GeneratorGenericIterableListOptionalTypeVarUnion)
StrictBoolInTOutTc                   4    \ rS rSr% \\S'   \\S'   \\S'   Srg)Cat   namevalue_in	value_out N)	__name__
__module____qualname____firstlineno__str__annotations__r   r   __static_attributes__r       O/home/james-whalen/.local/lib/python3.13/site-packages/confection/tests/util.pyr   r      s    
IMOr   r   config_testsc                       \ rS rSrSr\R                  " \SSS9r\R                  " \SSS9r\R                  " \SSS9r	\R                  " \SSS9r
\R                  " \S	SS9rS
rg)my_registry#   r   catsF)entry_points
optimizers	schedulesinitializerslayersr   N)r   r   r   r   	namespace	cataloguecreater"   r$   r%   r&   r'   r   r   r   r   r    r    #   sk    IIvEBD!!)\NJ  KeLI##I~ERLiFFr   r    z	catsie.v1Tevilcutereturnc                     U (       a  gg)Nscratch!meowr   )r+   r,   s     r   	catsie_v1r1   ,   s    r   z	catsie.v2
cute_levelc                 "    U (       a  gUS:  a  gg)Nr/      zmeow <3r0   r   )r+   r,   r2   s      r   	catsie_v2r5   4   s    >r   z	catsie.v3argc                     U $ Nr   )r6   s    r   catsier9   >   s    Jr   zAdam.v1MbP?)beta1beta2use_averages
learn_rater;   r<   r=   c                J    [         R                   " S S5      5       nU" XX#S9$ )z
Mocks optimizer generation. Note that the returned object is not actually an optimizer. This function is merely used
to illustrate how to use the function registry, e.g. with thinc.
c                   >    \ rS rSr% \\S'   \\S'   \\S'   \\S'   Srg)Adam.<locals>.OptimizerP   r>   r;   r<   r=   r   N)r   r   r   r   
FloatOrSeqr   boolr   r   r   r   	OptimizerrA   P   s    r   rE   )r>   r;   r<   r=   )dataclasses	dataclass)r>   r;   r<   r=   rE   s        r   AdamrH   C   s5        % r   zwarmup_linear.v1initial_ratewarmup_stepstotal_stepsc           	   #      #    Sn X1:  a  U[        SU5      -  nO[        SX#-
  [        SX!-
  5      -  5      nX@-  v   US-  nM?  7f)zGenerate a series, starting from an initial rate, and then with a warmup
period, and then a linear decline. Used for learning rates.
r      g        g      ?)max)rI   rJ   rK   stepfactors        r   warmup_linearrQ   \   s`      D
C<00Fk(C[5O,PPF ##	    AAzgeneric_cat.v1catc                     SU l         U $ )Ngeneric_cat)r   )rS   s    r   rU   rU   o   s    CHJr   z
int_cat.v1r   r   c                     [        SXS9$ )z%Instantiates cat with integer values.int_cat)r   r   r   )r   )r   r   s     r   rW   rW   u   s    
 IFFr   zmy_cool_optimizer.v1c                     [        XS9$ )N)r;   )rH   )r>   r;   s     r   make_my_optimizerrY   }   s    
((r   zmy_cool_repetitive_schedule.v1	base_raterepeatc                     X/-  $ r8   r   )rZ   r[   s     r   decayingr]      s    Kr   c               #      #    [        [        R                  " 5       5      n U v   [        R                  " [        U 5      5        g 7fr8   )r   tempfilemkdtempshutilrmtreer   )ds    r   make_tempdirrd      s-     X A
G
MM#a&rR   )T)TrM   )r:   )NN)0__doc__
contextlibrF   ra   r_   pathlibr   typingr   r   r   r   r   r	   r
   r)   pydantic.v1.typesr   ImportErrorpydantic.types
confectionfloatrC   r   r   rG   r   my_registry_namespaceregistryr    r"   registerrD   r   r1   intr5   r9   r$   rH   r%   rQ   rU   rW   rY   r]   contextmanagerrd   r   r   r   <module>rs      s        O O O *, 5$u+y01
env '#t)
   ' G*%% G ;'J d c  ( ;'J d s 3  ( +    	""   	
  #0 )*'*9<e_ +$ "#Sc] s38}  $
 ,?CGsmG/7}G#	%&G  G   !78)$u+ )e ) 9) 78   s  tE{   9   s  *))*s   H HH