
     #e                        d dl mZ d dlZd dlmZmZmZ d dlmZm	Z	 d dl
mZmZ d dlmZmZ dZ	 d dlZdZ	 	 d	 	 	 	 	 	 	 	 	 dd	Zdd
Z	 	 d	 	 	 	 	 	 	 	 	 	 	 ddZddZy# e$ r Y 2w xY w)    )annotationsN)AnyBinaryIOType)	structureunstructure)
read_byteswrite_bytes)PathLikeTFTc                l   t        |       }t        rx|6|dk7  rt        d      |j                  dd      t        j
                  z  |d<   |r&|j                  dd      t        j                  z  |d<   t	        j                  |fi |}|S t        j                  |f||d|}|j                  d      }|S )N   z#indent must be 2 or None for orjsonoptionr   indent	sort_keyszutf-8)
r   have_orjson
ValueErrorpoporjsonOPT_INDENT_2OPT_SORT_KEYSdumpsjsonencode)objr   r   kwargsdataresultss          4/usr/lib/python3/dist-packages/ufoLib2/serde/json.pyr   r      s     sD{ !FGG%zz(A69L9LLF8%zz(A69M9MMF8d-f-
 M JJtJFiJ6J'"M    c                    t         rt        j                  | fi |}nt        j                  | fi |}t	        ||      S N)r   r   loadsr   r   )r    object_classr   r   s       r!   r%   r%   +   s8    ||A((zz!&v&T<((r"   c           	     6    t        |t        | f||d|       y )Nr   )r
   r   )r   fpr   r   r   s        r!   dumpr)   3   s     E#Lf	LVLMr"   c                .    t        t        |       |fi |S r$   )r%   r	   )r(   r&   r   s      r!   loadr+   =   s    B888r"   )NF)
r   r   r   
int | Noner   boolr   r   returnbytes)r    zstr | bytesr&   Type[T]r   r   r.   r   )r   r   r(   PathLike | BinaryIOr   r,   r   r-   r   r   r.   None)r(   r1   r&   r0   r   r   r.   r   )
__future__r   r   typingr   r   r   ufoLib2.convertersr   r   ufoLib2.serde.utilr	   r
   ufoLib2.typingr   r   r   r   ImportErrorr   r%   r)   r+    r"   r!   <module>r:      s    "  & & 5 6 &	K 	  	
 0) 	N	NN N 	N
 N 
N9]  		s   A! !A)(A)