✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server366.web-hosting.com ​🇻​♯➤ 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP 🇾​♯➤ 2025

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 67.223.118.204 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.36
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗙𝗙 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ 𝗔𝗟𝗟 𝗪𝗢𝗥𝗞𝗜𝗡𝗚....

𝗛𝗢𝗠𝗘
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /opt/cloudlinux/venv/lib/python3.11/site-packages/numpy/f2py/tests//test_compile_function.py
"""See https://github.com/numpy/numpy/pull/11937.

"""
import sys
import os
import uuid
from importlib import import_module
import pytest

import numpy.f2py

from . import util


def setup_module():
    if not util.has_c_compiler():
        pytest.skip("Needs C compiler")
    if not util.has_f77_compiler():
        pytest.skip("Needs FORTRAN 77 compiler")


# extra_args can be a list (since gh-11937) or string.
# also test absence of extra_args
@pytest.mark.parametrize("extra_args",
                         [["--noopt", "--debug"], "--noopt --debug", ""])
@pytest.mark.leaks_references(reason="Imported module seems never deleted.")
def test_f2py_init_compile(extra_args):
    # flush through the f2py __init__ compile() function code path as a
    # crude test for input handling following migration from
    # exec_command() to subprocess.check_output() in gh-11937

    # the Fortran 77 syntax requires 6 spaces before any commands, but
    # more space may be added/
    fsource = """
        integer function foo()
        foo = 10 + 5
        return
        end
    """
    # use various helper functions in util.py to enable robust build /
    # compile and reimport cycle in test suite
    moddir = util.get_module_dir()
    modname = util.get_temp_module_name()

    cwd = os.getcwd()
    target = os.path.join(moddir, str(uuid.uuid4()) + ".f")
    # try running compile() with and without a source_fn provided so
    # that the code path where a temporary file for writing Fortran
    # source is created is also explored
    for source_fn in [target, None]:
        # mimic the path changing behavior used by build_module() in
        # util.py, but don't actually use build_module() because it has
        # its own invocation of subprocess that circumvents the
        # f2py.compile code block under test
        with util.switchdir(moddir):
            ret_val = numpy.f2py.compile(fsource,
                                         modulename=modname,
                                         extra_args=extra_args,
                                         source_fn=source_fn)

            # check for compile success return value
            assert ret_val == 0

    # we are not currently able to import the Python-Fortran
    # interface module on Windows / Appveyor, even though we do get
    # successful compilation on that platform with Python 3.x
    if sys.platform != "win32":
        # check for sensible result of Fortran function; that means
        # we can import the module name in Python and retrieve the
        # result of the sum operation
        return_check = import_module(modname)
        calc_result = return_check.foo()
        assert calc_result == 15
        # Removal from sys.modules, is not as such necessary. Even with
        # removal, the module (dict) stays alive.
        del sys.modules[modname]


def test_f2py_init_compile_failure():
    # verify an appropriate integer status value returned by
    # f2py.compile() when invalid Fortran is provided
    ret_val = numpy.f2py.compile(b"invalid")
    assert ret_val == 1


def test_f2py_init_compile_bad_cmd():
    # verify that usage of invalid command in f2py.compile() returns
    # status value of 127 for historic consistency with exec_command()
    # error handling

    # patch the sys Python exe path temporarily to induce an OSError
    # downstream NOTE: how bad of an idea is this patching?
    try:
        temp = sys.executable
        sys.executable = "does not exist"

        # the OSError should take precedence over invalid Fortran
        ret_val = numpy.f2py.compile(b"invalid")
        assert ret_val == 127
    finally:
        sys.executable = temp


@pytest.mark.parametrize(
    "fsource",
    [
        "program test_f2py\nend program test_f2py",
        b"program test_f2py\nend program test_f2py",
    ],
)
def test_compile_from_strings(tmpdir, fsource):
    # Make sure we can compile str and bytes gh-12796
    with util.switchdir(tmpdir):
        ret_val = numpy.f2py.compile(fsource,
                                     modulename="test_compile_from_strings",
                                     extension=".f90")
        assert ret_val == 0


Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
11 Feb 2026 6.01 AM
root / root
0755
__pycache__
--
11 Feb 2026 6.01 AM
root / root
0755
src
--
20 Jan 2026 1.01 PM
root / root
0755
__init__.py
0 KB
20 Jan 2026 1.01 PM
root / root
0644
test_abstract_interface.py
0.813 KB
20 Jan 2026 1.01 PM
root / root
0644
test_array_from_pyobj.py
23.485 KB
20 Jan 2026 1.01 PM
root / root
0644
test_assumed_shape.py
1.432 KB
20 Jan 2026 1.01 PM
root / root
0644
test_block_docstring.py
0.551 KB
20 Jan 2026 1.01 PM
root / root
0644
test_callback.py
6.008 KB
20 Jan 2026 1.01 PM
root / root
0644
test_character.py
20.032 KB
20 Jan 2026 1.01 PM
root / root
0644
test_common.py
0.57 KB
20 Jan 2026 1.01 PM
root / root
0644
test_compile_function.py
4.088 KB
20 Jan 2026 1.01 PM
root / root
0644
test_crackfortran.py
12.771 KB
20 Jan 2026 1.01 PM
root / root
0644
test_docs.py
1.623 KB
20 Jan 2026 1.01 PM
root / root
0644
test_f2cmap.py
0.382 KB
20 Jan 2026 1.01 PM
root / root
0644
test_f2py2e.py
21.064 KB
20 Jan 2026 1.01 PM
root / root
0644
test_kind.py
1.632 KB
20 Jan 2026 1.01 PM
root / root
0644
test_mixed.py
0.828 KB
20 Jan 2026 1.01 PM
root / root
0644
test_module_doc.py
0.843 KB
20 Jan 2026 1.01 PM
root / root
0644
test_parameter.py
3.849 KB
20 Jan 2026 1.01 PM
root / root
0644
test_quoted_character.py
0.443 KB
20 Jan 2026 1.01 PM
root / root
0644
test_regression.py
2.106 KB
20 Jan 2026 1.01 PM
root / root
0644
test_return_character.py
1.458 KB
20 Jan 2026 1.01 PM
root / root
0644
test_return_complex.py
2.341 KB
20 Jan 2026 1.01 PM
root / root
0644
test_return_integer.py
1.807 KB
20 Jan 2026 1.01 PM
root / root
0644
test_return_logical.py
1.97 KB
20 Jan 2026 1.01 PM
root / root
0644
test_return_real.py
3.274 KB
20 Jan 2026 1.01 PM
root / root
0644
test_semicolon_split.py
1.597 KB
20 Jan 2026 1.01 PM
root / root
0644
test_size.py
1.137 KB
20 Jan 2026 1.01 PM
root / root
0644
test_string.py
2.893 KB
20 Jan 2026 1.01 PM
root / root
0644
test_symbolic.py
17.911 KB
20 Jan 2026 1.01 PM
root / root
0644
test_value_attrspec.py
0.315 KB
20 Jan 2026 1.01 PM
root / root
0644
util.py
10.868 KB
20 Jan 2026 1.01 PM
root / root
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF