
    h                        S r SSKJr  SSKJrJr  SSKJr  SSKJ	r	J
r
JrJr  SSKJr  \	(       a  SSKJr  SSKJr  \        SS	 j5       r\        SS
 j5       r\        SS j5       r        SS jrg)z'Utility for serializing Polars objects.    )annotations)BytesIOStringIO)Path)TYPE_CHECKINGCallableLiteraloverload)normalize_filepath)IOBase)SerializationFormatc                    g N 
serializerfileformats      M/home/james-whalen/.local/lib/python3.13/site-packages/polars/_utils/serde.pyserialize_polars_objectr      s         c                    g r   r   r   s      r   r   r      s     r   c                    g r   r   r   s      r   r   r      s    
 r   c                  ^  SU 4S jjnUc  U" 5       nUS:X  a  UR                  5       $ U$ [        U[        5      (       a'  U" 5       R                  5       nUR                  U5        g[        U[        5      (       a  U" 5       nUR                  U5        g[        U[
        [        45      (       a  [        U5      nT " U5        gT " U5        g)z5Serialize a Polars object (DataFrame/LazyFrame/Expr).c                    > [        5        n T" U 5        U R                  5       nS S S 5        U$ ! , (       d  f       W$ = fr   )r   getvalue)buf
serializedr   s     r   serialize_to_bytes3serialize_polars_object.<locals>.serialize_to_bytes(   s9    Y#sOJ   Y s   /
>Njson)returnbytes)decode
isinstancer   writer   strr   r   )r   r   r   r   r   serialized_strs   `     r   r   r   !   s     |')
&,&6z  "FJF	D(	#	#+-446

>"	D'	"	"')


:	D3+	&	&!$'44r   N)r   Callable[[IOBase | str], None]r   Noner   zLiteral['binary']r"   r#   )r   r)   r   r*   r   zLiteral['json']r"   r'   )r   r)   r   zIOBase | str | Pathr   r   r"   r*   )r   r)   r   zIOBase | str | Path | Noner   r   r"   zbytes | str | None)__doc__
__future__r   ior   r   pathlibr   typingr   r   r	   r
   polars._utils.variousr   r   polars._typingr   r   r   r   r   <module>r2      s    - "    = = 42 
.6:DU
 
 
.6:DS 
 
.
   
	 
.
$   	r   