ó
< Õ[c           @   sf  d  d d d d d d d d d	 d
 d d d d d d d d d d d d d g Z  d d l Z d d l Z d d l Z d d l m Z d d l m	 Z	 y d d l
 Z
 Wn e k
 r» e a n Xe a t oÔ e e
 d ƒ Z t sì e Z d Z nK e e
 d ƒ re Z e
 j j j Z n$ e e
 j j d d ƒ Z e d k	 Z e d e d  „ Z d! „  Z e d" „ Z d# „  Z d$ „  Z d% „  Z d& „  Z  d' „  Z! x< dP D]( Z" e e e" ƒ r’e e e" ƒ Z# Pq’q’We sÊt$ ‚ x< dQ D]( Z% e e e% ƒ rÑe e e% ƒ Z& PqÑqÑWe s	t$ ‚ d. „  Z' d/ „  Z( d0 „  Z) d1 e* f d2 „  ƒ  YZ+ d3 „  Z, d4 e* f d5 „  ƒ  YZ- d6 „  Z. d7 „  Z/ g  d8 „ Z0 d9 „  Z1 d e* f d: „  ƒ  YZ2 d; „  Z3 d< „  Z4 e j5 e4 d= e6 g ƒZ7 d> „  Z8 d? „  Z9 d@ „  Z: dA „  Z; dB „  Z< dC „  Z= dD „  Z> dE „  Z? dF „  Z@ dG „  ZA dH „  ZB dI „  ZC dJ „  ZD dK „  ZE dL „  ZF dM „  ZG dN „  ZH dO „  ZI d S(R   t   atleast_2d_column_defaultt   uniqueify_listt   widest_floatt   widest_complext   wide_dtype_fort   wident   repr_pretty_delegatet   repr_pretty_implt   SortAnythingKeyt   safe_scalar_isnant
   safe_isnant   iterablet   have_pandast   have_pandas_categoricalt   have_pandas_categorical_dtypet   pandas_Categorical_from_codest   pandas_Categorical_categoriest   pandas_Categorical_codest    safe_is_pandas_categorical_dtypet   safe_is_pandas_categoricalt   safe_issubdtypet   no_picklingt   assert_no_picklingt   safe_string_eqiÿÿÿÿN(   t	   cStringIOi   (   t   optional_dep_okt   Categoricalt   apit   is_categorical_dtypec         C   s„   t  re t |  t j t j f ƒ re i  } t |  d ƒ rF |  j | d <n  |  j |  d | d | | Sn  t j	 |  d | d | d | ƒS(   Nt   namet   copyt   dtypet   subok(
   R   t
   isinstancet   pandast   Seriest	   DataFramet   hasattrR   t	   __class__t   npt   array(   t   aR   R   R    t
   extra_args(    (    s)   lib/python2.7/site-packages/patsy/util.pyt   asarray_or_pandas<   s    c       
   C   sw  d d  l  }  t t d d d g ƒ ƒ t j k s6 t ‚ |  j ƒ  ž } |  j d d t ƒ t t t j	 d d d g g ƒ ƒ ƒ t j k sŽ t ‚ t t t j	 d d d g g ƒ d t
 ƒƒ t j	 k sÊ t ‚ | d  k sÜ t ‚ Wd  QXt j d d d g ƒ } t | ƒ | k st ‚ t | d t
 ƒ} t j | | ƒ s<t ‚ d	 | d
 <t j | | ƒ s_t ‚ t j t d d d g d t ƒd d d g ƒ s•t ‚ t d d d g d t ƒj t j t ƒ k sÈt ‚ t | d | j ƒ} d | d
 <| d
 d k sýt ‚ t rst j d d d g d d d d d d g ƒ} t | ƒ } | j d k sQt ‚ t j | j d d d g ƒ sut ‚ d | d <| d d k s•t ‚ t | d t
 ƒ} | j d k s¼t ‚ t j | j d d d g ƒ sàt ‚ t j | | ƒ søt ‚ d	 | d <t j | | ƒ st ‚ t | d t ƒj t j t ƒ k sEt ‚ t | d | j ƒ} | j d k sot ‚ t j | j d d d g ƒ s“t ‚ d | d <| d d k s³t ‚ t j d d d g g d d d d g d d g ƒ}	 t |	 ƒ }
 d |
 j d <t j |
 j d d d g ƒ s#t ‚ t j |
 j d g ƒ sAt ‚ |	 j d d k sZt ‚ t |	 d t
 ƒ} t j | |	 ƒ s„t ‚ t j | j d d d g ƒ s¨t ‚ t j | j d g ƒ sÆt ‚ d	 | j d <t j | |	 ƒ sìt ‚ t |	 d t ƒ} | d j t j t ƒ k s t ‚ t j | |	 ƒ s8t ‚ t j | j d d d g ƒ s\t ‚ t j | j d g ƒ szt ‚ t |	 d |	 d j ƒ} t j | j d d d g ƒ s·t ‚ t j | j d g ƒ sÕt ‚ t j |	 | ƒ sít ‚ t } zs t a t t t j d d d g ƒ ƒ ƒ t j k s/t ‚ t t t j d d d g g ƒ ƒ ƒ t j k set ‚ Wd  | a Xn  d  S(   Niÿÿÿÿi   i   i   t   ignores   the matrix subclassR    R   id   i    R   g      ð?g       @g      @ic   R   t   At   indexi
   i   i   ie   t   columnst   Bt   C(   i
   R-   (   i
   R-   (   i
   R-   (   t   warningst   typeR+   R'   t   ndarrayt   AssertionErrort   catch_warningst   filterwarningst   PendingDeprecationWarningt   matrixt   Truet   NoneR(   t   array_equalt   allcloset   floatR   R   R"   R#   R   R.   R$   t   locR/   t   False(   R2   t   wR)   t   a_copyt   a_viewt   st   s_view1t   s_copyt   s_view2t   dft   df_view1t   df_copyt   df_convertedt   df_view2t
   had_pandas(    (    s)   lib/python2.7/site-packages/patsy/util.pyt   test_asarray_or_pandasI   sŽ    *66
3
-$
$
*$
$$"$$!$c         C   sœ   | rD t  rD t |  t j ƒ r+ t j |  ƒ St |  t j ƒ rD |  Sn  t j |  ƒ }  t j |  ƒ }  |  j d k rƒ |  j	 d ƒ }  n  |  j d k s˜ t
 ‚ |  S(   Ni   iÿÿÿÿi   (   iÿÿÿÿi   (   R   R!   R"   R#   R$   R'   t   asarrayt
   atleast_1dt   ndimt   reshapeR5   (   R)   t   preserve_pandas(    (    s)   lib/python2.7/site-packages/patsy/util.pyR    Ÿ   s    c       
   C   s.  d d  l  }  t j t d d d g ƒ d g d g d g g k ƒ sH t ‚ t d ƒ j d k sc t ‚ t d g ƒ j d k s t ‚ t d g g ƒ j d k s¢ t ‚ t d g g g ƒ j d k sÆ t ‚ t d d d g ƒ j d k sê t ‚ t d g d g d g g ƒ j d k st ‚ |  j ƒ  V } |  j d d t ƒ t	 t t j
 d ƒ ƒ ƒ t j k sct ‚ | d  k sut ‚ Wd  QXt rût	 t t j d d g ƒ ƒ ƒ t j k s±t ‚ t	 t t j d g d g g ƒ ƒ ƒ t j k sçt ‚ t	 t t j d d g ƒ d t ƒƒ t j k st ‚ t	 t t j d g d g g ƒ d t ƒƒ t j k sYt ‚ t j d d	 d
 g d d d d d d g ƒ} t | d t ƒ} t | t j ƒ s°t ‚ t j | j d g k ƒ sÑt ‚ t j | j d d d g k ƒ sût ‚ n  |  j ƒ  \ } |  j d d t ƒ t	 t t j
 d ƒ d t ƒƒ t j k sMt ‚ | d  k s_t ‚ Wd  QXt	 t d d d g d t ƒƒ t j k s•t ‚ t r*t } z| t a t	 t t j d d g ƒ d t ƒƒ t j k sàt ‚ t	 t t j d g d g g ƒ d t ƒƒ t j k st ‚ Wd  | a Xn  d  S(   Niÿÿÿÿi   i   i   R,   s   the matrix subclassRS   i
   i   i   R   t   hiR.   R)   t   bt   c(   i   i   (   i   i   (   i   i   (   i   i   i   (   i   i   (   i   i   (   R2   R'   t   allR    R5   t   shapeR6   R7   R8   R3   R9   R4   R;   R   R"   R#   R$   R:   R!   R/   R.   R@   (   R2   RA   RD   RH   RM   (    (    s)   lib/python2.7/site-packages/patsy/util.pyt   test_atleast_2d_column_default®   sb    <!$$-*$	!	-!*		!	c         C   s¼   t  s |  j | ƒ St |  t j ƒ s2 |  j | ƒ S| |  j k rE |  St | ƒ d k rŸ |  j d d k rŸ | d |  j d k r t d ƒ ‚ n  |  |  j d St d |  j | f ƒ ‚ d  S(   Ni   i    s   arrays have incompatible sizess4   cannot reshape a DataFrame with shape %s to shape %s(	   R   RR   R!   R"   R$   RX   t   lent
   ValueErrorR/   (   R)   t	   new_shape(    (    s)   lib/python2.7/site-packages/patsy/util.pyt   pandas_friendly_reshapeî   s    %c          C   sÅ  d d l  m }  t j t t j d ƒ j d d ƒ d ƒ t j d ƒ j d d ƒ ƒ s[ t ‚ t rÁt	 j
 i d d d g d 6d	 d
 d d g ƒ} t | d ƒ } t | t	 j
 ƒ s¶ t ‚ t j | j d
 d d g ƒ sÚ t ‚ t j | j d g ƒ sø t ‚ t | d ƒ } t | t	 j ƒ st ‚ t j | j d
 d d g ƒ sCt ‚ | j d k sXt ‚ |  t t | d ƒ |  t t | d ƒ |  t t | d ƒ t } z t a |  t t | d ƒ Wd  | a Xn  d  S(   Niÿÿÿÿ(   t   assert_raisesi
   i   i   i   i   t   xR.   R)   RU   RV   i   (   i   i   (   i   i   (   i   (   i   (   i   i   (   i   i   (   i   (   t
   nose.toolsR^   R'   R=   R]   t   arangeRR   R5   R   R"   R$   R!   R<   R.   R/   R#   R   R[   R@   t   AttributeError(   R^   RH   t   noopt   squozenRM   (    (    s)   lib/python2.7/site-packages/patsy/util.pyt   test_pandas_friendly_reshapeþ   s,    !$.$$c         C   sM   g  } t  ƒ  } x7 |  D]/ } | | k r | j | ƒ | j | ƒ q q W| S(   N(   t   sett   appendt   add(   t   seqt   seq_newt   seent   obj(    (    s)   lib/python2.7/site-packages/patsy/util.pyR     s    	c           C   sš   t  d d d g ƒ d d d g k s* t ‚ t  d d d d d d g ƒ d d d g k s] t ‚ t  d d d d d d d g ƒ d d d d g k s– t ‚ d  S(   Ni   i   i   i   (   R   R5   (    (    (    s)   lib/python2.7/site-packages/patsy/util.pyt   test_to_uniqueify_list%  s    *3t   float128t   float96t   float64t
   complex256t
   complex196t
   complex128c         C   sp   t  j |  ƒ }  t |  j t  j ƒ s9 t |  j t  j ƒ r= t St |  j t  j ƒ rV t St	 d |  j f ƒ ‚ d  S(   Ns"   cannot widen a non-numeric type %r(
   R'   RO   R   R   t   integert   floatingR   t   complexfloatingR   R[   (   t   arr(    (    s)   lib/python2.7/site-packages/patsy/util.pyR   7  s    c         C   s   t  j |  d t |  ƒ ƒS(   NR   (   R'   RO   R   (   Rw   (    (    s)   lib/python2.7/site-packages/patsy/util.pyR   @  s    c          C   s#  t  j t d d d g ƒ d d d g ƒ s0 t ‚ t d d d g ƒ j t k sT t ‚ t  j t d d d g ƒ d d d g ƒ s„ t ‚ t d d d g ƒ j t k s¨ t ‚ t  j t d d d g ƒ d d d g ƒ sØ t ‚ t d d d g ƒ j t k sü t ‚ d d	 l m }  |  t	 t d
 g ƒ d  S(   Ni   i   i   g      ð?g       @g      @y                iÿÿÿÿ(   R^   RT   y      ð?        y      ð?        (
   R'   R=   R   R5   R   R   R   R`   R^   R[   (   R^   (    (    s)   lib/python2.7/site-packages/patsy/util.pyt   test_wide_dtype_for_and_widenC  s    0$0$0$t   PushbackAdapterc           B   sD   e  Z d  „  Z d „  Z d „  Z d „  Z e Z d „  Z d „  Z RS(   c         C   s   | |  _  g  |  _ d  S(   N(   t   _itt   _pushed(   t   selft   it(    (    s)   lib/python2.7/site-packages/patsy/util.pyt   __init__N  s    	c         C   s   |  S(   N(    (   R|   (    (    s)   lib/python2.7/site-packages/patsy/util.pyt   __iter__R  s    c         C   s   |  j  j | ƒ d  S(   N(   R{   Rg   (   R|   Rl   (    (    s)   lib/python2.7/site-packages/patsy/util.pyt	   push_backU  s    c         C   s*   |  j  r |  j  j ƒ  St j |  j ƒ Sd  S(   N(   R{   t   popt   sixt   advance_iteratorRz   (   R|   (    (    s)   lib/python2.7/site-packages/patsy/util.pyt   nextX  s    	c         C   sD   y t  j |  ƒ } Wn t k
 r2 t d ƒ ‚ n X|  j | ƒ | S(   Ns   no more data(   R‚   Rƒ   t   StopIterationR[   R€   (   R|   Rl   (    (    s)   lib/python2.7/site-packages/patsy/util.pyt   peek`  s    c         C   s+   y |  j  ƒ  Wn t k
 r" t SXt Sd  S(   N(   R†   R[   R@   R:   (   R|   (    (    s)   lib/python2.7/site-packages/patsy/util.pyt   has_moreh  s
    (	   t   __name__t
   __module__R~   R   R€   R„   t   __next__R†   R‡   (    (    (    s)   lib/python2.7/site-packages/patsy/util.pyRy   M  s   					c          C   s=  t  t d d d d g ƒ ƒ }  |  j ƒ  s0 t ‚ t j |  ƒ d k sK t ‚ |  j d ƒ t j |  ƒ d k ss t ‚ t j |  ƒ d k sŽ t ‚ |  j ƒ  d k s¦ t ‚ |  j d ƒ |  j ƒ  d k sË t ‚ |  j d ƒ |  j ƒ  d k sð t ‚ |  j ƒ  st ‚ t |  ƒ d d d d g k s&t ‚ |  j ƒ  s9t ‚ d  S(   Ni   i   i   i   i    i
   i   (	   Ry   t   iterR‡   R5   R‚   Rƒ   R€   R†   t   list(   R}   (    (    s)   lib/python2.7/site-packages/patsy/util.pyt   test_PushbackAdapterp  s    $t   _MiniPPrinterc           B   sJ   e  Z d  „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s   t  ƒ  |  _ d |  _ d  S(   Ni    (   t   StringIOt   _outt   indentation(   R|   (    (    s)   lib/python2.7/site-packages/patsy/util.pyR~   •  s    c         C   s   |  j  j | ƒ d  S(   N(   R   t   write(   R|   t   text(    (    s)   lib/python2.7/site-packages/patsy/util.pyR“   ™  s    t    c         C   s   |  j  j | ƒ d  S(   N(   R   R’   (   R|   t   sep(    (    s)   lib/python2.7/site-packages/patsy/util.pyt	   breakableœ  s    c         C   s   |  j  | ƒ d  S(   N(   R“   (   R|   t   _R“   (    (    s)   lib/python2.7/site-packages/patsy/util.pyt   begin_groupŸ  s    c         C   s   |  j  | ƒ d  S(   N(   R“   (   R|   R—   R“   (    (    s)   lib/python2.7/site-packages/patsy/util.pyt	   end_group¢  s    c         C   s9   t  | d ƒ r" | j |  t ƒ n |  j t | ƒ ƒ d  S(   Nt   _repr_pretty_(   R%   Rš   R@   R“   t   repr(   R|   Rl   (    (    s)   lib/python2.7/site-packages/patsy/util.pyt   pretty¥  s    c         C   s   |  j  j ƒ  S(   N(   R   t   getvalue(   R|   (    (    s)   lib/python2.7/site-packages/patsy/util.pyR   «  s    (	   Rˆ   R‰   R~   R“   R–   R˜   R™   Rœ   R   (    (    (    s)   lib/python2.7/site-packages/patsy/util.pyRŽ   ”  s   					c         C   s    t  ƒ  } | j |  ƒ | j ƒ  S(   N(   RŽ   Rœ   R   (   Rl   t   printer(    (    s)   lib/python2.7/site-packages/patsy/util.pyt   _mini_pretty®  s    	c         C   s=   t  r/ d t j k r/ d d l m } | |  ƒ St |  ƒ Sd  S(   Nt   IPythoniÿÿÿÿ(   Rœ   (   R   t   syst   modulest   IPython.lib.prettyRœ   RŸ   (   Rl   Rœ   (    (    s)   lib/python2.7/site-packages/patsy/util.pyR   ³  s    
c   	         sñ   | j  j } ˆ  j t | ƒ d d | f ƒ t g ‰ ‡  ‡ f d †  } x" | D] } | ƒ  ˆ  j | ƒ qO Wxc | D][ \ } } | ƒ  ˆ  j t | ƒ d d | f ƒ ˆ  j | ƒ ˆ  j t | ƒ d d ƒ qt Wˆ  j t | ƒ d d ƒ d  S(   Ni   s   %s(c              s2   ˆ d r$ ˆ  j  d ƒ ˆ  j ƒ  n  t ˆ d <d  S(   Ni    t   ,(   R“   R–   R:   (    (   t   pt   started(    s)   lib/python2.7/site-packages/patsy/util.pyt   new_itemÊ  s    
s   %s=t    t   )(   R&   Rˆ   R˜   RZ   R@   Rœ   R™   (	   R¥   Rl   t   argst   kwargsR   R§   t   argt   labelt   value(    (   R¥   R¦   s)   lib/python2.7/site-packages/patsy/util.pyR   Æ  s    !	!c          C   su   t  d ƒ d k s t ‚ t ƒ  }  d t f d „  ƒ  Y} t |  | ƒ  d d g d
 d g ƒ |  j ƒ  d	 k sq t ‚ d  S(   Nt   asdfs   'asdf't   MyClassc           B   s   e  Z RS(    (   Rˆ   R‰   (    (    (    s)   lib/python2.7/site-packages/patsy/util.pyR°   Ü  s   R)   i   t   foot   bars'   MyClass('a', 1, foo='bar', asdf='asdf')(   R±   R²   (   R¯   R¯   (   R   R5   RŽ   t   objectR   R   (   Rž   R°   (    (    s)   lib/python2.7/site-packages/patsy/util.pyt   test_repr_prettyÙ  s    	c           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s   | |  _  d  S(   N(   Rl   (   R|   Rl   (    (    s)   lib/python2.7/site-packages/patsy/util.pyR~   ÷  s    c         C   s*   y |  j  | k  SWn t k
 r% t SXd  S(   N(   Rl   t	   TypeErrort   NotImplemented(   R|   t	   other_obj(    (    s)   lib/python2.7/site-packages/patsy/util.pyt
   _python_ltú  s    c         C   s¹   t  | t ƒ s t ‚ |  j | j ƒ } | t k	 r7 | S|  j d ƒ t k	 rP t S| j d ƒ t k	 ri t S|  j | j k r t S|  j j j	 t
 |  j ƒ f | j j j	 t
 | j ƒ f k  S(   Ni    (   R!   R   R5   R¸   Rl   R¶   R:   R@   R&   Rˆ   t   id(   R|   t   othert   result(    (    s)   lib/python2.7/site-packages/patsy/util.pyt   __lt__  s    (   Rˆ   R‰   R~   R¸   R¼   (    (    (    s)   lib/python2.7/site-packages/patsy/util.pyR   ö  s   		c          C   s<  t  d d d d g d t ƒd d d d g k s6 t ‚ t  d d g d t ƒd d g k s` t ‚ t  d d d d	 g d t ƒd d d d	 g k s– t ‚ d t f d
 „  ƒ  Y}  d	 t f d „  ƒ  Y} d t f d „  ƒ  Y} |  ƒ  } | ƒ  } | ƒ  } t ƒ  } t  | | d | | g d t ƒd | | | | g k s8t ‚ d  S(   Ni   i
   i    i   t   keyg      ø¿R)   g     €4@RU   c           B   s   e  Z RS(    (   Rˆ   R‰   (    (    (    s)   lib/python2.7/site-packages/patsy/util.pyR)     s   c           B   s   e  Z RS(    (   Rˆ   R‰   (    (    (    s)   lib/python2.7/site-packages/patsy/util.pyRU     s   t   zc           B   s   e  Z RS(    (   Rˆ   R‰   (    (    (    s)   lib/python2.7/site-packages/patsy/util.pyR¾   !  s   i   (   t   sortedR   R5   R³   (   R)   RU   R¾   t   a_objt   b_objt   z_objt   o_obj(    (    s)   lib/python2.7/site-packages/patsy/util.pyt   test_SortAnythingKey  s    6*6				c         C   s9   y t  j t |  ƒ ƒ SWn t t t f k
 r4 t SXd  S(   N(   R'   t   isnanR>   Rµ   R[   t   NotImplementedErrorR@   (   R_   (    (    s)   lib/python2.7/site-packages/patsy/util.pyR	   ,  s    t   otypesc           C   sÜ   t  t ƒ s t ‚ t  d  ƒ s& t ‚ t  d ƒ s9 t ‚ t  d ƒ sL t ‚ t  t j d d d g ƒ ƒ sq t ‚ t  t j g ƒ sŠ t ‚ t  t j ƒ sŸ t ‚ t  t j t j ƒ ƒ s½ t ‚ t  t t j ƒ ƒ sØ t ‚ d  S(   Nt   sadfi   i   i   (   i   i   i   (	   R	   R:   R5   R;   R'   RO   t   nant   float32R>   (    (    (    s)   lib/python2.7/site-packages/patsy/util.pyt   test_safe_scalar_isnan3  s    %c           C   sœ   t  j t d t d  t  j d g ƒ t t t t t g ƒ s? t ‚ t t  j ƒ j d k s] t ‚ t t  j ƒ sr t ‚ t d  ƒ s… t ‚ t d ƒ s˜ t ‚ d  S(   Ni   R¯   i    (	   R'   R<   R
   R:   R;   RÉ   R@   R5   RQ   (    (    (    s)   lib/python2.7/site-packages/patsy/util.pyt   test_safe_isnan>  s    !c         C   s'   y t  |  ƒ Wn t k
 r" t SXt S(   N(   R‹   t	   ExceptionR@   R:   (   Rl   (    (    s)   lib/python2.7/site-packages/patsy/util.pyR   G  s
    c           C   sg   t  d ƒ s t ‚ t  g  ƒ s$ t ‚ t  i d d 6ƒ s= t ‚ t  d ƒ sP t ‚ t  t  ƒ sc t ‚ d  S(   NR¯   i   R)   (   R   R5   (    (    (    s)   lib/python2.7/site-packages/patsy/util.pyt   test_iterableN  s
    c         C   sT   t  s t ‚ t j |  ƒ }  t t j d ƒ r@ t j j |  | ƒ St j |  | ƒ Sd  S(   Nt
   from_codes(   R   R5   R'   RO   R%   R"   R   RÏ   (   t   codest
   categories(    (    s)   lib/python2.7/site-packages/patsy/util.pyR   f  s
    c          C   s‚   t  s
 d  St d d d d g d d g ƒ }  t j t j |  ƒ d  d d d g k ƒ s\ t ‚ t j t j |  ƒ d ƒ s~ t ‚ d  S(   Ni   i    iÿÿÿÿR)   RU   (   R   R   R'   RW   RO   R5   RÅ   (   RV   (    (    s)   lib/python2.7/site-packages/patsy/util.pyt"   test_pandas_Categorical_from_codesq  s
    !1c         C   s<   t  |  d ƒ r |  j }  n  t  |  d ƒ r1 |  j S|  j Sd  S(   Nt   catRÑ   (   R%   RÓ   RÑ   t   levels(   RÓ   (    (    s)   lib/python2.7/site-packages/patsy/util.pyR   y  s
    c         C   s<   t  |  d ƒ r |  j }  n  t  |  d ƒ r1 |  j S|  j Sd  S(   NRÓ   RÐ   (   R%   RÓ   RÐ   t   labels(   RÓ   (    (    s)   lib/python2.7/site-packages/patsy/util.pyR   …  s
    c          C   sï   t  s
 d  St d d d d g d d g ƒ }  t j t |  ƒ d d g k ƒ sR t ‚ t j t |  ƒ d d d d g k ƒ s t ‚ t rë t j	 |  ƒ } t j t | ƒ d d g k ƒ s» t ‚ t j t | ƒ d d d d g k ƒ së t ‚ n  d  S(   Ni   i    iÿÿÿÿR)   RU   (
   R   R   R'   RW   R   R5   R   R   R"   R#   (   RV   RD   (    (    s)   lib/python2.7/site-packages/patsy/util.pyt!   test_pandas_Categorical_accessors  s    !'-'c         C   s   t  s
 t St |  ƒ S(   N(   R   R@   t   _pandas_is_categorical_dtype(   t   dt(    (    s)   lib/python2.7/site-packages/patsy/util.pyR     s    c         C   s@   t  s
 t St |  t j ƒ r  t St |  d ƒ r< t |  j ƒ St S(   NR   (	   R   R@   R!   R"   R   R:   R%   R   R   (   t   data(    (    s)   lib/python2.7/site-packages/patsy/util.pyR   £  s    c          C   s†   t  t j d ƒ ƒ s t ‚ t rL t j d d g ƒ }  t  |  ƒ sL t ‚ n  t r‚ t j d d g d d ƒ} t  | ƒ s‚ t ‚ n  d  S(   Ni
   R)   RU   R   t   category(	   R   R'   Ra   R5   R   R"   R   R   R#   (   t   c_objt   s_obj(    (    s)   lib/python2.7/site-packages/patsy/util.pyt   test_safe_is_pandas_categorical¬  s    c         C   s    t  |  ƒ r t St j |  | ƒ S(   N(   R   R@   R'   t
   issubdtype(   t   dt1t   dt2(    (    s)   lib/python2.7/site-packages/patsy/util.pyR   Ã  s    c          C   sµ   t  t t j ƒ s t ‚ t  t j t ƒ t j ƒ s9 t ‚ t  t t j ƒ sR t ‚ t  t j t ƒ t j ƒ st t ‚ t r± t	 j
 d d g d d ƒ}  t  |  t j ƒ s± t ‚ n  d  S(   NR)   RU   R   RÚ   (   R   t   intR'   Rt   R5   R   R>   Ru   R   R"   R#   (   t	   bad_dtype(    (    s)   lib/python2.7/site-packages/patsy/util.pyt   test_safe_issubdtypeÈ  s    !"c          O   s   t  d ƒ ‚ d  S(   Nse   Sorry, pickling not yet supported. See https://github.com/pydata/patsy/issues/26 if you want to help.(   RÆ   (   Rª   R«   (    (    s)   lib/python2.7/site-packages/patsy/util.pyR   Ò  s    c         C   s3   d d  l  } d d l m } | t | j |  ƒ d  S(   Niÿÿÿÿ(   R^   (   t   pickleR`   R^   RÆ   t   dumps(   Rl   Rä   R^   (    (    s)   lib/python2.7/site-packages/patsy/util.pyR   Ø  s    c         C   s$   t  |  t j ƒ r |  | k St Sd  S(   N(   R!   R‚   t   string_typesR@   (   Rl   R®   (    (    s)   lib/python2.7/site-packages/patsy/util.pyR   â  s    
c           C   su   t  d d ƒ s t ‚ t  d d ƒ s+ t ‚ t j sR t  t d ƒ d ƒ sR t ‚ n  t  t j d ƒ d ƒ sq t ‚ d  S(   NR±   R²   i   (   i   i   (   R   R5   R‚   t   PY3t   unicodeR'   t   empty(    (    (    s)   lib/python2.7/site-packages/patsy/util.pyt   test_safe_string_eqè  s
    	(   Rn   Ro   Rp   (   Rq   Rr   Rs   (J   t   __all__R¡   t   numpyR'   R‚   t	   six.movesR   R   t   compatR   R"   t   ImportErrorR@   R   R:   R%   R   R   R;   R×   R   t   typesR   t   getattrt   coret   commonR+   RN   R    RY   R]   Re   R   Rm   t
   float_typeR   R5   t   complex_typeR   R   R   Rx   R³   Ry   R   RŽ   RŸ   R   R   R´   R   RÄ   R	   t	   vectorizet   boolR
   RË   RÌ   R   RÎ   R   RÒ   R   R   RÖ   R   R   RÝ   R   Rã   R   R   R   Rê   (    (    (    s)   lib/python2.7/site-packages/patsy/util.pyt   <module>   s®   		
			V	@									
#	$			#																		
		
	