403Webshell
Server IP : 192.158.238.246  /  Your IP : 3.19.244.133
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python37/lib64/python3.7/site-packages/numpy/lib/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python37/lib64/python3.7/site-packages/numpy/lib/__pycache__/utils.cpython-37.pyc
B

��Fd��@stddlmZmZmZddlZddlZddlZddlZddlZddl	m
Z
mZmZddl
mZmZmZddlZddlmZmZdddd	d
ddd
ddddgZdd�Zdd�ZGdd�de�Zdd	�Zdd�Zdd�Zd3dd�Zdd�Zda da!d4dd �Z"ej#fd!d"�Z$dd#ej#dfd$d�Z%ej#fd%d
�Z&ia'e�(d&ej)�Z*d5d)d�Z+d*d+�Z,d,d-�Z-Gd.d/�d/e�Z.d0d�Z/d1d2�Z0dS)6�)�division�absolute_import�print_functionN)�issubclass_�issubsctype�
issubdtype)�ndarray�ufunc�asarray)�
getargspec�
formatargspecrrr�	deprecate�deprecate_with_doc�get_include�info�source�who�lookfor�byte_bounds�	safe_evalcCsVddl}|jdkr.tj�tj�|j�dd�}n$ddlm}tj�tj�|j�d�}|S)a�
    Return the directory that contains the NumPy \*.h header files.

    Extension modules that need to compile against NumPy should use this
    function to locate the appropriate include directory.

    Notes
    -----
    When using ``distutils``, for example in ``setup.py``.
    ::

        import numpy as np
        ...
        Extension('extension_name', ...
                include_dirs=[np.get_include()])
        ...

    rN�core�include)	�numpyZshow_config�os�path�join�dirname�__file__�
numpy.corer)r�dr�r �B/opt/alt/python37/lib64/python3.7/site-packages/numpy/lib/utils.pyrs
cCs
||_|S)N)�__name__)�func�namer r r!�_set_function_name4sr%c@s"eZdZdZddd�Zdd�ZdS)�
_Deprecatez�
    Decorator class to deprecate old functions.

    Refer to `deprecate` for details.

    See Also
    --------
    deprecate

    NcCs||_||_||_dS)N)�old_name�new_name�message)�selfr'r(r)r r r!�__init__Esz_Deprecate.__init__c
s�|j}|j}|j}ddl�|dkrHy
�j}Wntk
rF�j}YnX|dkrZd|�nd||f�|dk	rz�d|7����fdd�}t||�}�j}|dkr��}nd��|g�}||_y
�j	}	Wntk
r�YnX|j	�
|	�|S)	z:
        Decorator call.  Refer to ``decorate``.

        rNz`%s` is deprecated!z%`%s` is deprecated, use `%s` instead!�
cs�j�tdd��||�S)z1`arrayrange` is deprecated, use `arange` instead!�)�
stacklevel)�warn�DeprecationWarning)�args�kwds)�depdocr#�warningsr r!�newfuncbsz$_Deprecate.__call__.<locals>.newfuncz

)r'r(r)r4r"�AttributeErrorr%�__doc__r�__dict__�update)
r*r#r1�kwargsr'r(r)r5�docrr )r3r#r4r!�__call__Js8




z_Deprecate.__call__)NNN)r"�
__module__�__qualname__r7r+r<r r r r!r&9s

