
    `VgKC                    ,   d Z ddlmZ ddlZddlmZ ddlmZmZ  G d de	      Z
 G d d	e	      Z G d
 de      Z G d de	      Z G d de      Z G d de	      Z G d de      Z G d de	      Z G d de      Z G d de	      Z G d de      Z G d de      Z G d de      Z G d  d!e	      Z G d" d#e      Z G d$ d%e      Z G d& d'e      Z G d( d)e	      Z G d* d+e      Z  G d, d-e!      Z" G d. d/e!      Z# G d0 d1e      Z$ G d2 d3e%      Z& G d4 d5e&      Z' G d6 d7e(      Z) G d8 d9e      Z* G d: d;e      Z+ G d< d=e      Z, G d> d?e      Z- G d@ dAe.      Z/ G dB dCe      Z0 G dD dEe      Z1 G dF dGe      Z2 G dH dIe      Z3g dJZ4y)Kz%
Expose public exceptions & warnings
    )annotationsN)OptionError)OutOfBoundsDatetimeOutOfBoundsTimedeltac                      e Zd ZdZy)IntCastingNaNErrorz]
    Exception raised when converting (``astype``) an array with NaN to an integer type.
    N__name__
__module____qualname____doc__     W/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/pandas/errors/__init__.pyr   r          r   r   c                      e Zd ZdZy)NullFrequencyErrorz
    Exception raised when a ``freq`` cannot be null.

    Particularly ``DatetimeIndex.shift``, ``TimedeltaIndex.shift``,
    ``PeriodIndex.shift``.
    Nr	   r   r   r   r   r          r   r   c                      e Zd ZdZy)PerformanceWarningzE
    Warning raised when there is a possible performance impact.
    Nr	   r   r   r   r   r      r   r   r   c                      e Zd ZdZy)UnsupportedFunctionCallz
    Exception raised when attempting to call a unsupported numpy function.

    For example, ``np.cumsum(groupby_object)``.
    Nr	   r   r   r   r   r   %       r   r   c                      e Zd ZdZy)UnsortedIndexErrorzk
    Error raised when slicing a MultiIndex which has not been lexsorted.

    Subclass of `KeyError`.
    Nr	   r   r   r   r   r   -   r   r   r   c                      e Zd ZdZy)ParserErrorao  
    Exception that is raised by an error encountered in parsing file contents.

    This is a generic error raised for errors encountered when functions like
    `read_csv` or `read_html` are parsing contents of a file.

    See Also
    --------
    read_csv : Read CSV (comma-separated) file into a DataFrame.
    read_html : Read HTML table into a DataFrame.
    Nr	   r   r   r   r   r   5       
r   r   c                      e Zd ZdZy)DtypeWarninga  
    Warning raised when reading different dtypes in a column from a file.

    Raised for a dtype incompatibility. This can happen whenever `read_csv`
    or `read_table` encounter non-uniform dtypes in a column(s) of a given
    CSV file.

    See Also
    --------
    read_csv : Read CSV (comma-separated) file into a DataFrame.
    read_table : Read general delimited file into a DataFrame.

    Notes
    -----
    This warning is issued when dealing with larger files because the dtype
    checking happens per chunk read.

    Despite the warning, the CSV file is read with mixed types in a single
    column which will be an object type. See the examples below to better
    understand this issue.

    Examples
    --------
    This example creates and reads a large CSV file with a column that contains
    `int` and `str`.

    >>> df = pd.DataFrame({'a': (['1'] * 100000 + ['X'] * 100000 +
    ...                          ['1'] * 100000),
    ...                    'b': ['b'] * 300000})  # doctest: +SKIP
    >>> df.to_csv('test.csv', index=False)  # doctest: +SKIP
    >>> df2 = pd.read_csv('test.csv')  # doctest: +SKIP
    ... # DtypeWarning: Columns (0) have mixed types

    Important to notice that ``df2`` will contain both `str` and `int` for the
    same input, '1'.

    >>> df2.iloc[262140, 0]  # doctest: +SKIP
    '1'
    >>> type(df2.iloc[262140, 0])  # doctest: +SKIP
    <class 'str'>
    >>> df2.iloc[262150, 0]  # doctest: +SKIP
    1
    >>> type(df2.iloc[262150, 0])  # doctest: +SKIP
    <class 'int'>

    One way to solve this issue is using the `dtype` parameter in the
    `read_csv` and `read_table` functions to explicit the conversion:

    >>> df2 = pd.read_csv('test.csv', sep=',', dtype={'a': str})  # doctest: +SKIP

    No warning was issued.
    Nr	   r   r   r   r    r    C   s    3r   r    c                      e Zd ZdZy)EmptyDataErrorzW
    Exception raised in ``pd.read_csv`` when empty data or header is encountered.
    Nr	   r   r   r   r"   r"   z   r   r   r"   c                      e Zd ZdZy)ParserWarninga9  
    Warning raised when reading a file that doesn't use the default 'c' parser.

    Raised by `pd.read_csv` and `pd.read_table` when it is necessary to change
    parsers, generally from the default 'c' parser to 'python'.

    It happens due to a lack of support or functionality for parsing a
    particular attribute of a CSV file with the requested engine.

    Currently, 'c' unsupported options include the following parameters:

    1. `sep` other than a single character (e.g. regex separators)
    2. `skipfooter` higher than 0
    3. `sep=None` with `delim_whitespace=False`

    The warning can be avoided by adding `engine='python'` as a parameter in
    `pd.read_csv` and `pd.read_table` methods.

    See Also
    --------
    pd.read_csv : Read CSV (comma-separated) file into DataFrame.
    pd.read_table : Read general delimited file into DataFrame.

    Examples
    --------
    Using a `sep` in `pd.read_csv` other than a single character:

    >>> import io
    >>> csv = '''a;b;c
    ...           1;1,8
    ...           1;2,1'''
    >>> df = pd.read_csv(io.StringIO(csv), sep='[;,]')  # doctest: +SKIP
    ... # ParserWarning: Falling back to the 'python' engine...

    Adding `engine='python'` to `pd.read_csv` removes the Warning:

    >>> df = pd.read_csv(io.StringIO(csv), sep='[;,]', engine='python')
    Nr	   r   r   r   r$   r$      s    %r   r$   c                      e Zd ZdZy)
MergeErrorzN
    Exception raised when merging data.

    Subclass of ``ValueError``.
    Nr	   r   r   r   r&   r&      r   r   r&   c                      e Zd ZdZy)AccessorRegistrationWarningzC
    Warning for attribute conflicts in accessor registration.
    Nr	   r   r   r   r(   r(      r   r   r(   c                  "    e Zd ZdZdddZddZy)AbstractMethodErrorzO
    Raise this error instead of NotImplementedError for abstract methods.
    c                T    h d}||vrt        d| d| d      || _        || _        y )N>   methodpropertyclassmethodstaticmethodzmethodtype must be one of z, got z	 instead.)
ValueError
methodtypeclass_instance)selfr2   r1   typess       r   __init__zAbstractMethodError.__init__   s?    EU",ZLugYO  %,r   c                    | j                   dk(  r| j                  j                  }nt        | j                        j                  }d| j                    d| S )Nr.   zThis z' must be defined in the concrete class )r1   r2   r
   type)r3   names     r   __str__zAbstractMethodError.__str__   sN    ??m+&&//D++,55Dt''NtfUUr   N)r,   )r1   strreturnNone)r;   r:   )r
   r   r   r   r5   r9   r   r   r   r*   r*      s    -Vr   r*   c                      e Zd ZdZy)NumbaUtilErrorz=
    Error raised for unsupported Numba engine routines.
    Nr	   r   r   r   r>   r>      r   r   r>   c                      e Zd ZdZy)DuplicateLabelErrora  
    Error raised when an operation would introduce duplicate labels.

    .. versionadded:: 1.2.0

    Examples
    --------
    >>> s = pd.Series([0, 1, 2], index=['a', 'b', 'c']).set_flags(
    ...     allows_duplicate_labels=False
    ... )
    >>> s.reindex(['a', 'a', 'b'])
    Traceback (most recent call last):
       ...
    DuplicateLabelError: Index has duplicates.
          positions
    label
    a        [0, 1]
    Nr	   r   r   r   r@   r@          r   r@   c                      e Zd ZdZy)InvalidIndexErrorzd
    Exception raised when attempting to use an invalid index key.

    .. versionadded:: 1.1.0
    Nr	   r   r   r   rC   rC      r   r   rC   c                      e Zd ZdZy)	DataErrorz
    Exceptionn raised when performing an operation on non-numerical data.

    For example, calling ``ohlc`` on a non-numerical column or a function
    on a rolling window.
    Nr	   r   r   r   rE   rE      r   r   rE   c                      e Zd ZdZy)SpecificationErrora  
    Exception raised by ``agg`` when the functions are ill-specified.

    The exception raised in two scenarios.

    The first way is calling ``agg`` on a
    Dataframe or Series using a nested renamer (dict-of-dict).

    The second way is calling ``agg`` on a Dataframe with duplicated functions
    names without assigning column name.

    Examples
    --------
    >>> df = pd.DataFrame({'A': [1, 1, 1, 2, 2],
    ...                    'B': range(5),
    ...                    'C': range(5)})
    >>> df.groupby('A').B.agg({'foo': 'count'}) # doctest: +SKIP
    ... # SpecificationError: nested renamer is not supported

    >>> df.groupby('A').agg({'B': {'foo': ['sum', 'max']}}) # doctest: +SKIP
    ... # SpecificationError: nested renamer is not supported

    >>> df.groupby('A').agg(['min', 'min']) # doctest: +SKIP
    ... # SpecificationError: nested renamer is not supported
    Nr	   r   r   r   rG   rG      s    r   rG   c                      e Zd ZdZy)SettingWithCopyErrora  
    Exception raised when trying to set on a copied slice from a ``DataFrame``.

    The ``mode.chained_assignment`` needs to be set to set to 'raise.' This can
    happen unintentionally when chained indexing.

    For more information on eveluation order,
    see :ref:`the user guide<indexing.evaluation_order>`.

    For more information on view vs. copy,
    see :ref:`the user guide<indexing.view_versus_copy>`.

    Examples
    --------
    >>> pd.options.mode.chained_assignment = 'raise'
    >>> df = pd.DataFrame({'A': [1, 1, 1, 2, 2]}, columns=['A'])
    >>> df.loc[0:3]['A'] = 'a' # doctest: +SKIP
    ... # SettingWithCopyError: A value is trying to be set on a copy of a...
    Nr	   r   r   r   rI   rI         r   rI   c                      e Zd ZdZy)SettingWithCopyWarninga  
    Warning raised when trying to set on a copied slice from a ``DataFrame``.

    The ``mode.chained_assignment`` needs to be set to set to 'warn.'
    'Warn' is the default option. This can happen unintentionally when
    chained indexing.

    For more information on eveluation order,
    see :ref:`the user guide<indexing.evaluation_order>`.

    For more information on view vs. copy,
    see :ref:`the user guide<indexing.view_versus_copy>`.

    Examples
    --------
    >>> df = pd.DataFrame({'A': [1, 1, 1, 2, 2]}, columns=['A'])
    >>> df.loc[0:3]['A'] = 'a' # doctest: +SKIP
    ... # SettingWithCopyWarning: A value is trying to be set on a copy of a...
    Nr	   r   r   r   rL   rL   +  rJ   r   rL   c                      e Zd ZdZy)NumExprClobberingErrora  
    Exception raised when trying to use a built-in numexpr name as a variable name.

    ``eval`` or ``query`` will throw the error if the engine is set
    to 'numexpr'. 'numexpr' is the default engine value for these methods if the
    numexpr package is installed.

    Examples
    --------
    >>> df = pd.DataFrame({'abs': [1, 1, 1]})
    >>> df.query("abs > 2") # doctest: +SKIP
    ... # NumExprClobberingError: Variables in expression "(abs) > (2)" overlap...
    >>> sin, a = 1, 2
    >>> pd.eval("sin + a", engine='numexpr') # doctest: +SKIP
    ... # NumExprClobberingError: Variables in expression "(sin) + (a)" overlap...
    Nr	   r   r   r   rN   rN   A      r   rN   c                  &     e Zd ZdZdd fdZ xZS )UndefinedVariableErrora$  
    Exception raised by ``query`` or ``eval`` when using an undefined variable name.

    It will also specify whether the undefined variable is local or not.

    Examples
    --------
    >>> df = pd.DataFrame({'A': [1, 1, 1]})
    >>> df.query("A > x") # doctest: +SKIP
    ... # UndefinedVariableError: name 'x' is not defined
    >>> df.query("A > @y") # doctest: +SKIP
    ... # UndefinedVariableError: local variable 'y' is not defined
    >>> pd.eval('x + 1') # doctest: +SKIP
    ... # UndefinedVariableError: name 'x' is not defined
    c                Z    t        |       d}|rd| }nd| }t        | 	  |       y )Nz is not definedzlocal variable zname )reprsuperr5   )r3   r8   is_localbase_msgmsg	__class__s        r   r5   zUndefinedVariableError.__init__e  s;    4j\1#H:.C($Cr   )N)r8   r:   rU   zbool | Noner;   r<   r
   r   r   r   r5   __classcell__rX   s   @r   rQ   rQ   T  s      r   rQ   c                      e Zd ZdZy)IndexingErrora  
    Exception is raised when trying to index and there is a mismatch in dimensions.

    Examples
    --------
    >>> df = pd.DataFrame({'A': [1, 1, 1]})
    >>> df.loc[..., ..., 'A'] # doctest: +SKIP
    ... # IndexingError: indexer may only contain one '...' entry
    >>> df = pd.DataFrame({'A': [1, 1, 1]})
    >>> df.loc[1, ..., ...] # doctest: +SKIP
    ... # IndexingError: Too many indexers
    >>> df[pd.Series([True], dtype=bool)] # doctest: +SKIP
    ... # IndexingError: Unalignable boolean Series provided as indexer...
    >>> s = pd.Series(range(2),
    ...               index = pd.MultiIndex.from_product([["a", "b"], ["c"]]))
    >>> s.loc["a", "c", "d"] # doctest: +SKIP
    ... # IndexingError: Too many indexers
    Nr	   r   r   r   r]   r]   n  rA   r   r]   c                      e Zd ZdZy)PyperclipExceptionz
    Exception raised when clipboard functionality is unsupported.

    Raised by ``to_clipboard()`` and ``read_clipboard()``.
    Nr	   r   r   r   r_   r_     r   r   r_   c                  $     e Zd ZdZd fdZ xZS )PyperclipWindowsExceptionz
    Exception raised when clipboard functionality is unsupported by Windows.

    Access to the clipboard handle would be denied due to some other
    window process is accessing it.
    c                Z    |dt        j                          dz  }t        |   |       y )Nz ())ctypesWinErrorrT   r5   )r3   messagerX   s     r   r5   z"PyperclipWindowsException.__init__  s+    R)*!,,!r   )rf   r:   r;   r<   rY   r[   s   @r   ra   ra     s    " "r   ra   c                      e Zd ZdZy)
CSSWarninga  
    Warning is raised when converting css styling fails.

    This can be due to the styling not having an equivalent value or because the
    styling isn't properly formatted.

    Examples
    --------
    >>> df = pd.DataFrame({'A': [1, 1, 1]})
    >>> df.style.applymap(lambda x: 'background-color: blueGreenRed;')
    ...         .to_excel('styled.xlsx') # doctest: +SKIP
    ... # CSSWarning: Unhandled color format: 'blueGreenRed'
    >>> df.style.applymap(lambda x: 'border: 1px solid red red;')
    ...         .to_excel('styled.xlsx') # doctest: +SKIP
    ... # CSSWarning: Too many tokens provided to "border" (expected 1-3)
    Nr	   r   r   r   rh   rh     rO   r   rh   c                      e Zd ZdZy)PossibleDataLossErrora&  
    Exception raised when trying to open a HDFStore file when already opened.

    Examples
    --------
    >>> store = pd.HDFStore('my-store', 'a') # doctest: +SKIP
    >>> store.open("w") # doctest: +SKIP
    ... # PossibleDataLossError: Re-opening the file [my-store] with mode [a]...
    Nr	   r   r   r   rj   rj         r   rj   c                      e Zd ZdZy)ClosedFileErrora8  
    Exception is raised when trying to perform an operation on a closed HDFStore file.

    Examples
    --------
    >>> store = pd.HDFStore('my-store', 'a') # doctest: +SKIP
    >>> store.close() # doctest: +SKIP
    >>> store.keys() # doctest: +SKIP
    ... # ClosedFileError: my-store file is not open!
    Nr	   r   r   r   rm   rm         	r   rm   c                      e Zd ZdZy)IncompatibilityWarningzX
    Warning raised when trying to use where criteria on an incompatible HDF5 file.
    Nr	   r   r   r   rp   rp     r   r   rp   c                      e Zd ZdZy)AttributeConflictWarninga$  
    Warning raised when index attributes conflict when using HDFStore.

    Occurs when attempting to append an index with a different
    name than the existing index on an HDFStore or attempting to append an index with a
    different frequency than the existing index on an HDFStore.
    Nr	   r   r   r   rr   rr     s    r   rr   c                      e Zd ZdZy)DatabaseErroraJ  
    Error is raised when executing sql with bad syntax or sql that throws an error.

    Examples
    --------
    >>> from sqlite3 import connect
    >>> conn = connect(':memory:')
    >>> pd.read_sql('select * test', conn) # doctest: +SKIP
    ... # DatabaseError: Execution failed on sql 'test': near "test": syntax error
    Nr	   r   r   r   rt   rt     rn   r   rt   c                      e Zd ZdZy)PossiblePrecisionLossa  
    Warning raised by to_stata on a column with a value outside or equal to int64.

    When the column value is outside or equal to the int64 value the column is
    converted to a float64 dtype.

    Examples
    --------
    >>> df = pd.DataFrame({"s": pd.Series([1, 2**53], dtype=np.int64)})
    >>> df.to_stata('test') # doctest: +SKIP
    ... # PossiblePrecisionLoss: Column converted from int64 to float64...
    Nr	   r   r   r   rv   rv         r   rv   c                      e Zd ZdZy)ValueLabelTypeMismatchaK  
    Warning raised by to_stata on a category column that contains non-string values.

    Examples
    --------
    >>> df = pd.DataFrame({"categories": pd.Series(["a", 2], dtype="category")})
    >>> df.to_stata('test') # doctest: +SKIP
    ... # ValueLabelTypeMismatch: Stata value labels (pandas categories) must be str...
    Nr	   r   r   r   ry   ry     rk   r   ry   c                      e Zd ZdZy)InvalidColumnNamea  
    Warning raised by to_stata the column contains a non-valid stata name.

    Because the column name is an invalid Stata variable, the name needs to be
    converted.

    Examples
    --------
    >>> df = pd.DataFrame({"0categories": pd.Series([2, 2])})
    >>> df.to_stata('test') # doctest: +SKIP
    ... # InvalidColumnName: Not all pandas column names were valid Stata variable...
    Nr	   r   r   r   r{   r{     rw   r   r{   c                      e Zd ZdZy)CategoricalConversionWarninga  
    Warning is raised when reading a partial labeled Stata file using a iterator.

    Examples
    --------
    >>> from pandas.io.stata import StataReader
    >>> with StataReader('dta_file', chunksize=2) as reader: # doctest: +SKIP
    ...   for i, block in enumerate(reader):
    ...      print(i, block))
    ... # CategoricalConversionWarning: One or more series with value labels...
    Nr	   r   r   r   r}   r}     r   r   r}   )%r*   r(   rr   r}   rm   rh   rt   rE   r    r@   r"   rp   r   r{   rC   r]   r&   r   r>   rN   r   r   r   r   r$   r   rj   rv   r_   ra   rI   rL   rG   rQ   r   r   ry   )5r   
__future__r   rd   pandas._config.configr   pandas._libs.tslibsr   r   r0   r   r   Warningr   r   KeyErrorr   r   r    r"   r$   r&   r(   NotImplementedErrorr*   	Exceptionr>   r@   rC   rE   rG   rI   rL   	NameErrorrN   rQ   r]   RuntimeErrorr_   ra   UserWarningrh   rj   rm   rp   rr   OSErrorrt   rv   ry   r{   r}   __all__r   r   r   <module>r      s   #  -   j  * 47 4nZ &G &R ' V- V,Y * *	 	  8: ,W ,Y &Y 4I * " 2 " &	I 	
i 
W w 
G 
G 	W 	 7 &r   