File: //lib/python3/dist-packages/numpy/f2py/__pycache__/__init__.cpython-310.pyc
o
6��a� � @ s� d Z g d�ZddlZddlZddlZddlmZ ddlmZ ejZej Z
ddd
�Z
dd� Zejdd� dkrFdd� Z
dd� ZdS ddlmZ ddlmZ ee�Z[dS )z(Fortran to Python Interface Generator.
)�run_main�compile�get_include�f2py_testing� N� )�f2py2e)�diagnose�untitled� T�.fFc C sV ddl }ddl}|du r|j|d�\} }
t�| � n|}
t| t�s&t| d�} zrt|
d��
} | �| � W d � n1 s<w Y dd|| j g}t|t�rYtj dk}|j
||d �}|�|� tj
dd
g| }
ztj|
tjtjd�}W n ty� tj|
dd
d
d�}Y n
w |r�t|j�� � W |du r�t�|
� n|du r�t�|
� w w |r�|S |jS )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
--------
.. include:: compile_session.dat
:literal:
r N)�suffixzutf-8�wz-cz-m�posix)r z)import numpy.f2py as f2py2e;f2py2e.main())�stdout�stderr� � )�tempfile�shlex�mkstemp�os�close�
isinstance�str�open�write�name�split�extend�sys�
executable�
subprocess�run�PIPE�OSError�CompletedProcess�printr �decode�remove�
returncode)�source�
modulename�
extra_args�verbose� source_fn� extension�full_outputr r �f�fname�args�is_posix�c�cp� r7 �5/usr/lib/python3/dist-packages/numpy/f2py/__init__.pyr sT <
�
��
���
���r c C s t j�t j�t�d�S )a�
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.22.0
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__r7 r7 r7 r8 r } s ,r � )� � c C sN | dkrdd l m m} |S | dkrddlm} |t�}|S td�t| ���)Nr r �test��PytestTesterz!module {!r} has no attribute {!r})�numpy.f2py.f2py_testing�f2pyr �numpy._pytesttesterrC �__name__�AttributeError�format)�attrr rC rA r7 r7 r8 �__getattr__� s �rK c C s t t� �� ddhB �S )Nr rA )�list�globals�keysr7 r7 r7 r8 �__dir__� s rO )r rB )r r
TNr F)�__doc__�__all__r r! r r
r r r �mainr r �version_inforK rO r rF rC rG rA r7 r7 r7 r8 �<module> s0
�k/