B
     \                 @   s   d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZ d dlmZmZ ddlmZ eddd Zedejd	d
 Zedejejdd ZdS )    )typeof_impltype_callablelower_builtin
lower_castmodelsregister_modelboxunboxreflectNativeValuemake_attribute_wrapper)typescgutils   )impl_ret_borrowedZ__array_wrap__c             C   s   dd }|S )Nc             S   s&   t | tjr"| j|j|j|jdS d S )N)dtypendimlayout)
isinstancer   SmartArrayTypecopyr   r   r   )Z
input_typeresult r   7lib/python3.7/site-packages/numba/targets/smartarray.pytyper   s    ztype_array_wrap.<locals>.typerr   )contextr   r   r   r   type_array_wrap
   s    r   Z	__array__c             C   s*   |j | \}\}| j|||d}|dS )N)refdata)argsmake_helperZ_get_ptr_by_name)r   buildersigr   Zargtypeargvalr   r   r   array_as_array   s    r%   c             C   s,   |  ||j}|d |_t| ||j| S )Nr   )r    Zreturn_typer   r   Z	_getvalue)r   r!   r"   r   destr   r   r   array_wrap_array   s    
r'   N)Znumba.extendingr   r   r   r   r   r   r   r	   r
   r   r   Znumbar   r   Zimputilsr   r   r   r%   ZArrayr'   r   r   r   r   <module>   s
   4
