
    d?                        d dl mZ d dlmZ d dlmZ d dlZd dlm	Z	 d dl
mZ dd	Z G d
 de          Zej        Zeej                 Zd ZddZdS )    )annotations)Enum)LiteralN)Version)cftime_offsetsreturnintc                 4    t          d | D                       S )z~Compute the number of non-None arguments.

    Copied from pandas.core.common.count_not_none (not part of the public API)
    c              3     K   | ]}|d uV  	d S )N ).0args     4lib/python3.11/site-packages/xarray/core/pdcompat.py	<genexpr>z!count_not_none.<locals>.<genexpr>4   s&      //3s$//////    )sum)argss    r   count_not_noner   /   s!    
 //$//////r   c                      e Zd ZdZdZddZdS )
_NoDefaultzUsed by pandas to specify a default value for a deprecated argument.
    Copied from pandas._libs.lib._NoDefault.

    See also:
    - pandas-dev/pandas#30788
    - pandas-dev/pandas#40684
    - pandas-dev/pandas#40715
    - pandas-dev/pandas#47045
    
NO_DEFAULTr   strc                    dS )Nz<no_default>r   )selfs    r   __repr__z_NoDefault.__repr__D   s    ~r   N)r   r   )__name__
__module____qualname____doc__
no_defaultr   r   r   r   r   r   7   s9          J     r   r   c                   ddl m} t          |t          j                  rit          j        j                            |          }t          |t          j        j	                  r$t          j
        | |j        z  |j        z            S dS t          ||          rOt          j        |          }t          |t          j	                  r| |                                z  |j        z  S dS t          d          )zRequired until we officially deprecate the base argument to resample.  This
    translates a provided `base` argument to an `offset` argument, following logic
    from pandas.
    r   )CFTimeIndexz7Can only resample using a DatetimeIndex or CFTimeIndex.N)xarray.coding.cftimeindexr"   
isinstancepdDatetimeIndextseriesfrequencies	to_offsetoffsetsTick	Timedeltananosnr   as_timedelta
ValueError)basefreqindexr"   s       r   _convert_base_to_offsetr4   N   s    
 655555%)** 	Tz%//55dBJO,, 	=<tz 1TV ;<<<	= 	=	E;	'	' T'--dN/00 	8$++---77	8 	8 RSSSr   pd.Timestampc                     t          t          j                  t          d          k    r$t          j        | i |                    d          S t          j        | i |S )zReturn a nanosecond-precision Timestamp object.

    Note this function should no longer be needed after addressing GitHub issue
    #7493.
    z2.0.0ns)r   r%   __version__	Timestampas_unit)r   kwargss     r   nanosecond_precision_timestampr<   a   sY     r~''"2"222|T,V,,44T:::|T,V,,,r   )r   r	   )r   r5   )
__future__r   enumr   typingr   pandasr%   packaging.versionr   xarray.codingr   r   r   r    	NoDefaultr4   r<   r   r   r   <module>rD      s   H # " " " " "                 % % % % % % ( ( ( ( ( (0 0 0 0       $   J)*	T T T&	- 	- 	- 	- 	- 	-r   