o
    gg
                     @   s   d dl Z d dlZd dlZd dlmZ d dlmZ dd Z	e j
dd ZG dd dZe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
d Zdd Zdd Zdd ZdS )    N)accessorc                  C   s:   G dd dt j} dd t|  D }|ddgksJ d S )Nc                   @   s"   e Zd ZU dZeed< dd ZdS )ztest_dirname_mixin.<locals>.X   yc                 S   s
   d| _ d S )N   )zself r	   a/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/pandas/tests/test_register_accessor.py__init__   s   
z&test_dirname_mixin.<locals>.X.__init__N)__name__
__module____qualname__xint__annotations__r   r	   r	   r	   r
   X   s   
 r   c                 S   s   g | ]	}| d s|qS )_)
startswith).0	attr_namer	   r	   r
   
<listcomp>   s    z&test_dirname_mixin.<locals>.<listcomp>r   r   )r   DirNamesMixindir)r   resultr	   r	   r
   test_dirname_mixin
   s   r   c                 c   sn    zdV  W zt | | W n	 ty   Y nw | j| dS zt | | W n	 ty/   Y nw | j| w )z[Ensure that an attribute added to 'obj' during the test is
    removed when we're done
    N)delattrAttributeError
_accessorsdiscard)objattrr	   r	   r
   ensure_removed   s   r"   c                   @   s(   e Zd Zdd Zedd Zdd ZdS )
MyAccessorc                 C   s   || _ d| _d S )Nitem)r    r$   )r   r    r	   r	   r
   r   )   s   
zMyAccessor.__init__c                 C      | j S Nr$   r   r	   r	   r
   prop-   s   zMyAccessor.propc                 C   r%   r&   r'   r   r	   r	   r
   method1   s   zMyAccessor.methodN)r   r   r   r   propertyr(   r)   r	   r	   r	   r
   r#   (   s
    
r#   zobj, registrarc                 C   s   t | dB tt| }|dt | tjur| g n| g td}|jjdks)J tt| }||A dhks8J d| j	v s?J W d    d S 1 sJw   Y  d S )Nminedtyper$   )
r"   setr   r#   pdSeriesobjectr+   r(   r   )r    	registrarbeforeoafterr	   r	   r
   test_register5   s   	"r6   c                  C   s   t tjd2 tjjdt tddg} | jj| u sJ | jj	dks'J | j
 dks0J W d    d S 1 s;w   Y  d S )Nr+   r      r$   )r"   r/   r0   api
extensionsregister_series_accessorr#   r+   r    r(   r)   )sr	   r	   r
   test_accessor_worksH   s   "r<   c                  C   s   t jj} zMtt }t jjdt	 t ddg}|jj
dks#J W d    n1 s-w   Y  t|d j}d|v s?J d|v sEJ d|v sKJ W | t j_d S | t j_w )Nmeanr   r7   r$   r   r#   r0   )r/   r0   r=   tmassert_produces_warningUserWarningr8   r9   r:   r#   r(   strmessage)r=   wr;   msgr	   r	   r
   test_overwrite_warnsS   s   rE   c               	   C   s   t tjd> tjjdG dd d} tjtdd tjg t	dj
 W d    n1 s/w   Y  W d    d S W d    d S 1 sGw   Y  d S )Nbadc                   @   s   e Zd Zdd ZdS )z(test_raises_attribute_error.<locals>.Badc                 S   s   t d)Nwhoops)r   )r   datar	   r	   r
   r   i   s   z1test_raises_attribute_error.<locals>.Bad.__init__N)r   r   r   r   r	   r	   r	   r
   Badg   s    rI   rG   )matchr,   )r"   r/   r0   r8   r9   r:   pytestraisesr   r1   rF   )rI   r	   r	   r
   test_raises_attribute_errorc   s   "rM   )
contextlibrK   pandasr/   pandas._testing_testingr>   pandas.corer   r   contextmanagerr"   r#   markparametrizer0   r8   r9   r:   	DataFrameregister_dataframe_accessorIndexregister_index_accessorr6   r<   rE   rM   r	   r	   r	   r
   <module>   s(    

