
    d
                        d dl mZ d dlZd dlZd dlZd dlmZ  ej        d           ej	        d           G d d                                  Z
 G d d          ZdS )	    )annotationsN)assert_identicalexample_accessorc                      e Zd ZdZd ZdS )ExampleAccessorzFor the pickling tests below.c                    || _         d S N)objself
xarray_objs     <lib/python3.11/site-packages/xarray/tests/test_extensions.py__init__zExampleAccessor.__init__   s        N)__name__
__module____qualname____doc__r    r   r   r   r      s+         ('    r   r   c                  .    e Zd ZddZddZddZddZdS )	TestAccessorreturnNonec                .   t          j        d          t          j        d           G d d                                  }t          j                    }|j        j        dk    sJ t          j        d          }|j        j        dk    sJ |j        |j        u sJ |j        j        dk    sJ t           j        j        j        dk    sJ t          |j        |          sJ t           j        j        |u sJ t           j        `t          t           j        d          rJ t          j        t          d          5  t          j        d           G d	 d
                      }d d d            n# 1 swxY w Y   t          t           j        d          rJ d S )Ndemoc                  .    e Zd ZdZd Zed             ZdS )0TestAccessor.test_register.<locals>.DemoAccessorDemo accessor.c                    || _         d S r	   )_objr   s     r   r   z9TestAccessor.test_register.<locals>.DemoAccessor.__init__   s    &			r   c                    dS )Nbarr   )r   s    r   fooz4TestAccessor.test_register.<locals>.DemoAccessor.foo   s    ur   N)r   r   r   r   r   propertyr#   r   r   r   DemoAccessorr      sF         ! ' ' '   X  r   r%   r"   r   r   z"overriding a preexisting attributematchc                      e Zd ZdS )'TestAccessor.test_register.<locals>.FooN)r   r   r   r   r   r   Foor)   7   s        r   r*   )xrregister_dataset_accessorregister_dataarray_accessorDatasetr   r#   	DataArrayr   
isinstancehasattrpytestwarnsWarning)r   r%   dsdar*   s        r   test_registerzTestAccessor.test_register   s   		%f	-	-		'	/	/	 	 	 	 	 	 	 
0	/ 
.	-	 Z\\w{e####\!__w{e####w"'!!!! w"22222z&*:::::"'<00000z,.... JO2:v.....\')MNNN 	 	+F33       43	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 2:v.......s   :(E..E25E2c                `   t          j                    }t          j        t          j        |                    }t          ||           |j        |j        u sJ d|j        _        t          j        t          j        |                    }t          ||           |j        j        dk    sJ d S )Nr#   )r+   r.   pickleloadsdumpsr   r   value)r   r5   ds_restoreds      r   test_pickle_datasetz TestAccessor.test_pickle_dataset>   s    Z\\l6<#3#344[))) "b&99999$)!l6<#3#344[)))+1U::::::r   c                    t          j                    }|j        |j        u sJ t          j        t          j        |                    }t          ||           d S r	   )r+   r.   r   r9   r:   r;   r   )r   arrayarray_restoreds      r   test_pickle_dataarrayz"TestAccessor.test_pickle_dataarrayJ   sS    
%)?????fl5&9&9:://///r   c                    t          j        d           G d d                      }t          j        t          d          5  t          j                    j         d d d            d S # 1 swxY w Y   d S )Nstupid_accessorc                      e Zd Zd ZdS )9TestAccessor.test_broken_accessor.<locals>.BrokenAccessorc                     t          d          )Nbroken)AttributeErrorr   s     r   r   zBTestAccessor.test_broken_accessor.<locals>.BrokenAccessor.__init__U   s    $X...r   N)r   r   r   r   r   r   r   BrokenAccessorrF   S   s#        / / / / /r   rJ   zerror initializingr&   )r+   r,   r2   raisesRuntimeErrorr.   rD   )r   rJ   s     r   test_broken_accessorz!TestAccessor.test_broken_accessorP   s     
	%&7	8	8	/ 	/ 	/ 	/ 	/ 	/ 	/ 
9	8	/ ]</DEEE 	) 	)JLL((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   A))A-0A-N)r   r   )r   r   r   r7   r>   rB   rM   r   r   r   r   r      se        '/ '/ '/ '/R
; 
; 
; 
;0 0 0 0	) 	) 	) 	) 	) 	)r   r   )
__future__r   r9   r2   xarrayr+   xarray.testsr   r,   r-   r   r   r   r   r   <module>rQ      s    " " " " " "       ) ) ) ) ) ) 011 233       43 21E) E) E) E) E) E) E) E) E) E)r   