
    G/Ph                         d Z ddlZddlmZ  ej        dej                  j        Z ej        dej                  j        Z	 G d de          ZdS )zdistutils.extension

Provides the Extension class, used to describe C/C++ extension
modules in setup scripts.

Overridden to support f2py.

    N)	Extensionz.*\.(cpp|cxx|cc)\Zz!.*\.(f90|f95|f77|for|ftn|f|pyf)\Zc                   L    e Zd ZdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZd Zd ZdS )r   a  
    Parameters
    ----------
    name : str
        Extension name.
    sources : list of str
        List of source file locations relative to the top directory of
        the package.
    extra_compile_args : list of str
        Extra command line arguments to pass to the compiler.
    extra_f77_compile_args : list of str
        Extra command line arguments to pass to the fortran77 compiler.
    extra_f90_compile_args : list of str
        Extra command line arguments to pass to the fortran90 compiler.
    Nc                    t          j        | |g |||||||	|
||           || _        |pg | _        t	          | j        t
                    rAdd l}d}|                    |t          d           | j        	                                | _        |pg | _
        || _        |pg | _        |pg | _        |pg | _        |pg | _        |pg | _        |pg | _        d S )N)
include_dirsdefine_macrosundef_macroslibrary_dirs	librariesruntime_library_dirsextra_objectsextra_compile_argsextra_link_argsexport_symbolsr   z4swig_opts is specified as a string instead of a list   )
stacklevel)old_Extension__init__sources	swig_opts
isinstancestrwarningswarnSyntaxWarningsplitdependslanguagef2py_optionsmodule_dirsextra_c_compile_argsextra_cxx_compile_argsextra_f77_compile_argsextra_f90_compile_args)selfnamer   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r   msgs                           Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/distutils/extension.pyr   zExtension.__init__!   s   , 	dB)+))#%9+#5 /-	/ 	/ 	/ 	/  #b dnc** 	4OOOHCMM#}M;;;!^1133DN }"  ).B&,"$8$>B!&<&B#&<&B#&<&B#    c                 >    t          d | j        D                       S )Nc              3   N   K   | ] }t          t          |                    V  !d S N)
cxx_ext_rer   .0sources     r'   	<genexpr>z,Extension.has_cxx_sources.<locals>.<genexpr>`   s0      FFv:c&kk**FFFFFFr(   anyr   r$   s    r'   has_cxx_sourceszExtension.has_cxx_sources_   s!    FFFFFFFFr(   c                 >    t          d | j        D                       S )Nc              3   4   K   | ]}t          |          V  d S r+   )fortran_pyf_ext_rer-   s     r'   r0   z-Extension.has_f2py_sources.<locals>.<genexpr>c   s+      II&%f--IIIIIIr(   r1   r3   s    r'   has_f2py_sourceszExtension.has_f2py_sourcesb   s!    IIDLIIIIIIr(   )NNNNNNNNNNNNNNNNNNN)__name__
__module____qualname____doc__r   r4   r8    r(   r'   r   r      s         " !%# !%#'#'#')< < < <|G G GJ J J J Jr(   r   )
r<   redistutils.extensionr   r   compileImatchr,   r7   r=   r(   r'   <module>rC      s     
			 : : : : : : RZ-rt44:
RZ DbdKKQ RJ RJ RJ RJ RJ RJ RJ RJ RJ RJr(   