
    ˀh                        d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	m
Z
mZmZ ddlmZ e	rddlmZ ddlmZ e	 	 	 	 	 	 	 	 dd	       Ze	 	 	 	 	 	 	 	 dd
       Ze	 	 	 	 	 	 	 	 dd       Z	 	 	 	 	 	 	 	 ddZy)z'Utility for serializing Polars objects.    )annotations)BytesIOStringIO)Path)TYPE_CHECKINGCallableLiteraloverload)normalize_filepath)IOBase)SerializationFormatc                     y N 
serializerfileformats      o/var/www/html/wine-match-dev/backend/winematch-backend/venv/lib/python3.12/site-packages/polars/_utils/serde.pyserialize_polars_objectr      s         c                     y r   r   r   s      r   r   r      s     r   c                     y r   r   r   s      r   r   r      s    
 r   c                v    d fd}| |       }|dk(  r|j                         S |S t        |t              r' |       j                         }|j                  |       yt        |t              r |       }|j                  |       yt        |t
        t        f      rt        |      }  |       y  |       y)z5Serialize a Polars object (DataFrame/LazyFrame/Expr).c                 x    t               5 }  |        | j                         }d d d        |S # 1 sw Y   S xY wr   )r   getvalue)buf
serializedr   s     r   serialize_to_bytesz3serialize_polars_object.<locals>.serialize_to_bytes(   s<    Y 	(#sOJ	( 	( s   /9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>r1      s    - "    = = 42 
.6:DU
 
 
.6:DS 
 
.
   
	 
.
$   	r   