https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/numpy/f2py/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/numpy/f2py/tests/__pycache__/test_callback.cpython-310.pyc
o

6��a��@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlZ	ddl
mZmZm
Z
ddlmZGdd�dej�ZGdd�de�ZGd	d
�d
ej�ZGdd�dej�ZdS)
�N)�assert_�assert_equal�IS_PYPY�)�utilc@s�eZdZdZej�dd�d��dd��Zejj	e
dd�d	d
��Zdd�Zejj
ejd
kdd�dd��Zejj
ejd
kdd�dd��Zdd�Zdd�ZdS)�TestF77Callbacka�
       subroutine t(fun,a)
       integer a
cf2py  intent(out) a
       external fun
       call fun(a)
       end

       subroutine func(a)
cf2py  intent(in,out) a
       integer a
       a = a + 11
       end

       subroutine func0(a)
cf2py  intent(out) a
       integer a
       a = 11
       end

       subroutine t2(a)
cf2py  intent(callback) fun
       integer a
cf2py  intent(out) a
       external fun
       call fun(a)
       end

       subroutine string_callback(callback, a)
       external callback
       double precision callback
       double precision a
       character*1 r
cf2py  intent(out) a
       r = 'r'
       a = callback(r)
       end

       subroutine string_callback_array(callback, cu, lencu, a)
       external callback
       integer callback
       integer lencu
       character*8 cu(lencu)
       integer a
cf2py  intent(out) a

       a = callback(cu, lencu)
       end

       subroutine hidden_callback(a, r)
       external global_f
cf2py  intent(callback, hide) global_f
       integer a, r, global_f
cf2py  intent(out) r
       r = global_f(a)
       end

       subroutine hidden_callback2(a, r)
       external global_f
       integer a, r, global_f
cf2py  intent(out) r
       r = global_f(a)
       end
    �namezt,t2�,cCs|�|�dS�N)�check_function)�selfr�r
�@/usr/lib/python3/dist-packages/numpy/f2py/tests/test_callback.py�test_allQszTestF77Callback.test_allz,PyPy cannot modify tp_doc after PyType_Ready)�reasoncCst�d�}t|jjj|�dS)Na�        a = t(fun,[fun_extra_args])

        Wrapper for ``t``.

        Parameters
        ----------
        fun : call-back function

        Other Parameters
        ----------------
        fun_extra_args : input tuple, optional
            Default: ()

        Returns
        -------
        a : int

        Notes
        -----
        Call-back functions::

          def fun(): return a
          Return objects:
            a : int
        )�textwrap�dedentr�module�t�__doc__)r�expectedr
r
r�test_docstringUs
zTestF77Callback.test_docstringcCs�t|j|�}|dd��}t|dkt|��|dd�dd�}t|dkt|��|dd�dd�}t|d	kt|��|d
d�dd�}t|dkt|��|d
d�tjfd�}t|dkt|��|tjtjfd�}t|dkt|��||jjdd�}t|dkt|��||jj�}t|dkt|��||jjj	�}t|dkt|��Gdd�d�}|�}||�}t|dkt|��||j
�}t|dkt|��dS)NcS�dS)N�r
r
r
r
r�<lambda>v�z0TestF77Callback.check_function.<locals>.<lambda>rcSr�N�r
��ar
r
rrxr)�)�fun_extra_argsrcSs|Sr
r
rr
r
rrzrr cSsd|Srr
rr
r
rr|�)��cSs
t�|�Sr
)�math�degreesrr
r
rr~s
���c@seZdZdd�Zdd�ZdS)z)TestF77Callback.check_function.<locals>.AcSr)Nr#r
�rr
r
r�__call__��z2TestF77Callback.check_function.<locals>.A.__call__cSr)N�	r
r*r
r
r�mth�r,z-TestF77Callback.check_function.<locals>.A.mthN)�__name__�
__module__�__qualname__r+r.r
r
r
r�A�sr2r#r-)�getattrrr�reprr%�pir&�func�func0�	_cpointerr.)rrr�rr2rr
r
rrts2
zTestF77Callback.check_function�win32z)Fails with MinGW64 Gfortran (Issue #9673)cCs2dd�}t|jd�}||�}t|dkt|��dS)NcSs|dkrdSdS)Nr9rrr
)�coder
r
r�callback�sz6TestF77Callback.test_string_callback.<locals>.callback�string_callbackr)r3rrr4)rr<�fr9r
r
r�test_string_callback�sz$TestF77Callback.test_string_callbackcCsFt�dd�}dd�}t|jd�}|||t|��}t|dkt|��dS)N)r��S1cSs6|j|dfkr	dS|jdkrdSt�|dk�sdSdS)Nr@rrA���r)�shape�dtype�np�all)�cu�lencur
r
rr<�s
z<TestF77Callback.test_string_callback_array.<locals>.callback�string_callback_arrayr)rG�zerosr3r�lenrr4)rrIr<r>�resr
r
r�test_string_callback_array�s
	z*TestF77Callback.test_string_callback_arraycspg��fdd�����fdd���fdd�dD�}|D]}|��q|D]}|��q$d�����r6t���dS)	Ncs*t�d��j�dd��}t|dk�dS)Ng����MbP?cSr�N�{r
r
r
r
rr�rz?TestF77Callback.test_threadsafety.<locals>.cb.<locals>.<lambda>rQ�*)�time�sleeprrr)r9r*r
r�cb�s
z-TestF77Callback.test_threadsafety.<locals>.cbcsZztd�D]}�j���}t|dk���|�qWdSty,��t���YdSw)N�2rR)	�rangerrrr�	Exception�append�	traceback�
format_exc)r�jr9)rU�errorsrr
r�runner�s��z1TestF77Callback.test_threadsafety.<locals>.runnercs*g|]}td�D]
}tj�|fd��qqS)�)�target�args)rW�	threading�Thread)�.0�arg�n)r^r
r�
<listcomp>�s
��z5TestF77Callback.test_threadsafety.<locals>.<listcomp>)r�t2z

)�start�join�AssertionError)r�threadsrr
)rUr]r^rr�test_threadsafety�s
	�


