
    h                    ^   S SK Jr  S SKrS SKJrJrJrJr  SSK	J
rJrJr  \(       a  S SKJrJrJrJrJr  S SKJr  SrS	 rS
 rSSS.       SS jjr\" S5      r\SSS.       SS jj5       r\SSSS.         SS jj5       r\SSSS.         SS jj5       r\SSS.S jrg)    )annotationsN)TYPE_CHECKINGoverloadTypeVarAny   )DecodeErrorconvertto_builtins)CallableOptionalTypeUnionLiteral)Buffer)encodedecodec                     [         $ N)__all__     F/home/james-whalen/.local/lib/python3.13/site-packages/msgspec/yaml.py__dir__r      s    Nr   c                L     SS K nU$ ! [         a    [        SU  S35      S ef = f)Nr   z`msgspec.yaml.z` requires PyYAML be installed.

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

  $ python -m pip install pyyaml  # using pip
  $ conda install pyyaml          # or using conda)yamlImportError)namer   s     r   _import_pyyamlr      sG    
   TF #A A

 	s    #)enc_hookorderc          	         [        S5      n[        USUR                  5      nUR                  [	        U [
        R                  [
        R                  4UUS9/SUSSS9$ )a  Serialize an object as YAML.

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.

Notes
-----
This function requires that the third-party `PyYAML library
<https://pyyaml.org/>`_ is installed.

See Also
--------
decode
r   CSafeDumper)builtin_typesr    r!   zutf-8TF)encodingDumperallow_unicode	sort_keys)r   getattr
SafeDumperdump_all_to_builtins	_datetimedatetimedate)objr    r!   r   r&   s        r   r   r   &   sm    V (#DT=$//:F==(119>>B!		
    r   TT)strictdec_hookc                   g r   r   )bufr2   r3   s      r   r   r   h   s     	r   .)typer2   r3   c                   g r   r   r5   r6   r2   r3   s       r   r   r   r        	r   c                   g r   r   r8   s       r   r   r   }   r9   r   c                  [        S5      n[        USUR                  5      n[        U [        [
        45      (       d  [        [        U 5      5      n  UR                  X5      nU[        L a  U$ [        UU[        R                  [        R                  4UUS9$ ! UR                   a  n[        [	        U5      5      SeSnAff = f)a  Deserialize an object from YAML.

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 YAML 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 YAML types. This hook should transform ``obj``
    into type ``type``, or raise a ``NotImplementedError`` if unsupported.

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

Notes
-----
This function requires that the third-party `PyYAML library
<https://pyyaml.org/>`_ is installed.

See Also
--------
encode
r   CSafeLoaderN)r$   r2   r3   )r   r)   
SafeLoader
isinstancestrbytes
memoryviewload	YAMLError_DecodeErrorr   _convertr-   r.   r/   )r5   r6   r2   r3   r   Loaderr0   excs           r   r   r      s    J (#DT=$//:FcC<((JsO$/ii$ s{
 ))9>>:  >> /3s8$$./s   B C*B??C)r0   r   r    zOptional[Callable[[Any], Any]]r!   z(Literal[None, 'deterministic', 'sorted']returnr@   )r5   zUnion[Buffer, str]r2   boolr3   $Optional[Callable[[type, Any], Any]]rH   r   )
r5   Union[bytes, str]r6   zType[T]r2   rI   r3   rJ   rH   r1   )
r5   rK   r6   r   r2   rI   r3   rJ   rH   r   )
__future__r   r.   r-   typingr   r   r   r    r	   rD   r
   rE   r   r,   r   r   r   r   r   typing_extensionsr   r   r   r   r   r1   r   r   r   r   <module>rP      sg   "  8 8  ??( " 046:	<	< -< 4	<
 <~ CL 
 59				 	 3		
 		 
	 
 59			 	 		
 3	 	 
	 
 59			 	 		
 3	 		 
	 D4 8r   