
    tfI
                         d dl Z d dlmZ d dlmZ d dlmZmZmZm	Z	m
Z
mZ ddlmZmZ ddlmZ  G d d	e j"                        Z G d
 de j&                        Zy)    N)suppress)PurePath)AnyCallableDictListOptionalTuple   )_import_classget_filesystem_class)AbstractFileSystemc                   (     e Zd Zdedef fdZ xZS )FilesystemJSONEncoderoreturnc                     t        |t              r|j                         S t        |t              r2t	        |      }|j
                   d|j                   t        |      dS t        | %  |      S )N.)clsstr)

isinstancer   to_dictr   type
__module____name__r   superdefault)selfr   r   	__class__s      U/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/fsspec/json.pyr   zFilesystemJSONEncoder.default   s_    a+,99;a"q'C!nn-Qs||n=c!fMMwq!!    )r   r   __qualname__r   r   __classcell__r   s   @r    r   r   
   s    " " " "r!   r   c                       e Zd Zddddddddeeeeef   gef      deeegef      deeegef      deeegef      ded	eee	e
eef      gef      d
df fdZedeeef   fd       Zedeeef   fd       Zdeeef   fdZ xZS )FilesystemJSONDecoderNTobject_hookparse_float	parse_intparse_constantstrictobject_pairs_hookr(   r)   r*   r+   r,   r-   r   c                R    || _         t        | 	  | j                  |||||       y )Nr'   )original_object_hookr   __init__custom_object_hook)r   r(   r)   r*   r+   r,   r-   r   s          r    r0   zFilesystemJSONDecoder.__init__   s7     %0!//#)/ 	 	
r!   dctc                     t        t              5  |d   }t        |      }t        |t              r|cd d d        S 	 d d d        y # 1 sw Y   y xY w)Nr   )r   	Exceptionr   
issubclassr   )r   r2   fqppath_clss       r    try_resolve_path_clsz*FilesystemJSONDecoder.try_resolve_path_cls+   sS    i  	 e*C$S)H(H-	  	 
 .	  	  s   "AAc                     t        t              5  d|v r+	 t        |d         }t        |t              r|cd d d        S 	 d d d        y # t        $ r d|v rt        |d         cY cd d d        S  w xY w# 1 sw Y   y xY w)Nr   protocol)r   r4   r   r5   r   r   )r   r2   fs_clss      r    try_resolve_fs_clsz(FilesystemJSONDecoder.try_resolve_fs_cls7   s    i  
	|*3u:6F!&*<=%
	 
	 >	
	  ! !S(3C
ODD
	 
	 	
	 s-   A4A	A4	A1$A4/A11A44A=c                     d|v rF| j                  |      x}t        j                  |      S | j                  |      x} ||d         S | j                  | j	                  |      S |S )Nr   r   )r<   r   	from_dictr8   r/   )r   r2   obj_clss      r    r1   z(FilesystemJSONDecoder.custom_object_hookG   sw    C<22377D)33C8844S99Fs5z**$$0,,S11
r!   )r   r   r"   r	   r   r   r   r   boolr   r
   r0   classmethodr8   r<   r1   r#   r$   s   @r    r&   r&      s'    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 
r!   r&   )json
contextlibr   pathlibr   typingr   r   r   r   r	   r
   registryr   r   specr   JSONEncoderr   JSONDecoderr&    r!   r    <module>rK      s>       = = 9 $"D,, "<D,, <r!   