r&cOs`|rR|d}|dd�}d|kr.|�d�|d<d|krD|�d�|d<t||�|�St||�SdS)a
    Issues a DeprecationWarning, adds warning to `old_name`'s
    docstring, rebinds ``old_name.__name__`` and returns the new
    function object.

    This function may also be used as a decorator.

    Parameters
    ----------
    func : function
        The function to be deprecated.
    old_name : str, optional
        The name of the function to be deprecated. Default is None, in
        which case the name of `func` is used.
    new_name : str, optional
        The new name for the function. Default is None, in which case the
        deprecation message is that `old_name` is deprecated. If given, the
        deprecation message is that `old_name` is deprecated and `new_name`
        should be used instead.
    message : str, optional
        Additional explanation of the deprecation.  Displayed in the
        docstring after the warning.

    Returns
    -------
    old_func : function
        The deprecated function.

    Examples
    --------
    Note that ``olduint`` returns a value after printing Deprecation
    Warning:

    >>> olduint = np.deprecate(np.uint)
    >>> olduint(6)
    /usr/lib/python2.5/site-packages/numpy/lib/utils.py:114:
    DeprecationWarning: uint32 is deprecated
      warnings.warn(str1, DeprecationWarning, stacklevel=2)
    6

    r�NZnewnamer(�oldnamer')�popr&)r1r:�fnr r r!r
vs.cCs
t|d�S)N)r))r&)�msgr r r!�<lambda>��rDc
Cs�|j}|dd}|d}|d}t|�jj}|}}|dkrN||j|7}nJx@t||�D]2\}}	|	dkr|||d|	7}qZ||d|	7}qZW||7}||fS)a1
    Returns pointers to the end-points of an array.

    Parameters
    ----------
    a : ndarray
        Input array. It must conform to the Python-side of the array
        interface.

    Returns
    -------
    (low, high) : tuple of 2 integers
        The first integer is the first byte of the array, the second
        integer is just past the last byte of the array.  If `a` is not
        contiguous it will not use every byte between the (`low`, `high`)
        values.

    Examples
    --------
    >>> I = np.eye(2, dtype='f'); I.dtype
    dtype('float32')
    >>> low, high = np.byte_bounds(I)
    >>> high - low == I.size*I.itemsize
    True
    >>> I = np.eye(2, dtype='G'); I.dtype
    dtype('complex192')
    >>> low, high = np.byte_bounds(I)
    >>> high - low == I.size*I.itemsize
    True

    �datar�strides�shapeNr?)Z__array_interface__r
�dtype�itemsize�size�zip)
�aZaiZa_dataZastridesZashapeZbytes_aZa_lowZa_highrHZstrider r r!r�s c
CsP|dkrt��j}|j}g}i}x�|��D]�}t||t�r*||}t|�}||��krn|d||}d}n|||<|}d}d�t	t
|j��}	t
|j�}
|�
||	|
|jj|g�q*Wd}d}d}
d}x�tt|��D]|}||}|t|d�kr�t|d�}|t|d�k�rt|d�}|
t|d�k�r8t|d�}
|dr�|t|d�7}q�Wt|�dk�r�td|�}td|�}td|
�}d	|d
|d
|d
f}t|ddt|�d
d�x�tt|��D]t}||}td|dd
|t|d�d|dd
|t|d�d
|dd
|t|d�d
|df��q�Wtd|�dS)a%
    Print the NumPy arrays in the given dictionary.

    If there is no dictionary passed in or `vardict` is None then returns
    NumPy arrays in the globals() dictionary (all NumPy arrays in the
    namespace).

    Parameters
    ----------
    vardict : dict, optional
        A dictionary possibly containing ndarrays.  Default is globals().

    Returns
    -------
    out : None
        Returns 'None'.

    Notes
    -----
    Prints out the name, shape, bytes and type of all of the ndarrays
    present in `vardict`.

    Examples
    --------
    >>> a = np.arange(10)
    >>> b = np.ones(20)
    >>> np.who()
    Name            Shape            Bytes            Type
    ===========================================================
    a               10               40               int32
    b               20               160              float64
    Upper bound on total bytes  =       200

    >>> d = {'x': np.arange(2.0), 'y': np.arange(3.0), 'txt': 'Some str',
    ... 'idx':5}
    >>> np.who(d)
    Name            Shape            Bytes            Type
    ===========================================================
    y               3                24               float64
    x               2                16               float64
    Upper bound on total bytes  =       40

    Nz (%s)rr?z x r-��
zName %s Shape %s Bytes %s Type� r,�=�z%s %s %s %s %s %s %s�z'
Upper bound on total bytes  =       %d)�sys�	_getframe�f_back�	f_globals�keys�
isinstancer�idr�map�strrH�nbytes�appendrIr$�range�len�int�max�print)�vardict�frameZsta�cacher$�varZidv�namestr�originalZshapestrZbytestrZmaxnameZmaxshapeZmaxbyteZ
totalbytes�k�valZsp1Zsp2Zsp3Zprvalr r r!r�s^,




  c
Cs�t|�}|}|}d}|�|�}xp|D]h}||kr6d}	n|}	|t|�t|	�}||kr�|dt|�}|dd|d|}q$||	|}q$W|S)Nz, �r?z,
rPr-)r`�split)
r$�	arguments�widthZ
firstwidthrj�newstrZsepstr�arglistZargumentZaddstrr r r!�_split_line\s

rrrcCs�t|t�t�g�}|j|ji}|jg}|jg}xvt|�dkr>P|�d�}xX|��D]L}t||t	j
�rR||j}||krR||j}|�|�|�|�|||<qRWq0W||fS)Nr)�
__import__�globals�localsr"r8r`rArXrY�types�
ModuleTyper^)�module�thedictZdictlistZ
totraverseZthisdict�x�modnameZmoddictr r r!�
_makenamedictts"




