ó
šxŠ\c           @   sÚ   d  d l  Z  d  d l Z d  d l Z d  d l j j Z e  j d „  ƒ Z	 d e
 f d „  ƒ  YZ e j j d e j e j j j f e j e j j j f e j e j j j f g ƒ d „  ƒ Z d „  Z d „  Z d	 „  Z d S(
   iÿÿÿÿNc         c   sF   z	 d VWd y t  |  | ƒ Wn t k
 r0 n X|  j j | ƒ Xd S(   sV   Ensure that an attribute added to 'obj' during the test is
    removed when we're doneN(   t   delattrt   AttributeErrort
   _accessorst   discard(   t   objt   attr(    (    sB   lib/python2.7/site-packages/pandas/tests/test_register_accessor.pyt   ensure_removed	   s    	t
   MyAccessorc           B   s)   e  Z d  „  Z e d „  ƒ Z d „  Z RS(   c         C   s   | |  _  d |  _ d  S(   Nt   item(   R   R   (   t   selfR   (    (    sB   lib/python2.7/site-packages/pandas/tests/test_register_accessor.pyt   __init__   s    	c         C   s   |  j  S(   N(   R   (   R	   (    (    sB   lib/python2.7/site-packages/pandas/tests/test_register_accessor.pyt   prop   s    c         C   s   |  j  S(   N(   R   (   R	   (    (    sB   lib/python2.7/site-packages/pandas/tests/test_register_accessor.pyt   method!   s    (   t   __name__t
   __module__R
   t   propertyR   R   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/test_register_accessor.pyR      s   	s   obj, registrarc         C   sš   t  |  d ƒ … t t |  ƒ ƒ } | d ƒ t ƒ |  g  ƒ j j d k sP t ‚ t t |  ƒ ƒ } | | Ad h k s{ t ‚ d |  j k s t ‚ Wd  QXd  S(   Nt   mineR   (   R   t   sett   dirR   R   R   t   AssertionErrorR   (   R   t	   registrart   beforet   after(    (    sB   lib/python2.7/site-packages/pandas/tests/test_register_accessor.pyt   test_register%   s    c          C   s–   t  t j d ƒ ~ t j j j d ƒ t ƒ t j d d g ƒ }  |  j j |  k sY t	 ‚ |  j j
 d k sq t	 ‚ |  j j ƒ  d k sŒ t	 ‚ Wd  QXd  S(   NR   i   i   R   (   R   t   pdt   Seriest   apit
   extensionst   register_series_accessorR   R   R   R   R   R   (   t   s(    (    sB   lib/python2.7/site-packages/pandas/tests/test_register_accessor.pyt   test_accessor_works4   s    c          C   sË   t  j j }  z« t j t ƒ M } t  j j j d ƒ t	 ƒ t  j d d g ƒ } | j j
 d k sg t ‚ Wd  QXt | d j ƒ } d | k s’ t ‚ d | k s¤ t ‚ d | k s¶ t ‚ Wd  |  t  j _ Xd  S(   Nt   meani   i   R   i    R   R   (   R   R   R   t   tmt   assert_produces_warningt   UserWarningR   R   R   R   R   R   t   strt   message(   R   t   wR   t   msg(    (    sB   lib/python2.7/site-packages/pandas/tests/test_register_accessor.pyt   test_overwrite_warns?   s    c       
   C   st   t  t j d ƒ \ t j j j d ƒ d t f d „  ƒ  Yƒ }  t j t	 d d ƒ t j g  ƒ j
 Wd  QXWd  QXd  S(   Nt   badt   Badc           B   s   e  Z d  „  Z RS(   c         S   s   t  d ƒ ‚ d  S(   Nt   whoops(   R   (   R	   t   data(    (    sB   lib/python2.7/site-packages/pandas/tests/test_register_accessor.pyR
   U   s    (   R   R   R
   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/test_register_accessor.pyR)   S   s   t   matchR*   (   R   R   R   R   R   R   t   objectt   pytestt   raisesR   R(   (   R)   (    (    sB   lib/python2.7/site-packages/pandas/tests/test_register_accessor.pyt   test_raises_attribute_errorO   s
    (   t
   contextlibR.   t   pandasR   t   pandas.util.testingt   utilt   testingR    t   contextmanagerR   R-   R   t   markt   parametrizeR   R   R   R   t	   DataFramet   register_dataframe_accessort   Indext   register_index_accessorR   R   R'   R0   (    (    (    sB   lib/python2.7/site-packages/pandas/tests/test_register_accessor.pyt   <module>   s   '		