B
      ›\à  ã               @   s4   d dl mZmZ d dlZG dd„ deƒZdd„ ZdS )é    )Úprint_functionÚabsolute_importNc                   s   e Zd Zd‡ fdd„	Z‡  ZS )ÚKernelRuntimeErrorNc                s>   || _ || _|| _d}|| j | j| jf }tt| ƒ |¡ d S )Nz1An exception was raised in thread=%s block=%s
	%s)ÚtidÚctaidÚmsgÚsuperr   Ú__init__)Úselfr   r   r   Út)Ú	__class__© ú0lib/python3.7/site-packages/numba/cuda/errors.pyr	      s    zKernelRuntimeError.__init__)NN)Ú__name__Ú
__module__Ú__qualname__r	   Ú__classcell__r   r   )r   r   r      s   r   c             C   s$   dd„ }|| dƒ} ||dƒ}| |fS )zE
    Normalize and validate the user-supplied kernel dimensions.
    c             S   s„   t | ttfƒs| g} nt| ƒ} t| ƒdkr:td|| f ƒ‚x(| D ] }t |tjƒs@td|| f ƒ‚q@W xt| ƒdk r~|  d¡ qfW | S )Né   z3%s must be a sequence of 1, 2 or 3 integers, got %rz)%s must be a sequence of integers, got %ré   )	Ú
isinstanceÚtupleÚlistÚlenÚ
ValueErrorÚnumbersZIntegralÚ	TypeErrorÚappend)ZdimÚnameÚvr   r   r   Ú	check_dim   s    
z.normalize_kernel_dimensions.<locals>.check_dimÚgriddimÚblockdimr   )r    r!   r   r   r   r   Únormalize_kernel_dimensions   s    

r"   )Z
__future__r   r   r   ÚRuntimeErrorr   r"   r   r   r   r   Ú<module>   s   