r|c
Csxd}d}dd�}t|dt|��}t|d|�}|j}|jj}td||d�td|j|d�td	||d�td
|j|d�td||jj	�|d�td||jj
�|d�td
|jj|d�tdt|j
jj�|f|d�tdd|d�|dk�rtd|tj|f|d�d}	nH|dk�r2td||f|d�tjdk}	ntd||f|d�tjdk}	td||	�|d�td|j|d�dS)aOProvide information about ndarray obj.

    Parameters
    ----------
    obj : ndarray
        Must be ndarray, not checked.
    output
        Where printed output goes.

    Notes
    -----
    Copied over from the numarray module prior to its removal.
    Adapted somewhat as only numpy is an option now.

    Called by info.

    rlcSs|S)Nr )rzr r r!rD�rEz_info.<locals>.<lambda>�	__class__r"zclass: )�filezshape: z	strides: z
itemsize: z	aligned: zcontiguous: z	fortran: zdata pointer: %s%szbyteorder: rP)�endr~)�|rQz%s%s%sF�>z%sbig%s�bigz
%slittle%s�littlez
byteswap: ztype: %sN)�getattr�typerGrI�	byteorderrcrHrJ�flagsZaligned�
contiguousZfortran�hex�ctypesZ_as_parameter_�valuerT)
�obj�output�extraZticZbp�cls�nmrGZendianZbyteswapr r r!�_info�s8


r��Lc	Csbddl}ddl}t|d�s$t|d�r,|j}nt|d�r<|j}|dkrPtt��nt|t�rjt||d��n�t|t	��rTt
dkr�t|�\a
ad}g}x�tD]�}ylt
||}	t
|	�|kr�td||d�n6|�t
|	��td	||d�t|	�td
||d�|d7}Wq�tk
�rYq�Xq�W|dk�r@td||d�ntd
||d��n
|�|��r�|j}
tt|��}t|
|�|k�r�t|
||�}n|
|}td|d|d�t|�|�|d��n�|�|��rP|j}
d}yZt|d��r2tt|jj��}|�d�}
t|
�dk�r2d|
d|
d<d�|
dd��}WnYnXt|
|�|k�rbt|
||�}n|
|}td|d|d�|�|�}|dk�r�t|d��r�t|�|j�|d�nt|�|�|d�|�|�}|gk�r^td|d�xd|D]\}|ddk�r�q�t||d�}|dk	�r2|�|�|��p*d�\}}td||f|d��q�W�nt j!ddk�r�t|t"j#��r�td|j$j|d�t|d�t|d��r|tt|j%j��}|�d�}
t|
�dk�r�d|
d|
d<d�|
dd��}nd}t|d��r�d|j&}
nd}
t|
|�|k�r"t|
||�}n|
|}td|d|d�|�|j%�}|dk	�rht|�|j%�|d�t|�|�|d�nt|�|�|d�n�|�'|��r@|j}
tt|j��}|�d�}
t|
�dk�r�d|
d|
d<d�|
dd��}nd}t|
|�|k�rt|
||�}n|
|}td|d|d�t|�|�|d�nt|d��r^t|�|�|d�dS)a�
    Get help information for a function, class, or module.

    Parameters
    ----------
    object : object or str, optional
        Input object or name to get information about. If `object` is a
        numpy object, its docstring is given. If it is a string, available
        modules are searched for matching objects.  If None, information
        about `info` itself is returned.
    maxwidth : int, optional
        Printing width.
    output : file like object, optional
        File like object that the output is written to, default is
        ``stdout``.  The object has to be opened in 'w' or 'a' mode.
    toplevel : str, optional
        Start search at this level.

    See Also
    --------
    source, lookfor

    Notes
    -----
    When used interactively with an object, ``np.info(obj)`` is equivalent
    to ``help(obj)`` on the Python prompt or ``obj?`` on the IPython
    prompt.

    Examples
    --------
    >>> np.info(np.polyval) # doctest: +SKIP
       polyval(p, x)
         Evaluate the polynomial p at x.
         ...

    When using a string for `object` it is possible to get multiple results.

    >>> np.info('fft') # doctest: +SKIP
         *** Found in numpy ***
    Core FFT routines
    ...
         *** Found in numpy.fft ***
     fft(a, n=None, axis=-1)
    ...
         *** Repeat reference found in numpy.fft.fftpack ***
         *** Total of 3 references found. ***

    rNZ_ppimport_importer�_ppimport_module�_ppimport_attr)r�z+
     *** Repeat reference found in %s *** )r~z     *** Found in %s ***�-r?zHelp for %s not found.z+
     *** Total of %d references found. ***rPr,z()r+z, �(z

Methods:
�_�Nonez  %s  --  %srSzInstance of class: r<r$z%sz<name>r7)(�pydoc�inspect�hasattrr�r�rrYrr�r\�	_namedictr|�	_dictlistrZrcr^�KeyError�
isfunctionr"rrr`rr�getdoc�isclassr+�__func__rmrZ
allmethodsr�ZsplitdocrT�version_inforvZInstanceTyper}r<r$�ismethod)�objectZmaxwidthr�Ztoplevelr�r�ZnumfoundZobjlistrhr�r$rn�argstrrqZdoc1�methods�methZthisobjZmethstr�otherr;r r r!r�s�3


















