
    7Th                         S SK r S SKJr  S SKJr  S SKJrJrJrJ	r	J
r
JrJrJrJr  SSKJrJr  SSKJr   " S S	\ R(                  5      r " S
 S\ R,                  5      rg)    N)suppress)PurePath)	AnyCallableClassVarDictListMappingOptionalSequenceTuple   )_import_classget_filesystem_class)AbstractFileSystemc                   \   ^  \ rS rSr% Sr\\   \S'   S\S\4U 4S jjr	S\S\4S jr
S	rU =r$ )
FilesystemJSONEncoder   Tinclude_passwordoreturnc                   > [        U[        5      (       a  UR                  U R                  S9$ [        U[        5      (       a2  [        U5      nUR                   SUR                   3[        U5      S.$ [        TU ])  U5      $ )N)r   .)clsstr)
isinstancer   to_dictr   r   type
__module____name__r   superdefault)selfr   r   	__class__s      C/var/www/auris/envauris/lib/python3.13/site-packages/fsspec/json.pyr"   FilesystemJSONEncoder.default   sp    a+,,99d.C.C9DDa""q'C!nn-Qs||n=c!fMMwq!!    objc                    [        U[        [        [        [        45      (       a  U$ [        U[
        5      (       a4  UR                  5        VVs0 s H  u  p#X R                  U5      _M     snn$ [        U[        5      (       a!  U Vs/ s H  o0R                  U5      PM     sn$ U R                  U5      $ s  snnf s  snf )z
Recursively converts an object so that it can be JSON serialized via
:func:`json.dumps` and :func:`json.dump`, without actually calling
said functions.
)
r   r   intfloatboolr
   itemsmake_serializabler   r"   r#   r(   kvs       r%   r.   'FilesystemJSONEncoder.make_serializable    s     cCeT233Jc7##=@YY[I[TQA--a00[IIc8$$7:;s!**1-s;;||C  	 J;s   B8
B> )r    r   __qualname____firstlineno__r   r   r,   __annotations__r   r"   r.   __static_attributes____classcell__r$   s   @r%   r   r      s=    '+htn+" " "!S !S ! !r'   r   c                   <  ^  \ rS rSrSSSSSSS.S\\\\\4   /\4      S\\\/\4      S\\\/\4      S\\\/\4      S	\	S
\\\
\\\4      /\4      SS4U 4S jjjr\S\\\4   4S j5       r\S\\\4   4S j5       rS\\\4   4S jrS\S\4S jrSrU =r$ )FilesystemJSONDecoder0   NTobject_hookparse_float	parse_intparse_constantstrictobject_pairs_hookr>   r?   r@   rA   rB   rC   r   c          	      J   > Xl         [        TU ]	  U R                  UUUUUS9  g )Nr=   )original_object_hookr!   __init__custom_object_hook)r#   r>   r?   r@   rA   rB   rC   r$   s          r%   rF   FilesystemJSONDecoder.__init__1   s5     %0!//#)/ 	 	
r'   dctc                     [        [        5         US   n[        U5      n[        U[        5      (       a  UsS S S 5        $  S S S 5        g ! , (       d  f       g = f)Nr   )r   	Exceptionr   
issubclassr   )r   rI   fqppath_clss       r%   try_resolve_path_cls*FilesystemJSONDecoder.try_resolve_path_clsF   sR    i e*C$S)H(H-- ! 
 . !  !  s   'A
Ac                    [        [        5         SU;   a0   [        US   5      n[        U[        5      (       a  UsS S S 5        $  S S S 5        g ! [         a!    SU;   a  [        US   5      s sS S S 5        $ e f = f! , (       d  f       g = f)Nr   protocol)r   rK   r   rL   r   r   )r   rI   fs_clss      r%   try_resolve_fs_cls(FilesystemJSONDecoder.try_resolve_fs_clsR   s    i |*3u:6F!&*<==% !  >	 !  ! !S(3C
ODD !  	 !  s.   A>$AA>A;.A>9A;;A>>
Bc                     SU;   aI  U R                  U5      =nb  [        R                  " U5      $ U R                  U5      =nb  U" US   5      $ U R                  b  U R	                  U5      $ U$ )Nr   r   )rT   r   	from_dictrO   rE   )r#   rI   obj_clss      r%   rG   (FilesystemJSONDecoder.custom_object_hookb   sw    C<22377D)33C8844S99Fs5z**$$0,,S11
r'   r(   c                 r   [        U[        5      (       a  U R                  U5      n[        U[        5      (       a4  UR                  5        VVs0 s H  u  p#X R	                  U5      _M     snn$ [        U[
        [        45      (       a!  U Vs/ s H  o0R	                  U5      PM     sn$ U$ s  snnf s  snf )zF
Inverse function of :meth:`FilesystemJSONEncoder.make_serializable`.
)r   dictrG   r-   unmake_serializablelisttupler/   s       r%   r\   )FilesystemJSONDecoder.unmake_serializablen   s     c4  ))#.Cc4  ?Byy{K{tqA//22{KKcD%=))9<=A,,Q/==
	 L=s   B.B4)rE   )r    r   r4   r5   r   r   r   r   r   r,   r	   r   rF   classmethodrO   rT   rG   r\   r7   r8   r9   s   @r%   r;   r;   0   sD    BF6:489=NR
 hS#X'7'<=>
 hucz23	

 HcUCZ01
 !3%*!56
 
 $Hd5c?.C-Dc-I$JK
 

 
* 	tCH~ 	 	 T#s(^  
d38n 
s s  r'   r;   )json
contextlibr   pathlibr   typingr   r   r   r   r	   r
   r   r   r   registryr   r   specr   JSONEncoderr   JSONDecoderr;   r3   r'   r%   <module>ri      sK      
 
 
 : $!D,, !8ID,, Ir'   