
    %e                    z    d 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lmZ 	 dddZddZddZddZd dZdS )!ztData marshalling utilities for ArrowTable protobufs, which are used by
CustomComponent for dataframe serialization.
    )annotations)AnyN)	type_util)pandas_styler_utils)
ArrowTableprotoArrowTableProtodatar   default_uuid
str | NonereturnNonec                    t          j        |          rt          j        | ||           t          j        |          }t          | |j                   t          | |j                   t          | |           dS )a:  Marshall data into an ArrowTable proto.

    Parameters
    ----------
    proto : proto.ArrowTable
        Output. The protobuf for a Streamlit ArrowTable proto.

    data : pandas.DataFrame, pandas.Styler, numpy.ndarray, Iterable, dict, or None
        Something that is or can be converted to a dataframe.

    N)
r   is_pandas_stylerr   marshall_stylerconvert_anything_to_df_marshall_indexindex_marshall_columnscolumns_marshall_data)r   r
   r   dfs       Glib/python3.11/site-packages/streamlit/components/v1/component_arrow.pymarshallr      sw     !$'' G+E4FFF		)$	/	/BE28$$$eRZ(((5"    r   pd.Indexc                    t          t          j        |j                  }t	          j        |          }t          j        |          | _        dS )aH  Marshall pandas.DataFrame index into an ArrowTable proto.

    Parameters
    ----------
    proto : proto.ArrowTable
        Output. The protobuf for a Streamlit ArrowTable proto.

    index : pd.Index
        Index to use for resulting frame.
        Will default to RangeIndex (0, 1, 2, ..., n) if no index is provided.

    N)mapr   maybe_tuple_to_listvaluespd	DataFramedata_frame_to_bytesr   )r   r   index_dfs      r   r   r   5   s=     	-u|<<E|E""H/99EKKKr   r   	pd.Seriesc                    t          t          j        |j                  }t	          j        |          }t          j        |          | _        dS )a[  Marshall pandas.DataFrame columns into an ArrowTable proto.

    Parameters
    ----------
    proto : proto.ArrowTable
        Output. The protobuf for a Streamlit ArrowTable proto.

    columns : Series
        Column labels to use for resulting frame.
        Will default to RangeIndex (0, 1, 2, ..., n) if no column labels are provided.

    N)r   r   r   r    r!   r"   r#   r   )r   r   
columns_dfs      r   r   r   G   s=     )/@@Gg&&J1*==EMMMr   r   pd.DataFramec                8    t          j        |          | _        dS )zMarshall pandas.DataFrame data into an ArrowTable proto.

    Parameters
    ----------
    proto : proto.ArrowTable
        Output. The protobuf for a Streamlit ArrowTable proto.

    df : pandas.DataFrame
        A dataframe to marshall.

    N)r   r#   r
   )r   r   s     r   r   r   Y   s     .r22EJJJr   c                   t          j        d          rt          d          t          j        | j                  }t          j        | j                  }t          j        | j                  }t          j        |j	        |j	        j
                                        |j	        j
                                                  S )zConvert ArrowTable proto to pandas.DataFrame.

    Parameters
    ----------
    proto : proto.ArrowTable
        Output. pandas.DataFrame

    z14.0.1zThe installed pyarrow version is not compatible with this component. Please upgrade to 14.0.1 or higher: pip install -U pyarrow)r   r   )r   is_pyarrow_version_less_thanRuntimeErrorbytes_to_data_framer
   r   r   r!   r"   r    Ttolist)r   r
   r   r   s       r   arrow_proto_to_dataframer0   h   s     -h77 
I
 
 	

 (44D)%+66E+EM::G<5<>0022GN<L<S<S<U<U   r   )N)r   r	   r
   r   r   r   r   r   )r   r	   r   r   r   r   )r   r	   r   r%   r   r   )r   r	   r   r(   r   r   )r   r	   r   r(   )__doc__
__future__r   typingr   pandasr!   	streamlitr   streamlit.elements.libr   streamlit.proto.Components_pb2r   r	   r   r   r   r   r0    r   r   <module>r9      s     # " " " " "                 6 6 6 6 6 6 H H H H H H CG    .: : : :$> > > >$3 3 3 3     r   