3
���h@# � @ s� d Z ddlZddlmZ ddgZG dd� d�Zdd � Zddd
�Zdd� Z ddd�Z
ee
dd�ddd��Zdd� Zdd�dd�Z
ee
dd�d
d�dd��ZdS )z�
Utilities that manipulate strides to achieve desirable effects.
An explanation of strides can be found in the "ndarray.rst" file in the
NumPy reference guide.
� N)�array_function_dispatch�broadcast_to�broadcast_arraysc @ s e Zd ZdZddd�ZdS )�
DummyArrayz�Dummy object that just exists to hang __array_interface__ dictionaries
and possibly keep alive a reference to a base array.
Nc C s || _ || _d S )N)�__array_interface__�base)�self� interfacer � r
�8/tmp/pip-build-5_djhm0z/numpy/numpy/lib/stride_tricks.py�__init__ s zDummyArray.__init__)N)�__name__�
__module__�__qualname__�__doc__r r
r
r
r r s r c C s4 t | �t |�k r0|jt | �d�}|jr0|j| � |S )N)�type)r �viewZ__array_finalize__)Zoriginal_arrayZ new_arrayr
r
r �_maybe_view_as_subclass s
r FTc C s� t j| d|d�} t| j�}|dk r.t|�|d< |