
    -Ph|                         d dl mZ d dlT d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ  G d d	e          Zd
 Zd Z ed          Z ed          Z ed          Z eddeeg          Z ed          ZdS )   )ModuleScope)*)CythonUtilityCodeerror)StringSourceDescriptor)
MemoryView)EncodedStringc                   \     e Zd ZdZdZd Zd Z fdZ fdZd Z	ddZ
d	 Zd
 Zd Z xZS )CythonScoper   Fc                 h   t          j        | dd d            d| _        |                                  || _        t
          t          t          fD ]'}|                     |j	        |d d          }d|_
        (|                     dt          d d          }|                     dt          d d          }d S )	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       [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/Cython/Compiler/CythonScope.pyr   zCythonScope.__init__   s    T8T4888#""$$$+-=O 	% 	%J(()3)-/8 ) : :E !%E!!' " ) ) !! "<d0 " 2 2    c                     | j         j        S N)r"   cpp)r!   s    r%   is_cppzCythonScope.is_cpp#   s    |r&   c                 l    t          |          }|r|S t                                          |          S r(   )parse_basic_typesuperlookup_type)r!   r   type	__class__s      r%   r.   zCythonScope.lookup_type'   s5    %% 	Kww""4(((r&   c                     t                                          |          }|<| j        s5|                                  t                                          |          }|S r(   )r-   lookup_cythonscope_initializedload_cythonscope)r!   r   r$   r0   s      r%   r2   zCythonScope.lookup/   sP    t$$=!>=!!###GGNN4((Er&   c                 ,    t          d|z  |           d S )Ncython.%s is not availabler   )r!   module_nameposs      r%   find_modulezCythonScope.find_module8   s    *[8#>>>>>r&   c                    | j                             |d           }|s/|                                  | j                             |d           }|r|j        r|j        S t	          t          dd          ddfd|z            )Nr        r6   )entriesgetr4   	as_moduler   r   )r!   r7   
as_packager$   s       r%   find_submodulezCythonScope.find_submodule;   s      d33 	8!!###L$$[$77E 	>U_ 	>?" /"==q!D.<> > >r&   c                    |                     d          }| }t          |          dk    r>|                    |d                   }|r|j        }|d= |d S t          |          dk    >|                    |d                   S )N.r   r<   )splitlenlookup_herer?   )r!   qname	name_pathscopes       r%   lookup_qualified_namez!CythonScope.lookup_qualified_nameK   s    KK$$	)nnq  %%il33E (!}t )nnq   $$Yq\222r&   c                    |                      dt          d d          }d|_        |j        }|                     dt          t          t          dt          d           t          dt          |          d           g          d dd           d S )	NPyTypeObject)	base_typer8   r   TPyObject_TypeCheckotr   )r8   definingr   )
r   c_void_typeis_voidr/   declare_cfunction	CFuncTypec_bint_typeCFuncTypeArgpy_object_type
c_ptr_type)r!   type_objecttype_object_types      r%   r   z!CythonScope.populate_cython_scopeY   s    **#"	 + $ $
 #&+ kLnd$K$K$0jAQ6R6RTX$Y$Y$[ \ \( 	 	* 	* 	* 	* 	*r&   c                    | j         rdS d| _         t                              | |            t                              | |            t	          d| d          x| _        }||                     d|d          _        d|_        d|_	        t                              ||            t          j        | j        j                                      | j        | t          j                  }d |j                                        D             }|D ]	}d|_        
t'          d          }t	          || d	          }||                     ||d
          _        d|_        d|_	        dS )zy
        Creates some entries for testing purposes and entries for
        cython.array() and for cython.view.*.
        NT)cython_scopeview)r]   	allowlistc                 4    g | ]}|j         j        |j         S  )r/   is_extension_type).0r$   s     r%   
<listcomp>z0CythonScope.load_cythonscope.<locals>.<listcomp>   s4     ; ; ;"!J8;ej ; ; ;r&   r   dataclassesr"   )r8   )r3   cython_testscope_utility_codedeclare_in_scope!cython_test_extclass_utility_coder   	viewscopedeclare_moduler?   is_cython_builtinr   !cythonview_testscope_utility_coder	   get_view_utility_coder"   shared_utility_qualified_nameview_utility_allowlistr=   valuesis_cython_builtin_typer
   )r!   rj   view_utility_scope	ext_typesext_typedc_strdataclassesscopes          r%   r4   zCythonScope.load_cythonscopek   s   
 ( 	F(,%%66 $4 	7 	9 	9 	9)::$(t 	; 	= 	= 	= &1t%D%DDAJFIt44>&*	#$(	!)::,5D 	; 	J 	J 	J (=L6
 


N9Z  \ \ 	; ;&8&@&G&G&I&I; ; ;	 " 	0 	0H./H++
 }--&vtTBBBL\F$4$??I-1*+/(((r&   )F)__name__
__module____qualname__rl   r3   r   r*   r.   r2   r9   rA   rJ   r   r4   __classcell__)r0   s   @r%   r   r   
   s        $2 2 2*     ) ) ) ) )    ? ? ?> > > > 3 3 3* * *$-0 -0 -0 -0 -0 -0 -0r&   r   c                      t          |           S r(   )r   rf   s    r%   create_cython_scoper}      s     wr&   c                 (    t          j        | dfi |S )NzTestCythonScope.pyx)r   load)cy_util_namekwargss     r%   load_testscope_utilityr      s    !,0EPP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   r;   r	   StringEncodingr
   r   r}   r   undecorated_methods_protosrg   test_cython_utility_depri   rm   ra   r&   r%   <module>r      sX             * * * * * *       , , , , , ,       ) ) ) ) ) )N0 N0 N0 N0 N0+ N0 N0 N0d     Q Q Q )[ 0     !7 6{ C C 00;;  ;[%?%<%>? ? ? "
 %;$:;K$L$L ! ! !r&   