ó
šxŠ\c           @   s×  d  Z  d d l m Z d d l Z d d l Z d d l m Z m Z m Z d d l	 m
 Z
 d d l m Z m Z d d l j j Z e j j d e d ƒ d g ƒ d	 „  ƒ Z d
 „  Z d „  Z e j j d d e d d g ƒ e d d d g d d d g g d d d d g ƒf d e d d d d g ƒ e d d d g g d d d d g ƒf d  e d d d d d g ƒ e d! d" g g d d# d$ g ƒf g ƒ d% „  ƒ Z d& „  Z e j j d' d( d d) d g d d* d g g f d+ d d, d g d d- d g g f d. d d/ d g d d0 d g g f g ƒ d1 „  ƒ Z e j j d2 d3 d4 d5 g ƒ d6 „  ƒ Z d7 „  Z e j j d8 e ƒ  e i d d9 g d: 6ƒ f e d; d< d= d> g ƒ e i d d9 g d> 6ƒ f g ƒ d? „  ƒ Z d@ „  Z dA „  Z d S(B   sj   
Tests that skipped rows are properly handled during
parsing for all of the parsers defined in parsers.py
iÿÿÿÿ(   t   datetimeN(   t   StringIOt   lranget   range(   t   EmptyDataError(   t	   DataFramet   Indext   skiprowsi   c      
   C   sÂ   |  } d } | j  t | ƒ d | d d  d d d t ƒ} t t d d d ƒ t d d d	 ƒ t d d d
 ƒ g d d ƒ} t t j d d ƒ j	 d ƒ d d d	 d
 g d | ƒ} t
 j | | ƒ d  S(   Nsr   #foo,a,b,c
#foo,a,b,c
#foo,a,b,c
#foo,a,b,c
#foo,a,b,c
#foo,a,b,c
1/1/2000,1.,2.,3.
1/2/2000,4,5,6
1/3/2000,7,8,9
R   t   headert	   index_coli    t   parse_datesiÐ  i   i   i   t   nameg      ð?g      $@t   columnst   index(   i   i   (   t   read_csvR   t   Nonet   TrueR   R    R   t   npt   aranget   reshapet   tmt   assert_frame_equal(   t   all_parsersR   t   parsert   textt   resultR   t   expected(    (    sC   lib/python2.7/site-packages/pandas/tests/io/parser/test_skiprows.pyt   test_skip_rows_bug   s    
!c         C   s  |  } d d j  g  t d ƒ D]8 } d j  t | ƒ t | d ƒ t | d ƒ g ƒ ^ q ƒ } d d j  g  d d d d d	 d
 d d g D]8 } d j  t | ƒ t | d ƒ t | d ƒ g ƒ ^ q† ƒ } | j t | ƒ d d
 d g ƒ} | j t | ƒ ƒ } t j | | ƒ d  S(   Ns   a,b,c
s   
i
   t   ,i   i   i    i   i   i   i   i	   R   (   t   joinR   t   strR   R   R   R   (   R   R   t   it   datat   condensed_dataR   t   condensed_result(    (    sC   lib/python2.7/site-packages/pandas/tests/io/parser/test_skiprows.pyt   test_deep_skip_rows,   s    L	^!c      
   C   sÂ   |  } d } | j  t | ƒ d d d d  d d d t ƒ} t t d d	 d	 ƒ t d d	 d
 ƒ t d d	 d ƒ g d d ƒ} t t j d d ƒ j	 d ƒ d d	 d
 d g d | ƒ} t
 j | | ƒ d  S(   Ns^   #foo,a,b,c
#foo,a,b,c

#foo,a,b,c
#foo,a,b,c

1/1/2000,1.,2.,3.
1/2/2000,4,5,6
1/3/2000,7,8,9
R   i   R   R	   i    R
   iÐ  i   i   i   R   g      ð?g      $@R   R   (   i   i   (   R   R   R   R   R   R    R   R   R   R   R   R   (   R   R   R   R    R   R   (    (    sC   lib/python2.7/site-packages/pandas/tests/io/parser/test_skiprows.pyt   test_skip_rows_blank:   s    
!	s   data,kwargs,expectedsK   id,text,num_lines
1,"line 11
line 12",2
2,"line 21
line 22",2
3,"line 31",1i   i   s   line 21
line 22i   s   line 31R   t   idR   t	   num_liness+   a,b,c
~a
 b~,~e
 d~,~f
 f~
1,2,~12
 13
 14~t	   quotechart   ~s   a
 bs   e
 ds   f
 ft   at   bt   csd   Text,url
~example
 sentence
 one~,url1
~example
 sentence
 two~,url2
~example
 sentence
 three~,url3s   example
 sentence
 twot   url2t   Textt   urlc         C   s2   |  } | j  t | ƒ |  } t j | | ƒ d  S(   N(   R   R   R   R   (   R   R    t   kwargsR   R   R   (    (    sC   lib/python2.7/site-packages/pandas/tests/io/parser/test_skiprows.pyt   test_skip_row_with_newlineR   s    c         C   sw   |  } d } d d d g d d d g g } t  | d d d	 d
 g ƒ} | j t | ƒ d d g ƒ} t j | | ƒ d  S(   NsY   id,text,num_lines
1,"line '11' line 12",2
2,"line '21' line 22",2
3,"line '31' line 32",1i   s   line '21' line 22i   s   line '31' line 32i   R   R%   R   R&   R   (   R   R   R   R   R   (   R   R   R    t   exp_dataR   R   (    (    sC   lib/python2.7/site-packages/pandas/tests/io/parser/test_skiprows.pyt   test_skip_row_with_quoten   s    	s   data,exp_datas\   id,text,num_lines
1,"line 
'11' line 12",2
2,"line 
'21' line 22",2
3,"line 
'31' line 32",1s   line 
'21' line 22s   line 
'31' line 32s\   id,text,num_lines
1,"line '11
' line 12",2
2,"line '21
' line 22",2
3,"line '31
' line 32",1s   line '21
' line 22s   line '31
' line 32sb   id,text,num_lines
1,"line '11
' 	line 12",2
2,"line '21
' 	line 22",2
3,"line '31
' 	line 32",1s   line '21
' 	line 22s   line '31
' 	line 32c         C   sS   |  } | j  t | ƒ d d g ƒ} t | d d d d g ƒ} t j | | ƒ d  S(   NR   i   R   R%   R   R&   (   R   R   R   R   R   (   R   R    R1   R   R   R   (    (    sC   lib/python2.7/site-packages/pandas/tests/io/parser/test_skiprows.pyt$   test_skip_row_with_newline_and_quote   s    t   line_terminators   
s   
s   c         C   sÿ   |  } d j  d d d d g ƒ } t d d d d	 d
 g d d d d
 d g d d d d d
 g g d d d d d d g ƒ} | j d k r£ | d k r£ t j d ƒ n  | j d | ƒ } | j t | ƒ d d d t d d d d d d g ƒ} t	 j
 | | ƒ d  S(   Ns   
s   SMOSMANIA ThetaProbe-ML2X s   2007/01/01 01:00   0.2140 U M s   2007/01/01 02:00   0.2141 M O s   2007/01/01 04:00   0.2142 D M s
   2007/01/01s   01:00g1¬ZdË?t   Ut   Ms   02:00gºk	ù gË?t   Os   04:00gBÏfÕçjË?t   DR   t   datet   timet   vart   flagt   oflagt   pythons   s+   'CR' not respect with the Python parser yetR   i   t   delim_whitespacet   names(   R   R   t   enginet   pytestt   skipt   replaceR   R   R   R   R   (   R   R4   R   R    R   R   (    (    sC   lib/python2.7/site-packages/pandas/tests/io/parser/test_skiprows.pyt   test_skiprows_lineterminatorœ   s     	c         C   sQ   |  } d } t  i d g d 6ƒ } | j t | ƒ d d ƒ} t j | | ƒ d  S(   Ns	   a"
b"
a
1i   R)   R   i   (   R   R   R   R   R   (   R   R   R    R   R   (    (    sC   lib/python2.7/site-packages/pandas/tests/io/parser/test_skiprows.pyt   test_skiprows_infield_quote·   s
    s   kwargs,expectedi   t   1R   i    R@   t   fooc         C   sA   |  } d } | j  t | ƒ d d „  | } t j | | ƒ d  S(   Ns   a
1
2
3
4
5R   c         S   s   |  d d k S(   Ni   i    (    (   t   x(    (    sC   lib/python2.7/site-packages/pandas/tests/io/parser/test_skiprows.pyt   <lambda>Ê   s    (   R   R   R   R   (   R   R/   R   R   R    R   (    (    sC   lib/python2.7/site-packages/pandas/tests/io/parser/test_skiprows.pyt   test_skip_rows_callableÁ   s    	c         C   sN   |  } d } d } t  j t d | ƒ! | j t | ƒ d d „  ƒWd  QXd  S(   Ns   a
1
2
3
4
5s   No columns to parse from filet   matchR   c         S   s   t  S(   N(   R   (   RI   (    (    sC   lib/python2.7/site-packages/pandas/tests/io/parser/test_skiprows.pyRJ   Õ   s    (   RB   t   raisesR   R   R   (   R   R   R    t   msg(    (    sC   lib/python2.7/site-packages/pandas/tests/io/parser/test_skiprows.pyt   test_skip_rows_skip_allÏ   s
    c         C   sN   d } |  } d } t  j t d | ƒ! | j t | ƒ d d „  ƒWd  QXd  S(   Ns   by zeros   a
1
2
3
4
5RL   R   c         S   s   d d S(   Ni   i    (    (   RI   (    (    sC   lib/python2.7/site-packages/pandas/tests/io/parser/test_skiprows.pyRJ   Þ   s    (   RB   RM   t   ZeroDivisionErrorR   R   (   R   RN   R   R    (    (    sC   lib/python2.7/site-packages/pandas/tests/io/parser/test_skiprows.pyt   test_skip_rows_bad_callableØ   s
    (    t   __doc__R    t   numpyR   RB   t   pandas.compatR   R   R   t   pandas.errorsR   t   pandasR   R   t   pandas.util.testingt   utilt   testingR   t   markt   parametrizeR   R#   R$   t   dictR0   R2   R3   RE   RF   RK   RO   RQ   (    (    (    sC   lib/python2.7/site-packages/pandas/tests/io/parser/test_skiprows.pyt   <module>   sV   *		$'!		$	
@		