
    hm                     
   S SK JrJrJr  S SKrS SKJrJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJrJrJr  S r\R&                  R(                  \R&                  R+                  S	S
SSS.4SSSS.4SSSSS.4/5      S 5       5       rg)    )CallableDictIterableN)Configfix_random_seedLanguage)ConfigSchemaTraining)Example)load_model_from_configregistryresolve_dot_namesc                  ^  ^^ Sn [         R                  " S5      S[        [        [        [
        /[        [           4   4   4S j5       n[        5       R                  U 5      n[        USS9m[         R                  " TR                  R                  5       S   [        S9nUS	   US
   /n[        TR                  U5      u  mn[!        T[        5      (       d   eUS   nTR#                  UU4S jUS9  T" T5       H  nTR%                  U/US9  M     TR'                  [)        U" T5      5      5      nUS   S:X  d   eT" S5      n	U	R*                  (       d   eSTR                  R                  5       S   0n
[         R                  " U
5      S   S   n[!        U[        5      (       d   eg )Nz
    [training]

    [corpora]
    @readers = "myreader.v1"

    [nlp]
    lang = "en"
    pipeline = ["tok2vec", "textcat"]

    [components]

    [components.tok2vec]
    factory = "tok2vec"

    [components.textcat]
    factory = "textcat"
    zmyreader.v1returnc                  8   ^ SSSS.0mS[         4U4S jjn X X S.$ )Ncats      ?        )POSNEGnlpc                 V   > U R                  S5      n[        R                  " UT5      /$ )NzThis is an example)make_docr   	from_dict)r   docannotss     [/home/james-whalen/.local/lib/python3.13/site-packages/spacy/tests/training/test_readers.pyreader.test_readers.<locals>.myreader.<locals>.reader$   s(    ,,!35C%%c6233    )traindevextra	somethingr   )r   r   s    @r   myreadertest_readers.<locals>.myreader    s+    #c23	4 	4  UUr    T	auto_filltrainingschematrain_corpus
dev_corpus	optimizerc                     > T" T 5      $ N r   r,   s   r   <lambda>test_readers.<locals>.<lambda>4   
    <,r    sgdcats_macro_aucr   
Quick testcorporar#   )r   readersr   strr   r	   r   r   r   from_strr   resolveconfiginterpolater
   r   
isinstance
initializeupdateevaluatelistr   )config_stringr%   r?   T	dot_namesr-   r.   examplescoresr   r:   extra_corpusr   r,   s               @@r   test_readersrL      s   M& m$Vd3(Xg5F)F GGH V %V X}-F
 4
8C

 ,5I	A >"AlO4I0YGL*lH----+INN,)N<$

G9)
, %\\$z#/0F"#s***
l
C88O8#**0029=>G##G,Y7@LlH----r    zreader,additional_configzml_datasets.imdb_sentiment.v1
   )train_limit	dev_limitzml_datasets.dbpedia.v1zml_datasets.cmu_movies.v1   g?)limitfreq_cutoffsplitc           	        ^^ Sn[        5       R                  U5      n[        US   S   5        XS   S'   US   R                  U5        [	        USS9m[
        R                  " TR                  S   [        S9nUS	   US
   /n[        TR                  U5      u  mnUS   nTR                  UU4S jUS9  T" T5       Hx  nUR                  R                  (       d   e[        [        [        UR                  R                  R!                  5       5      5      5      SS/:X  d   eTR                  U/US9  Mz     [        U" T5      5      n	U	 HJ  n[        [        [        UR                  R                  R!                  5       5      5      5      SS/:X  a  MJ   e   TR#                  U	5      n
U
S   (       d   eT" S5      nUR                  (       d   eg )Na\  
    [training]
    seed = 0

    [training.score_weights]
    cats_macro_auc = 1.0

    [corpora]
    @readers = "PLACEHOLDER"

    [nlp]
    lang = "en"
    pipeline = ["tok2vec", "textcat_multilabel"]

    [components]

    [components.tok2vec]
    factory = "tok2vec"

    [components.textcat_multilabel]
    factory = "textcat_multilabel"
    r)   seedr:   z@readersTr'   r*   r,   r-   r.   c                     > T" T 5      $ r0   r1   r2   s   r   r3   "test_cat_readers.<locals>.<lambda>k   r5   r    r6   r   r   
cats_scorer9   )r   r=   r   rC   r   r   r>   r?   r
   r   rB   yr   sortedrE   setvaluesrD   )r   additional_confignlp_config_stringr?   rG   rH   r-   r.   rI   dev_examplesrJ   r   r   r,   s               @@r   test_cat_readersr`   A   s   , X01FF:&v./$*9j!
9./
 4
8CJ/8LMA>"AlO4I0YGL*+INN,)N<$yy~~~d3wyy~~446789c3ZGGG

G9)
,	 % 
3(Ld3wyy~~446789c3ZGGG   \\,'F,
l
C88O8r    )typingr   r   r   pytest	thinc.apir   r   spacyr	   spacy.schemasr
   spacy.trainingr   
spacy.utilr   r   r   rL   markslowparametrizer`   r1   r    r   <module>rk      s    + +  -  . " J J2.j 	("2*NO	!2B#GH	$3QT&UV0 0r    