
    h                         S SK r S SKrS SKJr  S SKrS SKJr  S SKJr  \" \	5      R                  S-  rS SK r S SKJr  \R                  rS r\\l        \R"                  S 5       rS	 rg)
    N)Path)Language)registryzfactory_registrations.json)utilc                 h     [        X5      $ ! [         a    [        U 5      [        U5      :H  s $ f = f)N)original_is_same_func	TypeErrorstr)func1func2s     `/home/james-whalen/.local/lib/python3.13/site-packages/spacy/tests/test_factory_registrations.pypatched_is_same_funcr      s4    ($U22 (5zSZ''(s   
 !11c                      [         R                  5       (       d  [        R                  " S[          S35        [         R	                  S5       n [
        R                  " U 5      sSSS5        $ ! , (       d  f       g= f)z3Load reference factory registrations from JSON filezReference file z6 not found. Run export_factory_registrations.py first.rN)REFERENCE_FILEexistspytestfailopenjsonload)fs    r   reference_factory_registrationsr   !   sV       ""n--cd	
 
		S	!Qyy| 
"	!	!s   A--
A;c                    [         R                  " 5         [         R                  R                  5       n0 nUR	                  5        H'  u  p4 UR
                  n UR                  nUUUS.X#'   M)     [        U R                  5       5      [        UR                  5       5      -
  nU(       a"   SSR                  [!        U5      5       35       e[        UR                  5       5      [        U R                  5       5      -
  nU(       a'  [#        S	SR                  [!        U5      5       35        g
g
! [        [        4 a2    [        U5      R                  5       S   R                  S5      S   n GNf = f! [        [        4 aO    [        US5      (       a  UR                  O-[        U5      R                  5       S   R                  S5      S   n GNmf = f)zNTest that all factory registrations from the reference file are still present.   .r   __name__)namemodulefunctionzMissing factory registrations: z, z!New factory registrations found: N)r   ensure_populated	factoriesget_allitems
__module__AttributeErrorr	   r
   split__qualname__hasattrr   setkeysjoinsortedprint)	r   all_factoriescurrent_registrationsr   funcmodule_name	func_namemissing_registrationsnew_registrationss	            r   $test_factory_registrations_preservedr7   -   s     &&..0M  $))+
	=//K
	))I !!'
#% ,2   ? D D FG#""$K  "T	(6:O3P)Q(RST! 16689C',,.=  /		&AR:S0T/UV	
 A 	* 	=d)//+A.44S9!<K	= 	* 	 4,, Y__&q)//4R8 	s%   D/E4/>E10E14AGG)inspectr   pathlibr   r   spacy.languager   
spacy.utilr   __file__parentr   spacyr   is_same_funcr   r   fixturer   r7        r   <module>rC      sn        #  h&&)EE  )) ( )   4
rB   