Ë
    ›2Úik  ã                   ó–   — d Z g d¢ZddlZddlZddlZddlmZ ddlmZ ej                  Zej                  Z		 	 	 	 	 	 dd„Z
d„ Zd	„ Zd
„ Zy)z(Fortran to Python Interface Generator.

)Úrun_mainÚcompileÚget_includeé    Né   )Úf2py2e)Údiagnosec                 ó>  — ddl }ddl}|€+|j                  |¬«      \  }	}
t        j                  |	«       n|}
t        | t        «      st        | d«      } 	 t        |
d«      5 }	|	j                  | «       ddd«       dd|	j                  g}t        |t        «      r&t        j                  dk(  }|j                  ||¬	«      }|j                  |«       t        j                  dd
g|z   }	 t        j                  |d¬«      }|r$t!        |j"                  j%                  «       «       	 |€t        j*                  |
«       	 |r|S |j,                  S # 1 sw Y   ŒÜxY w# t&        $ r t        j(                  |ddd¬«      }Y ŒXw xY w# |€t        j*                  |
«       w w xY w)a  
    Build extension module from a Fortran 77 source string with f2py.

    Parameters
    ----------
    source : str or bytes
        Fortran source of module / subroutine to compile

        .. versionchanged:: 1.16.0
           Accept str as well as bytes

    modulename : str, optional
        The name of the compiled python module
    extra_args : str or list, optional
        Additional parameters passed to f2py

        .. versionchanged:: 1.16.0
            A list of args may also be provided.

    verbose : bool, optional
        Print f2py output to screen
    source_fn : str, optional
        Name of the file where the fortran source is written.
        The default is to use a temporary file with the extension
        provided by the ``extension`` parameter
    extension : ``{'.f', '.f90'}``, optional
        Filename extension if `source_fn` is not provided.
        The extension tells which fortran standard is used.
        The default is ``.f``, which implies F77 standard.

        .. versionadded:: 1.11.0

    full_output : bool, optional
        If True, return a `subprocess.CompletedProcess` containing
        the stdout and stderr of the compile process, instead of just
        the status code.

        .. versionadded:: 1.20.0


    Returns
    -------
    result : int or `subprocess.CompletedProcess`
        0 on success, or a `subprocess.CompletedProcess` if
        ``full_output=True``

    Examples
    --------
    .. literalinclude:: ../../source/f2py/code/results/compile_session.dat
        :language: python

    r   N)Úsuffixzutf-8Úwz-cz-mÚposix)r   z)import numpy.f2py as f2py2e;f2py2e.main()T)Úcapture_outputé   ó    )ÚstdoutÚstderr)ÚtempfileÚshlexÚmkstempÚosÚcloseÚ
isinstanceÚstrÚopenÚwriteÚnameÚsplitÚextendÚsysÚ
executableÚ
subprocessÚrunÚprintr   ÚdecodeÚOSErrorÚCompletedProcessÚremoveÚ
returncode)ÚsourceÚ
modulenameÚ
extra_argsÚverboseÚ	source_fnÚ	extensionÚfull_outputr   r   ÚfÚfnameÚargsÚis_posixÚcÚcps                  úJ/var/www/html/acx/venv/lib/python3.12/site-packages/numpy/f2py/__init__.pyr   r      s}  € óx ÛàÐØ×#Ñ#¨9Ð#Ó5‰ˆˆ5ô 	�‰��àˆä�fœcÔ"Ü�V˜WÓ%ˆðÜ�%˜Óð 	 Ø�G‰G�FŒO÷	ð �d˜J¨¯©Ð/ˆä�j¤#Ô&ÜŸ™ 7Ñ*ˆHØŸ™ Z°x˜Ó@ˆJà�‰�JÔä�^‰^ØØ8ð:à<@ñAˆð	*Ü—‘ °$Ô7ˆBñ
 Ü�b—i‘i×&Ñ&Ó(Õ)àÐÜ�I‰I�eÕáØˆ	à�}‰}Ð÷;	ð 	ûô  ò 	Mä×,Ñ,¨Q°¸CÈÔLŠBð	Mûð ÐÜ�I‰I�eÕð úsI   ÁF Á!EÁ3A5F Ã)E Ä &F ÅEÅF Å"E?Å<F Å>E?Å?F ÆFc                  ó„   — t         j                  j                  t         j                  j                  t        «      d«      S )aw  
    Return the directory that contains the ``fortranobject.c`` and ``.h`` files.

    .. note::

        This function is not needed when building an extension with
        `numpy.distutils` directly from ``.f`` and/or ``.pyf`` files
        in one go.

    Python extension modules built with f2py-generated code need to use
    ``fortranobject.c`` as a source file, and include the ``fortranobject.h``
    header. This function can be used to obtain the directory containing
    both of these files.

    Returns
    -------
    include_path : str
        Absolute path to the directory containing ``fortranobject.c`` and
        ``fortranobject.h``.

    Notes
    -----
    .. versionadded:: 1.21.1

    Unless the build system you are using has specific support for f2py,
    building a Python extension using a ``.pyf`` signature file is a two-step
    process. For a module ``mymod``:

    * Step 1: run ``python -m numpy.f2py mymod.pyf --quiet``. This
      generates ``_mymodmodule.c`` and (if needed)
      ``_fblas-f2pywrappers.f`` files next to ``mymod.pyf``.
    * Step 2: build your Python extension module. This requires the
      following source files:

      * ``_mymodmodule.c``
      * ``_mymod-f2pywrappers.f`` (if it was generated in Step 1)
      * ``fortranobject.c``

    See Also
    --------
    numpy.get_include : function that returns the numpy include directory

    Úsrc)r   ÚpathÚjoinÚdirnameÚ__file__© r   r5   r   r   |   s'   € ôX �7‰7�<‰<œŸ™Ÿ™¬Ó1°5Ó9Ð9r   c                 ór   — | dk(  rddl m}  |t        «      }|S t        dj	                  t        | «      «      ‚)NÚtestr   )ÚPytestTesterz!module {!r} has no attribute {!r})Únumpy._pytesttesterr?   Ú__name__ÚAttributeErrorÚformat)Úattrr?   r>   s      r5   Ú__getattr__rE   «   s=   € ð ˆv‚~Ý4ÙœHÓ%ˆØˆô ð %ß%+¡V¬H°dÓ%;ó=ð 	=r   c                  óL   — t        t        «       j                  «       dhz  «      S )Nr>   )ÚlistÚglobalsÚkeysr<   r   r5   Ú__dir__rJ   ¹   s   € Ü”“	—‘Ó  F 8Ñ+Ó,Ð,r   )ÚuntitledÚ TNz.fF)Ú__doc__Ú__all__r   r    r   rL   r   r   r   Úmainr   r   rE   rJ   r<   r   r5   ú<module>rP      s]   ðñò 1€ã 
Û Û 	å Ý à�?‰?€Ø‡{�{€ð "ØØØØØógòT,:ò^=ó-r   