cCsRddl}y,td|�|�|d�t|�|�|d�Wntd|d�YnXdS)a�
    Print or write to a file the source code for a NumPy object.

    The source code is only returned for objects written in Python. Many
    functions and classes are defined in C and will therefore not return
    useful information.

    Parameters
    ----------
    object : numpy object
        Input object. This can be any object (function, class, module,
        ...).
    output : file object, optional
        If `output` not supplied then source code is printed to screen
        (sys.stdout).  File object must be created with either write 'w' or
        append 'a' modes.

    See Also
    --------
    lookfor, info

    Examples
    --------
    >>> np.source(np.interp)                        #doctest: +SKIP
    In file: /usr/lib/python2.6/dist-packages/numpy/lib/function_base.py
    def interp(x, xp, fp, left=None, right=None):
        """.... (full docstring printed)"""
        if isinstance(x, (float, int, number)):
            return compiled_interp([x], xp, fp, left, right).item()
        else:
            return compiled_interp(x, xp, fp, left, right)

    The source code is only returned for objects written in Python.

    >>> np.source(np.array)                         #doctest: +SKIP
    Not available for this object.

    rNzIn file: %s
)r~zNot available for this object.)r�rc�
getsourcefile�	getsource)r�r�r�r r r!r�s(z[a-z0-9_]+\(.*[,=].*\)TFc	s�ddl}t|||��g}t|�������s0dSxZ���D]N\}\}}	}
|	dkrRq:d}|��}x�D]}
|
|krdd}PqdW|r:|�|�q:Wddddd����fd	d
����fdd�}|j|d
�dd���}|dt	|�g}x�|ddd�D]�}�|\}}	}dd�|�
��d�D�}y(|d�
�}t�|��r@|d�
�}Wnt
k
�r\d}YnX|�d||f�q�W|�s�|�d�|dk	�r�|�d�|��n4t	|�dk�r�|��}|d�|��ntd�|��dS)a�
    Do a keyword search on docstrings.

    A list of of objects that matched the search is displayed,
    sorted by relevance. All given keywords need to be found in the
    docstring for it to be returned as a result, but the order does
    not matter.

    Parameters
    ----------
    what : str
        String containing words to look for.
    module : str or list, optional
        Name of module(s) whose docstrings to go through.
    import_modules : bool, optional
        Whether to import sub-modules in packages. Default is True.
    regenerate : bool, optional
        Whether to re-generate the docstring cache. Default is False.
    output : file-like, optional
        File-like object to write the output to. If omitted, use a pager.

    See Also
    --------
    source, info

    Notes
    -----
    Relevance is determined only roughly, by checking if the keywords occur
    in the function name, at the start of a docstring, etc.

    Examples
    --------
    >>> np.lookfor('binary representation')
    Search results for 'binary representation'
    ------------------------------------------
    numpy.binary_repr
        Return the binary representation of the input number as a string.
    numpy.core.setup_common.long_double_representation
        Given a binary dump as given by GNU od -b, look for long double
    numpy.base_repr
        Return a string representation of a number in the given base system.
    ...

    rN)rxr�TFi�i���)r#�classrxr�cs�d}d�|�����d�dd���|t�fdd��D��7}|t�fdd��D��7}|t��d7}|��|d�7}|��d	�d
