ó
šxŠ\c           @   sj  d  d l  Z  d  d l m Z d  d l Z d  d l m Z m Z d  d l j j	 Z
 d  d l m Z m Z m Z d  d l m Z e  j d „  ƒ Z d „  Z d „  Z d	 „  Z e  j j d
 d d g ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z e  j j d
 d d g ƒ d „  ƒ Z e  j j d
 d d  d d g ƒ d „  ƒ Z e  j j d
 d d d g ƒ d „  ƒ Z d S(   iÿÿÿÿN(   t   StringIO(   t	   DataFramet	   read_json(   t   assert_frame_equalt   assert_series_equalt   ensure_clean(   t
   JsonReaderc          C   sE   t  j i d d d g d 6d d d g d 6ƒ }  |  j d	 t d
 d ƒ S(   Ni   i   i   t   Ai   i   i   t   Bt   linest   orientt   records(   t   pdR   t   to_jsont   True(   t   df(    (    sB   lib/python2.7/site-packages/pandas/tests/io/json/test_readlines.pyt   lines_json_df   s    /c          C   sM   t  d d t ƒ}  t d d g d d g g d d d g ƒ} t |  | ƒ d  S(   Ns!   {"a": 1, "b": 2}
{"b":2, "a" :1}
R	   i   i   t   columnst   at   b(   R   R   R   R   (   t   resultt   expected(    (    sB   lib/python2.7/site-packages/pandas/tests/io/json/test_readlines.pyt   test_read_jsonl   s    *c          C   s®   d }  t  |  ƒ }  t |  d t ƒ} t d d g d d g g d d d g ƒ} t | | ƒ d }  t |  d t ƒ} t d d g d d g g d d d g ƒ} t | | ƒ d  S(	   Ns5   {"a": "fooâ€", "b": "bar"}
{"a": "foo", "b": "bar"}
R	   u   fooâ€t   bart   fooR   R   R   (   R    R   R   R   R   (   t   jsonR   R   (    (    sB   lib/python2.7/site-packages/pandas/tests/io/json/test_readlines.pyt   test_read_jsonl_unicode_chars   s    c          C   sD  t  d d g d d g g d d d g ƒ}  |  j d d d t ƒ } d	 } | | k sZ t ‚ t  d
 d g d d g g d d d g ƒ}  |  j d d d t ƒ } d } | | k s´ t ‚ t t | d t ƒ|  ƒ t  d d g d d g g d d d g ƒ}  |  j d d d t ƒ } d } | | k s't ‚ t t | d t ƒ|  ƒ d  S(   Ni   i   R   R   R   R
   R   R	   s   {"a":1,"b":2}
{"a":1,"b":2}s   foo}R   s   foo"s.   {"a":"foo}","b":"bar"}
{"a":"foo\"","b":"bar"}s   foo\s   a\s3   {"a\\":"foo\\","b":"bar"}
{"a\\":"foo\"","b":"bar"}(   R   R   R   t   AssertionErrorR   R   (   R   R   R   (    (    sB   lib/python2.7/site-packages/pandas/tests/io/json/test_readlines.pyt   test_to_jsonl0   s    **t	   chunksizei   g      ð?c         C   sV   t  t |  ƒ d t ƒ} t  t |  ƒ d t d | ƒ} t j | ƒ } t | | ƒ d  S(   NR	   R   (   R   R    R   R   t   concatR   (   R   R   t	   unchunkedt   readert   chunked(    (    sB   lib/python2.7/site-packages/pandas/tests/io/json/test_readlines.pyt   test_readjson_chunksG   s
    	c      
   C   sE   d } t  j t d | ƒ$ t j t |  ƒ d t d d ƒWd  QXd  S(   Ns*   chunksize can only be passed if lines=Truet   matchR	   R   i   (   t   pytestt   raisest
   ValueErrorR   R   R    t   False(   R   t   msg(    (    sB   lib/python2.7/site-packages/pandas/tests/io/json/test_readlines.pyt&   test_readjson_chunksize_requires_linesU   s    c       	   C   s¯   t  j i d d 6d d 6ƒ }  t |  j d t d d ƒ ƒ } t  j | d t d d	 ƒ} t |  j d t d d ƒ ƒ } t  j t  j | d t d d	 d
 d ƒƒ } t | | ƒ d  S(   Ni   R   i   R   R	   R
   R   t   typt   SeriesR   (   R   R+   R    R   R   R   R   R   (   t   st   strioR   R!   (    (    sB   lib/python2.7/site-packages/pandas/tests/io/json/test_readlines.pyt   test_readjson_chunks_series[   s    c         C   s]   t  t j t |  ƒ d t d d ƒƒ } | d j d k s@ t ‚ | d j d k sY t ‚ d  S(   NR	   R   i   i    i   (   i   i   (   i   i   (   t   listR   R   R    R   t   shapeR   (   R   t   chunks(    (    sB   lib/python2.7/site-packages/pandas/tests/io/json/test_readlines.pyt   test_readjson_each_chunkj   s    $c          C   s§   t  d ƒ • }  t j i d d d g d 6d d d g d	 6ƒ } | j |  d
 t d d ƒt j t j |  d
 t d d ƒƒ } t j |  d
 t ƒ} t | | ƒ Wd  QXd  S(   Ns	   test.jsoni   i   i   R   i   i   i   R   R	   R
   R   R   (   R   R   R   R   R   R   R   R   (   t   pathR   R!   R   (    (    sB   lib/python2.7/site-packages/pandas/tests/io/json/test_readlines.pyt   test_readjson_chunks_from_filet   s    /$c          C   sé   t  d ƒ × } t j i d d d g d 6d d d g d	 6ƒ } | j | d
 t d d ƒt | d d  d d d t d t d t d t d t d t d d  d d  d
 t d |  d d  ƒ} | j ƒ  | j	 j
 sß t d j d |  ƒ ƒ ‚ Wd  QXd  S(   Ns	   test.jsoni   i   i   R   i   i   i   R   R	   R
   R   R*   t   framet   dtypet   convert_axest   convert_datest   keep_default_datest   numpyt   precise_floatt	   date_unitt   encodingR   t   compressions<   didn't close stream with             chunksize = {chunksize}(   R   R   R   R   R   R   t   NoneR'   t   readt   open_streamt   closedR   t   format(   R   R3   R   R    (    (    sB   lib/python2.7/site-packages/pandas/tests/io/json/test_readlines.pyt   test_readjson_chunks_closes}   s    /
i    gš™™™™™@R   c      
   C   sE   d } t  j t d | ƒ$ t j t |  ƒ d t d | ƒWd  QXd  S(   Ns"   'chunksize' must be an integer >=1R#   R	   R   (   R$   R%   R&   R   R   R    R   (   R   R   R(   (    (    sB   lib/python2.7/site-packages/pandas/tests/io/json/test_readlines.pyt   test_readjson_invalid_chunksizeŒ   s    i   c         C   s”   d } t  j i d d d g d 6d d d g d	 6ƒ } t  j | d
 t d |  ƒ} |  d  k	 rn t  j | ƒ } n  t j | | d d j d |  ƒ ƒd  S(   NsF   

    {"A":1,"B":4}



    {"A":2,"B":5}







    {"A":3,"B":6}
    i   i   i   R   i   i   i   R   R	   R   t   objs   chunksize: {chunksize}(	   R   R   R   R   R?   R   t   tmR   RC   (   R   t   jt   origt   test(    (    sB   lib/python2.7/site-packages/pandas/tests/io/json/test_readlines.pyt)   test_readjson_chunks_multiple_empty_lines•   s    /(    R$   t   pandas.compatR    t   pandasR   R   R   t   pandas.util.testingt   utilt   testingRG   R   R   R   t   pandas.io.json.jsonR   t   fixtureR   R   R   R   t   markt   parametrizeR"   R)   R.   R2   R4   R?   RD   RE   RK   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/io/json/test_readlines.pyt   <module>   s$   			$			
		$*	