�z!TestF77Callback.test_threadsafetyc
Cshz|j�d�Wnty#}ztt|��d��WYd}~nd}~wwz|j�d�WntyG}ztt|��d��WYd}~nd}~wwdd�|j_|j�d�}t|dk�dd�|j_|j�d�}t|dk�|j`z|j�d�Wnty�}ztt|��d��WYd}~nd}~wwdd
d�|j_|j�d�}t|dk�|j�d�}t|dk�dS)
NrBzCallback global_f not definedz!cb: Callback global_f not definedcS�|dS)Nrr
��xr
r
rr�r"z6TestF77Callback.test_hidden_callback.<locals>.<lambda>rDcSrn)NrBr
ror
r
rr�r"rrcSrn)NrDr
ror
r
rr�r"r)r)r�hidden_callbackrXr�str�
startswith�hidden_callback2�global_f)r�msgr9r
r
r�test_hidden_callback�s<������z$TestF77Callback.test_hidden_callbackN)r/r0r1r;�pytest�mark�parametrize�splitr�xfailrrr�skipif�sys�platformr?rOrmrwr
r
r
rrs&A
�
#�
�
&rc@seZdZdZdgZdS)�TestF77CallbackPythonTLSz[
    Callback tests using Python thread-local storage instead of
    compiler-provided
    z-DF2PY_USE_PYTHON_TLSN)r/r0r1r�optionsr
r
r
rr�s
r�c@s"eZdZdZe�d�Zdd�ZdS)�TestF90Callback�.f90z�
        function gh17797(f, y) result(r)
          external f
          integer(8) :: r, f
          integer(8), dimension(:) :: y
          r = f(0)
          r = r + sum(y)
        end function gh17797
        cCs:dd�}tjgd�tjd�}|j�||�}|dksJ�dS)NcSrnrPr
ror
r
r�incrsz*TestF90Callback.test_gh17797.<locals>.incr�rrBrD�rF�)rG�array�int64r�gh17797)rr��yr9r
r
r�test_gh17797szTestF90Callback.test_gh17797N)r/r0r1�suffixrrr;r�r
r
r
rr�s�r�c@s&eZdZdZdZe�d�Zdd�ZdS)�TestGH18335z�The reproduction of the reported issue requires specific input that
    extensions may break the issue conditions, so the reproducer is
    implemented as a separate test class. Do not extend this test with
    other tests!
    r�a
        ! When gh18335_workaround is defined as an extension,
        ! the issue cannot be reproduced.
        !subroutine gh18335_workaround(f, y)
        !  implicit none
        !  external f
        !  integer(kind=1) :: y(1)
        !  call f(y)
        !end subroutine gh18335_workaround

        function gh18335(f) result (r)
          implicit none
          external f
          integer(kind=1) :: y(1), r
          y(1) = 123
          call f(y)
          r = y(1)
        end function gh18335
        cCs8dd�}tjgd�tjd�}|j�|�}|dksJ�dS)NcSs|dd7<dS)Nrrr
ror
r
r�fooAsz%TestGH18335.test_gh18335.<locals>.foor�r��|)rGr��int8r�gh18335)rr�r�r9r
r
r�test_gh18335?szTestGH18335.test_gh18335N)	r/r0r1rr�rrr;r�r
r
r
rr�!s�r�)r%rr~rxrbrZrS�random�numpyrG�
numpy.testingrrr�r�F2PyTestrr�r�r�r
r
r
r�<module>s r

https://t.me/RX1948 - 2025