7}|t|dd�7}|S)
Nrr,rScsg|]}|�krd�qS)��r )�.0�w)�	first_docr r!�
<listcomp>sz.lookfor.<locals>.relevance.<locals>.<listcomp>csg|]}|�krd�qS)�r )r�r�)r$r r!r�srRi����.rO�di����)	r�lower�striprm�sumr`�get�countrb)r$Zdocstr�kind�index�r)�kind_relevance�whats)r�r$r!�	relevances zlookfor.<locals>.relevancecs�|f�|��S)Nr )rM)rfr�r r!�relevance_valuesz lookfor.<locals>.relevance_value)�keyzSearch results for '%s'rPr����cSsg|]}|��r|���qSr )r�)r��liner r r!r�)szlookfor.<locals>.<listcomp>r,r?rlz	%s
    %szNothing found.rO)r��_lookfor_generate_cacher\r�rm�itemsr^�sortrr`r��_function_signature_re�search�
IndexError�writeZgetpagerrc)�whatrx�import_modules�
regenerater�r��foundr$�	docstringr�r��okr;r�r��sZ	help_textZixZdoclinesr�Zpagerr )rfr�r�r�r!r�sT.




c
Cs�ddl}tjddkr$ddlm}nddlm}|dkr<d}t|t�rtyt|�Wntk
rfiSXtj	|}n<t|t
�s�t|t�r�i}x|D]}|�t
|||��q�W|St|�tkr�|s�tt|�Si}|tt|�<i}d}|j|fg}	�x�|	�r�|	�d�\}
}t|�|k�rq�d|t|�<|d7}d}|�|��rLd	}y
|j}
Wntk
�rdd}
YnX|�rlt|d
��rlx�|jD]�}x�t�|�D]�}tj�||�}tj�||d�}tj�|��r�|�d��r�|dd
�}ntj�|��r�|}n�q�|dk�r�q�yDtj}tj}z$|�t_|�t_td|
|f�Wd|t_|t_XWntk
�r^�w�YnX�q�W�q�Wx�t |�D]�\}}y$t!|dd|
|f�}t!|dd�}Wn&t"k
�r�d|
|f}d}YnXd|k�r�|�r�d||f}|�#|
d��s
t|t$��rvn�qvn$|�|��s.|
dk�s.||
k�s.�qv|	�%d|
|f|f��qvWnP|�&|��r�d}x>t |�D] \}}|	�%d|
|f|f��qfWnt|d��r�d}y|�'|�}Wnt"k
�r�d}YnX|dk	r�|||f||
<q�W|S)a�
    Generate docstring cache for given module.

    Parameters
    ----------
    module : str, None, module
        Module for which to generate docstring cache
    import_modules : bool
        Whether to import sub-modules in packages.
    regenerate : bool
        Re-generate the docstring cache

    Returns
    -------
    cache : dict {obj_full_name: (docstring, kind, index), ...}
        Docstring cache for the module, either cached one (regenerate=False)
        or newly generated.

    rNrS)�StringIOrTr?r�rx�__path__z__init__.pyz.py���r+z%s.%sr"r=r�r�r<r#)(r�rTr��ior�rYr\rs�ImportError�modules�list�tupler9r�rZ�_lookfor_cachesr"rA�ismodule�__all__r6r�r�r�listdirrr�isfile�endswith�stdout�stderr�
BaseException�_getmembersr��	NameError�
startswithr	r^r�r�)rxr�r�r�r�rf�mod�seenr��stackr$�itemr�Z_all�pthZmod_pathZthis_py�init_pyZ	to_importZ
old_stdoutZ
old_stderr�n�vZ	item_name�mod_namer;r r r!r�As�







 
r�csFddl}y|���}Wn*tk
r@�fdd�t��D�}YnX|S)Nrcs$g|]}t�|�r|t�|�f�qSr )r�r�)r�rz)r�r r!r��sz_getmembers.<locals>.<listcomp>)r��
getmembers�	Exception�dir)r�r��membersr )r�r!r��sr�c@sxeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�SafeEvalz�
    Object to evaluate constant string expressions.

    This includes strings with lists, dicts and tuples using the abstract
    syntax tree created by ``compiler.parse``.

    .. deprecated:: 1.10.0

    See Also
    --------
    safe_eval

    cCstjdtdd�dS)Nz3SafeEval is deprecated in 1.10 and will be removed.r-)r.)r4r/r0)r*r r r!r+�szSafeEval.__init__cCs"|j}t|d|j|j�}||�S)N�visit)r}r�r"�default)r*�noder�r�r r r!r��szSafeEval.visitcCstd|j��dS)Nz Unsupported source construct: %s)�SyntaxErrorr})r*r�r r r!r��szSafeEval.defaultcCs|�|j�S)N)r��body)r*r�r r r!�visitExpressionszSafeEval.visitExpressioncCs|jS)N)r�)r*r�r r r!�visitNumszSafeEval.visitNumcCs|jS)N)r�)r*r�r r r!�visitStrszSafeEval.visitStrcCs|jS)N)r�)r*r�r r r!�
