
    h|                         S SK Jr  S SK7  S SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJr   " S S	\5      rS
 rS r\" SS9r\" S5      r\" S5      r\" SS\\/S9r\" S5      rg)   )ModuleScope)*)CythonUtilityCodeerror)StringSourceDescriptor)
MemoryView)EncodedStringc                   j   ^  \ rS rSrSrSrS rS rU 4S jrU 4S jr	S r
SS	 jrS
 rS rS rSrU =r$ )CythonScope
   r   Fc                 >   [         R                  " U SS S 5        SU l        U R                  5         Xl        [
        [        [        4 H&  nU R                  UR                  US SS9nSUl
        M(     U R                  S[        S SS9nU R                  S[        S SS9ng )	NcythonTz<error>)cnamepymutex__Pyx_Locks_PyMutexpythread_type_lock__Pyx_Locks_PyThreadTypeLock)r   __init__pxd_file_loadedpopulate_cython_scope_contextcy_integral_typecy_floating_typecy_numeric_typedeclare_typedefnamein_cincludedeclare_typecy_pymutex_typecy_pythread_type_lock_type)selfcontext
fused_typeentrys       U/var/www/fran/franai/venv/lib/python3.13/site-packages/Cython/Compiler/CythonScope.pyr   CythonScope.__init__   s    T8T48#""$+-=OJ(()3)-/8 ) :E !%E P !!' " ) !! "<d0 " 2    c                 .    U R                   R                  $ N)r#   cpp)r"   s    r&   is_cppCythonScope.is_cpp#   s    ||r(   c                 J   > [        U5      nU(       a  U$ [        TU ]	  U5      $ r*   )parse_basic_typesuperlookup_type)r"   r   type	__class__s      r&   r1   CythonScope.lookup_type'   s%    %Kw"4((r(   c                    > [         TU ]  U5      nUc0  U R                  (       d  U R                  5         [         TU ]  U5      nU$ r*   )r0   lookup_cythonscope_initializedload_cythonscope)r"   r   r%   r3   s      r&   r6   CythonScope.lookup/   s=    t$=!>!>!!#GN4(Er(   c                 "    [        SU-  U5        g )Ncython.%s is not availabler   )r"   module_nameposs      r&   find_moduleCythonScope.find_module8   s    *[8#>r(   c                     U R                   R                  US 5      nU(       d,  U R                  5         U R                   R                  US 5      nU(       a  UR                  (       a  UR                  $ [	        [        SS5      SS4SU-  5      e)Nr        r;   )entriesgetr8   	as_moduler   r   )r"   r<   
as_packager%   s       r&   find_submoduleCythonScope.find_submodule;   sx      d3!!#LL$$[$7EU__??" /"=q!D.<> >r(   c                     UR                  S5      nU n[        U5      S:  a?  UR                  US   5      nU(       a  UR                  nUS	 Uc  g [        U5      S:  a  M?  UR                  US   5      $ )N.r   rB   )splitlenlookup_hererE   )r"   qname	name_pathscopes       r&   lookup_qualified_name!CythonScope.lookup_qualified_nameK   su    KK$	)nq %%il3E!} )nq  $$Yq\22r(   c                     U R                  S[        S SS9nSUl        UR                  nU R	                  S[        [        [        S[        S 5      [        S[        U5      S 5      /5      S SSS9  g )	NPyTypeObject)	base_typer=   r   TPyObject_TypeCheckotr   )r=   definingr   )
r   c_void_typeis_voidr2   declare_cfunction	CFuncTypec_bint_typeCFuncTypeArgpy_object_type
c_ptr_type)r"   type_objecttype_object_types      r&   r   !CythonScope.populate_cython_scopeY   s    **#"	 + $
 #&++ kLnd$K$0jAQ6RTX$Y$[ \( 	 	*r(   c                    U R                   (       a  gSU l         [        R                  X S9  [        R                  X S9  [	        SU S5      =U l        nXR                  SUS5      l        SUl        SUl	        [        R                  XS9  [        R                  " U R                  R                  5      R                  U R
                  U [        R                  S9nUR                   R#                  5        Vs/ s H,  nUR$                  R&                  (       d  M   UR$                  PM.     nnU H
  nSUl        M     [+        S5      n[	        X`SS9nXpR                  XgSS	9l        SUl        SUl	        gs  snf )
za
Creates some entries for testing purposes and entries for
cython.array() and for cython.view.*.
NT)cython_scopeview)rf   	allowlistr   dataclassesr#   )r=   )r7   cython_testscope_utility_codedeclare_in_scope!cython_test_extclass_utility_coder   	viewscopedeclare_modulerE   is_cython_builtinr   !cythonview_testscope_utility_coder	   get_view_utility_coder#   shared_utility_qualified_nameview_utility_allowlistrC   valuesr2   is_extension_typeis_cython_builtin_typer
   )r"   rn   view_utility_scoper%   	ext_typesext_typedc_strdataclassesscopes           r&   r8   CythonScope.load_cythonscopek   sy   
 (((,%%66 $ 	7 	9)::$( 	; 	= &1t%DDAJFIt4>&*	#$(	!)::,5 	; 	J (==LL66


NN9Z9Z  \ 	 '9&@&@&G&G&I;&IU!JJ88 !ejj&I 	 ; "H./H+ " }-&vTBL\F$?I-1*+/(;s   9E6E6)r   r7   r   rn   )F)__name__
__module____qualname____firstlineno__rp   r7   r   r,   r1   r6   r>   rG   rQ   r   r8   __static_attributes____classcell__)r3   s   @r&   r   r   
   sA    $2* )?> 3*$-0 -0r(   r   c                     [        U 5      $ r*   )r   rj   s    r&   create_cython_scoper      s     wr(   c                 2    [         R                  " U S40 UD6$ )NzTestCythonScope.pyx)r   load)cy_util_namekwargss     r&   load_testscope_utilityr      s    !!,0EPPPr(   a  
    /* These methods are undecorated and have therefore no prototype */
    static PyObject *__pyx_TestClass_cdef_method(
            struct __pyx_TestClass_obj *self, int value);
    static PyObject *__pyx_TestClass_cpdef_method(
            struct __pyx_TestClass_obj *self, int value, int skip_dispatch);
    static PyObject *__pyx_TestClass_def_method(
            PyObject *self, PyObject *value);
)proto	TestScopeTestDep	TestClass)r   requireszView.TestScopeN)Symtabr   
PyrexTypesUtilityCoder   Errorsr   Scanningr   rA   r	   StringEncodingr
   r   r   r   undecorated_methods_protosrk   test_cython_utility_deprm   rq    r(   r&   <module>r      s      *  ,  )N0+ N0d Q ) 0   !7{ C 0;  ;[%?%<%>? "
 %;;K$L !r(   