
    	`i                    "   d dl mZ d dlZd dlmZmZmZmZ ddl	m
ZmZmZ erd dlmZmZmZmZmZ d dlmZ dZd	 Zd
 Zd Zdddd'dZ ed          Zedddd(d            Zed ddd!d)d$            Zed ddd!d*d%            Zeddd!d&ZdS )+    )annotationsN)TYPE_CHECKINGAnyTypeVaroverload   )DecodeErrorconvertto_builtins)CallableLiteralOptionalTypeUnion)Buffer)encodedecodec                     t           S N)__all__     `/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/msgspec/toml.py__dir__r      s    Nr   c                 z    	 dd l } | S # t          $ r Y nw xY w	 dd l}|S # t          $ r t          d          d w xY w)Nr   z`msgspec.toml.decode` requires `tomli` be installed.

Please either `pip` or `conda` install it as follows:

  $ python -m pip install tomli   # using pip
  $ conda install tomli           # or using conda)tomllibImportErrortomli)r   r   s     r   _import_tomllibr      s       
   A
 

 	s    
 :c                 L    	 dd l } | S # t          $ r t          d          d w xY w)Nr   z`msgspec.toml.encode` requires `tomli_w` be installed.

Please either `pip` or `conda` install it as follows:

  $ python -m pip install tomli_w   # using pip
  $ conda install tomli_w           # or using conda)tomli_wr   )r!   s    r   _import_tomli_wr"   .   sM    
   C
 

 	s    #)enc_hookorderobjr   r#   Optional[Callable[[Any], Any]]r$   (Literal[None, 'deterministic', 'sorted']returnbytesc                   t                      }t          | t          j        t          j        t          j        fd||          }|                    |                              d          S )a  Serialize an object as TOML.

    Parameters
    ----------
    obj : Any
        The object to serialize.
    enc_hook : callable, optional
        A callable to call for objects that aren't supported msgspec types.
        Takes the unsupported object and should return a supported object, or
        raise a ``NotImplementedError`` if unsupported.
    order : {None, 'deterministic', 'sorted'}, optional
        The ordering to use when encoding unordered compound types.

        - ``None``: All objects are encoded in the most efficient manner
          matching their in-memory representations. The default.
        - `'deterministic'`: Unordered collections (sets, dicts) are sorted to
          ensure a consistent output between runs. Useful when
          comparison/hashing of the encoded binary output is necessary.
        - `'sorted'`: Like `'deterministic'`, but *all* object-like types
          (structs, dataclasses, ...) are also sorted by field name before
          encoding. This is slower than `'deterministic'`, but may produce more
          human-readable output.

    Returns
    -------
    data : bytes
        The serialized object.

    See Also
    --------
    decode
    T)builtin_typesstr_keysr#   r$   utf-8)r"   _to_builtins	_datetimedatetimedatetimedumpsr   )r%   r#   r$   tomlmsgs        r   r   r   <   sa    L D
 )9>9>J  C ::c??!!'***r   TT)strictdec_hookbufUnion[Buffer, str]r7   boolr8   $Optional[Callable[[type, Any], Any]]c                   d S r   r   )r9   r7   r8   s      r   r   r   p   s	     	Dr   .)typer7   r8   r>   Type[T]c                   d S r   r   r9   r>   r7   r8   s       r   r   r   z   	     	Dr   c                   d S r   r   rA   s       r   r   r      rB   r   c                  t                      }t          | t                    r| }nat          | t          t          f          r|                     d          }n/t          t          |                                         d          }	 |                    |          }n/# |j        $ r"}t          t          |                    dd}~ww xY w|t          u r|S t          ||t          j        t          j        t          j        fd||          S )a  Deserialize an object from TOML.

    Parameters
    ----------
    buf : bytes-like or str
        The message to decode.
    type : type, optional
        A Python type (in type annotation form) to decode the object as. If
        provided, the message will be type checked and decoded as the specified
        type. Defaults to `Any`, in which case the message will be decoded
        using the default TOML types.
    strict : bool, optional
        Whether type coercion rules should be strict. Setting to False enables
        a wider set of coercion rules from string to non-string types for all
        values. Default is True.
    dec_hook : callable, optional
        An optional callback for handling decoding custom types. Should have
        the signature ``dec_hook(type: Type, obj: Any) -> Any``, where ``type``
        is the expected message type, and ``obj`` is the decoded representation
        composed of only basic TOML types. This hook should transform ``obj``
        into type ``type``, or raise a ``NotImplementedError`` if unsupported.

    Returns
    -------
    obj : Any
        The deserialized object.

    See Also
    --------
    encode
    r-   NT)r+   r,   r7   r8   )r   
isinstancestrr)   	bytearrayr   
memoryviewloadsTOMLDecodeError_DecodeErrorr   _convertr/   r0   r1   r2   )r9   r>   r7   r8   r4   str_bufr%   excs           r   r   r      s   @ D#s 9	C%+	,	, 9**W%% 
3((//88/jj!! / / /3s88$$$./ s{{
 )9>9>J   s   	B 
C)CC)r%   r   r#   r&   r$   r'   r(   r)   )r9   r:   r7   r;   r8   r<   r(   r   )
r9   r:   r>   r?   r7   r;   r8   r<   r(   r6   )
r9   r:   r>   r   r7   r;   r8   r<   r(   r   )
__future__r   r0   r/   typingr   r   r   r    r	   rK   r
   rL   r   r.   r   r   r   r   r   typing_extensionsr   r   r   r   r"   r   r6   r   r   r   r   <module>rS      s   " " " " " "     8 8 8 8 8 8 8 8 8 8 8 8           )??????????????((((((     *  " 046:	.+ .+ .+ .+ .+ .+b GCLL 
 59		 	 	 	 	 
	 
 59	 	 	 	 	 
	 
 59	 	 	 	 	 
	 D4 6 6 6 6 6 6 6r   