visitBytes
szSafeEval.visitBytescs t�fdd�t|j|j�D��S)Ncs$g|]\}}��|���|�f�qSr )r�)r�rjr�)r*r r!r�sz&SafeEval.visitDict.<locals>.<listcomp>)�dictrLrX�values)r*r��kwr )r*r!�	visitDict
szSafeEval.visitDictcst�fdd�|jD��S)Ncsg|]}��|��qSr )r�)r��i)r*r r!r�sz'SafeEval.visitTuple.<locals>.<listcomp>)r��elts)r*r�r )r*r!�
visitTupleszSafeEval.visitTuplecs�fdd�|jD�S)Ncsg|]}��|��qSr )r�)r�r)r*r r!r�sz&SafeEval.visitList.<locals>.<listcomp>)r)r*r�r )r*r!�	visitListszSafeEval.visitListcCsRddl}t|j|j�r$|�|j�
St|j|j�r@|�|j�Std|j��dS)NrzUnknown unary op: %r)�astrY�op�UAddr��operand�USubr�)r*r�rr r r!�visitUnaryOpszSafeEval.visitUnaryOpcCs<|jdkrdS|jdkrdS|jdkr*dStd|j��dS)N�FalseF�TrueTr�zUnknown name: %s)rZr�)r*r�r r r!�	visitName s


zSafeEval.visitNamecCs|jS)N)r�)r*r�r r r!�visitNameConstant*szSafeEval.visitNameConstantN)r"r=r>r7r+r�r�r�r�r�r�rrrr
r
rr r r r!r��s
	
r�cCsddl}|�|�S)a�
    Protected string evaluation.

    Evaluate a string containing a Python literal expression without
    allowing the execution of arbitrary non-literal code.

    Parameters
    ----------
    source : str
        The string to evaluate.

    Returns
    -------
    obj : object
       The result of evaluating `source`.

    Raises
    ------
    SyntaxError
        If the code has invalid Python syntax, or if it contains
        non-literal code.

    Examples
    --------
    >>> np.safe_eval('1')
    1
    >>> np.safe_eval('[1, 2, 3]')
    [1, 2, 3]
    >>> np.safe_eval('{"foo": ("bar", 10.0)}')
    {'foo': ('bar', 10.0)}

    >>> np.safe_eval('import os')
    Traceback (most recent call last):
      ...
    SyntaxError: invalid syntax

    >>> np.safe_eval('open("/home/user/.ssh/id_dsa").read()')
    Traceback (most recent call last):
      ...
    SyntaxError: Unsupported source construct: compiler.ast.CallFunc

    rN)r�literal_eval)rrr r r!r.s,cCs�|jdkr|St�|||j�}t�|d�}tj�|�rB|�d�}|jdkr�|dkr�tj	dt
dd�|dk	r�|j�tj
�|d	<|}q�|j�tj
�}n>t�|���dkr�tj	d
dt�|���t
dd�tj
||<|S)aj
    Utility function to check median result from data for NaN values at the end
    and return NaN in that case. Input result can also be a MaskedArray.

    Parameters
    ----------
    data : array
        Input data to median function
    result : Array or MaskedArray
        Result of median function
    axis : {int, sequence of int, None}, optional
        Axis or axes along which the median was computed.
    out : ndarray, optional
        Output array in which to place the result.
    Returns
    -------
    median : scalar or ndarray
        Median or NaN in axes which contained NaN in the input.
    r).r�FTz#Invalid value encountered in medianrS)r.N.z'Invalid value encountered in median forz %d results)rK�npZrollaxis�ndim�isnan�maZ
isMaskedArrayZfilledr4r/�RuntimeWarningrIr��nanZ
count_nonzeroZravel)rF�resultZaxis�outr�r r r!�_median_nancheck_s(





r)N)r)NTFN)1�
__future__rrrrrTrv�rer4Znumpy.core.numerictypesrrrrrr	r
rr�numpy.compatrrr�rr%r�r&r
rrrrrr�r�r|r�r�rrr��compile�Ir�rr�r�r�rrr r r r!�<module>sJ

==9
i
3N3

I1

Youez - 2016 - github.com/yon3zu
LinuXploit