
    Ǆg~                     T    d Z ddlmZ ddlmZmZ ddlmZ g dZ ed      d        Z	y)	z
Miscellaneous utils.
    )asarray)normalize_axis_tuplenormalize_axis_index)
set_module)byte_boundsr   r   znumpy.lib.array_utilsc                 &   | j                   }|d   d   }|d   }|d   }t        |       j                  j                  }|x}}||| j                  |z  z  }||fS t        ||      D ]!  \  }}	|	dk  r||dz
  |	z  z  }||dz
  |	z  z  }# ||z  }||fS )aC  
    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.lib.array_utils.byte_bounds(I)
    >>> high - low == I.size*I.itemsize
    True
    >>> I = np.eye(2); I.dtype
    dtype('float64')
    >>> low, high = np.lib.array_utils.byte_bounds(I)
    >>> high - low == I.size*I.itemsize
    True

    datar   stridesshape   )__array_interface__r   dtypeitemsizesizezip)
aaia_dataastridesashapebytes_aa_lowa_highr   strides
             c/home/mcse/projects/flask_80/flask-venv/lib/python3.12/site-packages/numpy/lib/_array_utils_impl.pyr   r      s    B 
		BZ]F)}H[Faj''GEF!&&7"" &= !2 	+ME6z%'6))57F**		+
 	'&=    N)
__doc__numpy._corer   numpy._core.numericr   r   numpy._utilsr   __all__r    r   r   <module>r#      s4      J #
I #$1 %1r   