
Xc        	   @` s  d  Z  d d l m Z m Z m Z d d d g Z d Z d d l Z d d l m	 Z	 d	 d
 l
 m Z d	 d l m Z m Z m Z m Z m Z m Z d	 d l m Z m Z m Z m Z m Z d	 d l m Z d	 d l m Z e j d d k re j Z  e j d	 Z! n e j" Z  e j" d	 Z! d   Z# d a$ d a% d a& e' a( d a) d a* d a+ d a- d d d d d d d d d  Z. d   Z/ d   Z0 d   Z1 d   Z2 d   Z3 d   Z4 d d d d  Z5 d d d d d e6 d d   Z7 d!   Z8 d"   Z9 d# e: f d$     YZ; d%   Z< d& e: f d'     YZ= d( e: f d)     YZ> d* e: f d+     YZ? d, e: f d-     YZ@ d. e: f d/     YZA d0 e: f d1     YZB d2 e: f d3     YZC d4 e: f d5     YZD d S(6   sX   Array printing function

$Id: arrayprint.py,v 1.9 2005/09/13 13:58:44 teoliphant Exp $

i    (   t   divisiont   absolute_importt   print_functiont   array2stringt   set_printoptionst   get_printoptionst   restructuredtextN(   t   reducei   (   t   numerictypes(   t   maximumt   minimumt   absolutet	   not_equalt   isnant   isinf(   t   arrayt   format_longfloatt   datetime_as_stringt   datetime_datat   dtype(   t   ravel(   t   asarrayi   c         C` s   |  | S(   N(    (   t   xt   y(    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyt   product"   s    i  i   iK   t   nant   infc         C` s   | d k	 r | a n  | d k	 r* | a n  | d k	 r? | a n  |  d k	 rT |  a n  | d k	 rk | a n  | d k	 r | a n  | d k	 r | a n  | a d S(   sv  
    Set printing options.

    These options determine the way floating point numbers, arrays and
    other NumPy objects are displayed.

    Parameters
    ----------
    precision : int, optional
        Number of digits of precision for floating point output (default 8).
    threshold : int, optional
        Total number of array elements which trigger summarization
        rather than full repr (default 1000).
    edgeitems : int, optional
        Number of array items in summary at beginning and end of
        each dimension (default 3).
    linewidth : int, optional
        The number of characters per line for the purpose of inserting
        line breaks (default 75).
    suppress : bool, optional
        Whether or not suppress printing of small floating point values
        using scientific notation (default False).
    nanstr : str, optional
        String representation of floating point not-a-number (default nan).
    infstr : str, optional
        String representation of floating point infinity (default inf).
    formatter : dict of callables, optional
        If not None, the keys should indicate the type(s) that the respective
        formatting function applies to.  Callables should return a string.
        Types that are not specified (by their corresponding keys) are handled
        by the default formatters.  Individual types for which a formatter
        can be set are::

            - 'bool'
            - 'int'
            - 'timedelta' : a `numpy.timedelta64`
            - 'datetime' : a `numpy.datetime64`
            - 'float'
            - 'longfloat' : 128-bit floats
            - 'complexfloat'
            - 'longcomplexfloat' : composed of two 128-bit floats
            - 'numpy_str' : types `numpy.string_` and `numpy.unicode_`
            - 'str' : all other strings

        Other keys that can be used to set a group of types at once are::

            - 'all' : sets all types
            - 'int_kind' : sets 'int'
            - 'float_kind' : sets 'float' and 'longfloat'
            - 'complex_kind' : sets 'complexfloat' and 'longcomplexfloat'
            - 'str_kind' : sets 'str' and 'numpystr'

    See Also
    --------
    get_printoptions, set_string_function, array2string

    Notes
    -----
    `formatter` is always reset with a call to `set_printoptions`.

    Examples
    --------
    Floating point precision can be set:

    >>> np.set_printoptions(precision=4)
    >>> print(np.array([1.123456789]))
    [ 1.1235]

    Long arrays can be summarised:

    >>> np.set_printoptions(threshold=5)
    >>> print(np.arange(10))
    [0 1 2 ..., 7 8 9]

    Small results can be suppressed:

    >>> eps = np.finfo(float).eps
    >>> x = np.arange(4.)
    >>> x**2 - (x + eps)**2
    array([ -4.9304e-32,  -4.4409e-16,   0.0000e+00,   0.0000e+00])
    >>> np.set_printoptions(suppress=True)
    >>> x**2 - (x + eps)**2
    array([-0., -0.,  0.,  0.])

    A custom formatter can be used to display array elements as desired:

    >>> np.set_printoptions(formatter={'all':lambda x: 'int: '+str(-x)})
    >>> x = np.arange(3)
    >>> x
    array([int: 0, int: -1, int: -2])
    >>> np.set_printoptions()  # formatter gets reset
    >>> x
    array([0, 1, 2])

    To put back the default options, you can use:

    >>> np.set_printoptions(edgeitems=3,infstr='inf',
    ... linewidth=75, nanstr='nan', precision=8,
    ... suppress=False, threshold=1000, formatter=None)
    N(	   t   Nonet   _line_widtht   _summaryThresholdt   _summaryEdgeItemst   _float_output_precisiont   _float_output_suppress_smallt   _nan_strt   _inf_strt
   _formatter(   t	   precisiont	   thresholdt	   edgeitemst	   linewidtht   suppresst   nanstrt   infstrt	   formatter(    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR   0   s    m						c          C` s=   t  d t d t d t d t d t d t d t d t  }  |  S(	   s	  
    Return the current print options.

    Returns
    -------
    print_opts : dict
        Dictionary of current print options with keys

          - precision : int
          - threshold : int
          - edgeitems : int
          - linewidth : int
          - suppress : bool
          - nanstr : str
          - infstr : str
          - formatter : dict of callables

        For a full description of these options, see `set_printoptions`.

    See Also
    --------
    set_printoptions, set_string_function

    R$   R%   R&   R'   R(   R)   R*   R+   (	   t   dictR   R   R   R   R    R!   R"   R#   (   t   d(    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR      s    	c         C` sA  d d l  m } |  j d k r_ t |   d t k rV | j |  t  |  t f  } q=|  } n t |   d t k r g  t t t |   t   D] } t |  |  ^ q } | j	 g  t t t |   t  d d  D] } t |  |  ^ q  n2 g  t d t |    D] } t |  |  ^ q} | j t
 |   } | S(   Ni   (   t   numerici   i    i(   t    R.   t   ndimt   lenR   t   concatenatet   ranget   mint   _leading_trailingt   extendt   tuple(   t   at   _nct   bt   it   l(    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR5      s    	2=2c         C` s   |  r
 d Sd Sd  S(   Ns    Truet   False(    (   R   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyt   _boolFormatter   s    c         C` s
   t  |   S(   N(   t   repr(   R   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyt   repr_format   s    c         C` s  i
 t  d 6t |   d 6t |  | |  d 6t |  d 6t |  | |  d 6t |  d 6t |   d 6t |   d 6t d	 6t	 d
 6} | d  k	 rg  | j   D] } | | d  k	 r | ^ q } d | k r x% | j   D] } | d | | <q Wn  d | k r"x" d g D] } | d | | <qWn  d | k rVx% d d g D] } | d | | <q;Wn  d | k rx% d d g D] } | d | | <qoWn  d | k rx% d	 d
 g D] } | d | | <qWn  x4 | j   D]# } | | k r| | | | <qqWn  | S(   Nt   boolt   intt   floatt	   longfloatt   complexfloatt   longcomplexfloatt   datetimet	   timedeltat   numpystrt   strt   allt   int_kindt
   float_kindt   complex_kindt   str_kind(   R>   t   IntegerFormatt   FloatFormatt   LongFloatFormatt   ComplexFormatt   LongComplexFormatt   DatetimeFormatt   TimedeltaFormatR@   RJ   R   t   keys(   t   dataR$   t   suppress_smallR+   t
   formatdictt   kt   fkeyst   key(    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyt   _get_formatdict   s@    
	

/c         C` s  |  j  } | j d
 k	 r g  } xe | j D]Z } |  | } t t |  | | |  } | | j d k ru t |  } n  | j |  q( Wt	 |  S| j
 }	 t |  | | |  }
 t |	 t j  r |
 d St |	 t j  r t |	 t j  r |
 d S|
 d Sn t |	 t j  r6t |	 t j  r+|
 d S|
 d Sn| t |	 t j  rmt |	 t j  rb|
 d S|
 d SnE t |	 t j t j f  r|
 d St |	 t j  r|
 d	 S|
 d Sd
 S(   s;   
    find the right formatting function for the dtype_
    RA   RH   RB   RD   RC   RF   RE   RI   RG   N(    (   R   t   fieldsR   t   namest   _get_format_functionR   t   shapet   SubArrayFormatt   appendt   StructureFormatt   typeR^   t
   issubclasst   _ntt   bool_t   integert   timedelta64t   floatingRD   t   complexfloatingt
   clongfloatt   unicode_t   string_t
   datetime64(   RX   R$   RY   R+   t   dtype_t   format_functionst
   field_namet   field_valuest   format_functiont   dtypeobjRZ   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyRa     s@    	

	t    R/   c      	   C` s   |  j  t k r$ d } t |   } n d } t t |    } t | | | |  }	 d }
 |
 d t |  7}
 t |  |	 t |  j  | |
 | t	 |  d  } | S(   Ns   ..., R/   Rx   i(
   t   sizeR   R5   R   R   Ra   R1   t   _formatArrayRb   R   (   R8   t   max_line_widthR$   RY   t	   separatort   prefixR+   t   summary_insertRX   Rv   t   next_line_prefixt   lst(    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyt   _array2string;  s    	c      	   C` s  | d k r t } n  | d k r* t } n  | d k r? t } n  | d k rT t } n  |  j d k r |  j   } |  j j d k	 r t	 | g d |  j }	 t
 |	 | | |  }
 |
 |	 d  } q| |  } nB t t |  j  d k r d } n! t |  | | | | | d | } | S(   s  
    Return a string representation of an array.

    Parameters
    ----------
    a : ndarray
        Input array.
    max_line_width : int, optional
        The maximum number of columns the string should span. Newline
        characters splits the string appropriately after array elements.
    precision : int, optional
        Floating point precision. Default is the current printing
        precision (usually 8), which can be altered using `set_printoptions`.
    suppress_small : bool, optional
        Represent very small numbers as zero. A number is "very small" if it
        is smaller than the current printing precision.
    separator : str, optional
        Inserted between elements.
    prefix : str, optional
        An array is typically printed as::

          'prefix(' + array2string(a) + ')'

        The length of the prefix string is used to align the
        output correctly.
    style : function, optional
        A function that accepts an ndarray and returns a string.  Used only
        when the shape of `a` is equal to ``()``, i.e. for 0-D arrays.
    formatter : dict of callables, optional
        If not None, the keys should indicate the type(s) that the respective
        formatting function applies to.  Callables should return a string.
        Types that are not specified (by their corresponding keys) are handled
        by the default formatters.  Individual types for which a formatter
        can be set are::

            - 'bool'
            - 'int'
            - 'timedelta' : a `numpy.timedelta64`
            - 'datetime' : a `numpy.datetime64`
            - 'float'
            - 'longfloat' : 128-bit floats
            - 'complexfloat'
            - 'longcomplexfloat' : composed of two 128-bit floats
            - 'numpy_str' : types `numpy.string_` and `numpy.unicode_`
            - 'str' : all other strings

        Other keys that can be used to set a group of types at once are::

            - 'all' : sets all types
            - 'int_kind' : sets 'int'
            - 'float_kind' : sets 'float' and 'longfloat'
            - 'complex_kind' : sets 'complexfloat' and 'longcomplexfloat'
            - 'str_kind' : sets 'str' and 'numpystr'

    Returns
    -------
    array_str : str
        String representation of the array.

    Raises
    ------
    TypeError
        if a callable in `formatter` does not return a string.

    See Also
    --------
    array_str, array_repr, set_printoptions, get_printoptions

    Notes
    -----
    If a formatter is specified for a certain type, the `precision` keyword is
    ignored for that type.

    This is a very flexible function; `array_repr` and `array_str` are using
    `array2string` internally so keywords with the same name should work
    identically in all three functions.

    Examples
    --------
    >>> x = np.array([1e-16,1,2,3])
    >>> print(np.array2string(x, precision=2, separator=',',
    ...                       suppress_small=True))
    [ 0., 1., 2., 3.]

    >>> x  = np.arange(3.)
    >>> np.array2string(x, formatter={'float_kind':lambda x: "%.2f" % x})
    '[0.00 1.00 2.00]'

    >>> x  = np.arange(3)
    >>> np.array2string(x, formatter={'int':lambda x: hex(x)})
    '[0x0L 0x1L 0x2L]'

    R   i    s   []R+   N(    (   R   R   R   R    R#   Rb   t   itemR   R_   R   Ra   R   R   R   (   R8   R{   R$   RY   R|   R}   t   styleR+   R   t   arrRv   R   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR   T  s*    a					c         C` sY   t  | j    t  | j    | k rE |  | j   d 7}  | } n  | | 7} |  | f S(   Ns   
(   R1   t   rstrip(   t   st   linet   wordt   max_line_lenR   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyt   _extendLine  s
    (	
c         C` s?  | d k r t  d   n  | rL d | t |   k  rL | } | }	 | }
 n d } t |   }	 d }
 | d k rd } | } xF t |  D]8 } | |  |  | } t | | | | |  \ } } q W|
 r t | | |
 | |  \ } } n  xM t |	 d d  D]9 } | |  |  | } t | | | | |  \ } } q W| |  d  } t | | | | |  \ } } | | d 7} d | t |  } nd } | j   } x t |  D]{ } | d k r| | 7} n  | t |  | | | d | d	 | | | |  7} | j   | j   d
 t | d d  } qW|
 rH| | |
 d
 7} n  x t |	 d d  D] } | ss| |	 k r| | 7} n  | t |  | | | d | d	 | | | |  7} | j   | j   d
 t | d d  } q[W| s|	 d k r | | 7} n  | t |  d | | d | d	 | | | |  j   d 7} | S(   sg   formatArray is designed for two modes of operation:

    1. Full output

    2. Summarized output

    i    s   rank shouldn't be zero.i   R/   i   is   ]
t   [Rx   s   
(   t
   ValueErrorR1   R3   R   R   Rz   t   max(   R8   Rv   t   rankR   R   R|   t
   edge_itemsR~   t   leading_itemst   trailing_itemst   summary_insert1R   R   R;   R   t   sep(    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyRz     s`    		"!"
/
/RQ   c           B` s)   e  Z e d   Z d   Z e d  Z RS(   c         C` se   | |  _  | |  _ | |  _ t |  _ t |  _ d |  _ y |  j |  Wn t t	 f k
 r` n Xd  S(   Ni    (
   R$   RY   t   signR=   t
   exp_formatt   large_exponentt   max_str_lent
   fillFormatt	   TypeErrort   NotImplementedError(   t   selfRX   R$   RY   R   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyt   __init__  s    						c         C` s  d d l  m } | j d d   t |  t |  B} t | d  | @} t | j |   } t |  d k r d } d } nh t	 j
 |  } t j
 |  } | d k r t |  _ n  |  j r | d k  s | | d	 k r t |  _ n  Wd  QX|  j rd | k  od
 k  n p| d k |  _ d |  j |  _ |  j rP|  j d 7_ n  |  j rbd } n d } | d |  j |  j f } n d |  j f } t |  rt g  | D] }	 t |	 |  j |  ^ q }
 n d }
 t |  j |
  }
 t t t |    |
 d |  _ | j |  rGt |  j t t  t t  d  |  _ n  |  j rYd } n d } | d |  j |
 f } d |  j f |  _ | |  _ d  S(   Ni   (   R.   RK   t   ignorei    g        g    חAg-C6?g     @@g>N}a+g}Ô%ITi   s   %+t   %s   %d.%des   %%.%dfi   s   %#+s   %#s   %d.%dfs   %%%ds(   R/   R.   t   errstateR   R   R   R   t   compressR1   R	   R   R
   t   TrueR   RY   R   R$   R   R   R   t   _digitsR4   RJ   RB   t   anyR!   R"   t   special_fmtt   format(   R   RX   R9   t   specialt   validt   non_zerot   max_valt   min_valR   R   R$   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR   -  sR    		+			+#				c         C` s  d d l  m } | j d d   t |  r[ |  j rJ |  j d t f S|  j t f SnY t |  r | d k r |  j r |  j d t f S|  j t f Sq |  j d t f Sn  Wd  QX|  j	 | } |  j
 r| d } | d k s | d k r|| d d	 !d
 | d	 } q|nk |  j rF| d d
 k r|d | d  | d	 } q|n6 | r|| j d
  } | d t |  t |  } n  | S(   Ni   (   R.   t   invalidR   t   +i    t   -iit   0Rx   (   R/   R.   R   R   R   R   R!   R   R"   R   R   R   R   R1   (   R   R   t   strip_zerosR9   R   t   expsignt   z(    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyt   __call__`  s0    			
	!(   t   __name__t
   __module__R=   R   R   R   R   (    (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyRQ     s   	3c         C` sE   | d k r= | |  } | j  d  } | t |  t |  Sd Sd  S(   Ni    R   (   R   R1   (   R   R$   R   R   R   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR     s
    
RP   c           B` s   e  Z d    Z d   Z RS(   c         C` s   yT t  t t t j |    t t t j |     } d t |  d |  _ Wn' t t f k
 rm n t	 k
 r} n Xd  S(   NR   R-   (
   R   R1   RJ   R	   R   R
   R   R   R   R   (   R   RX   R   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR     s    c         C` s3   t  | k  o t k  n r' |  j | Sd | Sd  S(   Ns   %s(   t   _MININTt   _MAXINTR   (   R   R   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR     s    (   R   R   R   R   (    (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyRP     s   	RR   c           B` s   e  Z e d   Z d   Z RS(   c         C` s   | |  _  | |  _ d  S(   N(   R$   R   (   R   R$   R   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR     s    	c         C` s   t  |  r( |  j r d t Sd t Sn t |  rg | d k r\ |  j rQ d t Sd t Sq d t SnP | d k r |  j r d t | |  j  Sd t | |  j  Sn t | |  j  Sd  S(   NR   Rx   i    R   (   R   R   R!   R   R"   R   R$   (   R   R   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR     s    			(   R   R   R=   R   R   (    (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyRR     s   RT   c           B` s   e  Z d    Z d   Z RS(   c         C` s(   t  |  |  _ t  | d t |  _ d  S(   NR   (   RR   t   real_formatR   t   imag_format(   R   R$   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR     s    c         C` s0   |  j  | j  } |  j | j  } | | d S(   Nt   j(   R   t   realR   t   imag(   R   R   t   rR;   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR     s    (   R   R   R   R   (    (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyRT     s   	RS   c           B` s   e  Z d    Z d   Z RS(   c         C` s:   t  | j | |  |  _ t  | j | | d t |  _ d  S(   NR   (   RQ   R   R   R   R   R   (   R   R   R$   RY   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR     s    c         C` s   |  j  | j d t } |  j | j d t } |  j j sp | j d  } | d d t |  t |  } n
 | d } | | S(   NR   R   R   Rx   (   R   R   R=   R   R   R   R   R1   (   R   R   R   R;   R   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR     s    %
(   R   R   R   R   (    (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyRS     s   	RU   c           B` s#   e  Z d d d  d  Z d   Z RS(   t	   same_kindc         C` sq   | d  k r= | j j d k r4 t | j  d } q= d } n  | d  k rR d } n  | |  _ | |  _ | |  _ d  S(   Nt   Mi    R   t   naive(   R   R   t   kindR   t   timezonet   unitt   casting(   R   R   R   R   R   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR     s    				c      	   C` s)   d t  | d |  j d |  j d |  j S(   Ns   '%s'R   R   R   (   R   R   R   R   (   R   R   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR     s    		N(   R   R   R   R   R   (    (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyRU     s   RV   c           B` s   e  Z d    Z d   Z RS(   c         C` s  | j  j d k rt d g d | j  d } t  | j  j d  } | j |  } | t | | j |   } t |  d k r t t t t	 j
 |    t t t j
 |     } n d } t |  t |  k  r t | d  } n  d t |  d |  _ d	 j |  |  _ n  d  S(
   Nt   mt   NaTR   i    t   i8i   R   R-   s   'NaT'(   R   R   R   t	   byteordert   viewR   R1   R   RJ   R	   R   R
   R   t   rjustt   _nat(   R   RX   t	   nat_valuet	   int_dtypet   int_viewt   vR   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR     s    !c         C` sA   | d j  d  | j  d  k r) |  j S|  j | j d  Sd  S(   Ni   R   (   R   R   R   t   astype(   R   R   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR     s    "(   R   R   R   R   (    (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyRV     s   	Rc   c           B` s   e  Z d    Z d   Z RS(   c         C` s   | |  _  d  S(   N(   Rv   (   R   Rv   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR   
  s    c         ` sY   | j  d k r4 d d j   f d   | D  d Sd d j   f d   | D  d S(   Ni   R   s   , c         3` s   |  ] }   j  |  Vq d  S(   N(   Rv   (   t   .0R8   (   R   (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pys	   <genexpr>  s    t   ]c         3` s   |  ] }   j  |  Vq d  S(   N(   R   (   R   R8   (   R   (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pys	   <genexpr>  s    (   R0   t   join(   R   R   (    (   R   s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR     s    %(   R   R   R   R   (    (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyRc   	  s   	Re   c           B` s   e  Z d    Z d   Z RS(   c         C` s   | |  _  t |  |  _ d  S(   N(   Rs   R1   t
   num_fields(   R   Rs   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR     s    	c         C` sb   d } x4 t  | |  j  D]  \ } } | | |  d 7} q Wd |  j k  rV | d  n | d  d S(   Nt   (s   , i   iit   )(   t   zipRs   R   (   R   R   R   t   fieldRv   (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyR     s    (   R   R   R   R   (    (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyRe     s   	(E   t   __doc__t
   __future__R    R   R   t   __all__t   __docformat__t   syst	   functoolsR   R/   R   Rh   t   umathR	   R
   R   R   R   R   t
   multiarrayR   R   R   R   R   t   fromnumericR   R.   R   t   version_infot   maxsizeR   R   t   maxintR   R   R   R   R=   R    R   R!   R"   R   R#   R   R   R5   R>   R@   R^   Ra   R   R?   R   R   Rz   t   objectRQ   R   RP   RR   RT   RS   RU   RV   Rc   Re   (    (    (    s4   /tmp/pip-build-X4mzal/numpy/numpy/core/arrayprint.pyt   <module>   sf   	.(				z	#				$	*	}		Cd		
