
    bi
5                        d dl Z d dlZd dlZd dlZd dlZdej
                  d<   dZ eej                        dgdz  z   Z	 e
d      Z edez        Zdd	Zd
 Zd Zd Zd Zd Zd Zd Zedk(  r e         e         e        yy)    NTrecursez_test_file.txt
(   zinvalid buffer sizez)[Errno 2] No such file or directory: '%s'c                    t        t        d      }t        |       D ]*  }|j                  t	        j
                  t                     , |j                          t        t        d      }|j                         }|j                          |S )Nwr)	openfnamerangewriterandomchoice
rand_charscloseread)numberficontentss       O/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dill/tests/test_file.pywrite_randomnessr      sd    UCA6] +	j)*+GGIUCAvvxHGGIO    c                  @    t        t        d      j                          y )Nr   )r	   r
   r    r   r   
trunc_filer   %   s    r   c                     	  | |  y# t        |      $ r1 t        j                         d   j                  |j                  k(  cY S w xY w)NF   )typesysexc_infoargs)opr!   excs      r   throwsr$   )   sH    
D	  9 2||~a %%112s    <AAc                  ~    t         j                  j                  t              rt        j                  t               y y )N)ospathexistsr
   remover   r   r   teardown_moduler*   2   s#    	ww~~e
		% r   c                 +   dd l }|r|j                         dk(  ry t                t        t        d      }t        j                  t        j                  ||            }|j                  |j                  k(  sJ |j                         |j                         k(  sJ |j                         |j                         k(  sJ |j                          |j                          t        t        d      }|j                  d       t        j                  ||      }|j                  }|j                         }|j                          t        j                  |      }	|	j                  }
|	j                         }|	j                  }|	j                  d       |	j                          |t
        j                  k(  r0t        t              j                         dk(  sJ |
|k(  sJ |dk(  sJ |t
        j                  k(  r;t        t              j                         dk(  sJ |
|k(  sJ ||k(  sJ |t        k(  sSJ |t
        j                   k(  r0t        t              j                         dk(  sJ |
|k(  sJ ||k(  sJ t#        d	|z        t%                t        t        d
      }|j                  d       t        j                  ||      }|j                  }|j                         }|j                          t        j                  |      }	|	j                  }
|	j                         }|	j                  d       |	j                          |
|k(  sJ |t
        j                  k(  r)t        t              j                         dk(  sJ ||k(  sJ |t
        j                  k(  r)t        t              j                         dk(  sJ ||k(  sLJ |t
        j                   k(  r)t        t              j                         dk(  sJ ||k(  sJ t#        d	|z        t                t        t        d      }|j                         }t        j                  ||      }|j                  }|j                         }|j                          d}t        |      }| r#t'        t
        j                  |ft(              sJ t        j                  |      }	|	j                  |k(  sJ |t
        j                  k(  re|	j                         |k(  sJ |	j                         dk(  sJ |	j+                  d       |	j                         |k(  sJ |	j                         |k(  sJ |t
        j                  k(  r?|	j                         dk(  sJ |	j                         |k(  sJ |	j                         |k(  sJ |t
        j                   k(  re|	j                         |k(  sJ |	j                         dk(  sJ |	j+                  d       |	j                         |k(  sJ |	j                         |k(  sJ t#        d	|z        |	j                          t                t        t        d      }|j                  d       t        j                  ||      }|j                  }|j                         }|j                          t        t              j                         }t        t        d      }|j                  d       |j                         }|j                          | r#t'        t
        j                  |ft(              s;J t        j                  |      }	|	j                  }
|	j                         }|	j                  d       |	j                          |t
        j                  k(  r0t        t              j                         dk(  sJ |
|k(  sJ ||k(  sJ |t
        j                  k(  r0t        t              j                         dk(  sJ |
|k(  sJ |dk(  sSJ |t
        j                   k(  r0t        t              j                         dk(  sJ |
|k(  sJ ||k(  sJ t#        d	|z        |	j                          t%                t        t        d
      }|j                  d       t        j                  ||      }|j                  }|j                         }|j                          t        t              j                         }t        t        d      }|j                  d       |j                         }|j                          | r#t'        t
        j                  |ft(              s-J t        j                  |      }	|	j                  }
|	j                         }|	j                  d       |	j                          |
|k(  sJ |t
        j                  k(  r)t        t              j                         dk(  sJ ||k(  sJ |t
        j                  k(  r)t        t              j                         dk(  sJ ||k(  sLJ |t
        j                   k(  r)t        t              j                         dk(  sJ ||k(  sJ t#        d	|z        |	j                          t                t        t        d      }|j                         }t        j                  ||      }|j                  }|j                         }|j                          t-        j.                  t               | r#t'        t
        j                  |ft0              ssJ t        j                  |      }	|	j                  |k(  sJ |t
        j                  k(  rP|	j                         dk(  sJ |	j+                  d       |	j                         dk(  sJ |	j                         dk(  sJ |t
        j                   k(  re|	j                         |k(  sJ |	j                         dk(  sJ |	j+                  d       |	j                         |k(  sJ |	j                         |k(  sbJ |t
        j                  k(  r?|	j                         dk(  sJ |	j                         dk(  sJ |	j                         dk(  sJ t#        d	|z        |	j                          t                t        t        d      }|j                  d       t        j                  ||      }|j                         }|j                  }|j                          t-        j.                  t               | r#t'        t
        j                  |ft0              s+J t        j                  |      }	|	j                  }
|	j                         }|	j                  d       |	j                          |t
        j                  k(  r0t        t              j                         dk(  sJ |
dk(  sJ |dk(  sJ |t
        j                  k(  r0t        t              j                         dk(  sJ |
|k(  sJ |dk(  sSJ |t
        j                   k(  r0t        t              j                         dk(  sJ |
|k(  sJ ||k(  sJ t#        d	|z        t%                t        t        d
      }|j                  d       t        j                  ||      }|j                         }|j                  }|j                          t-        j.                  t               | r#t'        t
        j                  |ft0              sJ t        j                  |      }	|	j                  }
|	j                         }|	j                  d       |	j                          |
|k(  sJ |t
        j                  k(  r)t        t              j                         dk(  sJ |dk(  sJ |t
        j                  k(  r)t        t              j                         dk(  sJ |dk(  sLJ |t
        j                   k(  r)t        t              j                         dk(  sJ ||k(  sJ t#        d	|z        t                t        t        d      }|j                         }t        j                  ||      }|j                  }|j                         }|j                          d}t        |      }t        j                  |      }	|	j                  |k(  sJ |t
        j                  k(  rh|	j                         |k(  sJ |	j                         ||d  k(  sJ |	j+                  d       |	j                         |k(  sJ |	j                         |k(  sJ |t
        j                  k(  r?|	j                         dk(  sJ |	j                         |k(  sJ |	j                         |k(  sJ |t
        j                   k(  re|	j                         |k(  sJ |	j                         dk(  sJ |	j+                  d       |	j                         |k(  sJ |	j                         |k(  sJ t#        d	|z        |	j                          t        t        d      }|j                  d       t        j                  ||      }|j                  }|j                         }t        t              j                         }|j                  d       |j                         }|j                          t        j                  |      }	|	j                  }
|	j                         }|	j                  d       |	j                          |t
        j                  k(  r0t        t              j                         dk(  sJ |
|k(  sJ ||k(  sJ |t
        j                  k(  r0t        t              j                         dk(  sJ |
|k(  sJ |dk(  sSJ |t
        j                   k(  r0t        t              j                         dk(  sJ |
|k(  sJ ||k(  sJ t#        d	|z        |	j                          t%                t        t        d
      }|j                  d       t        j                  ||      }|j                  }|j                         }t        t              j                         }|j                  d       |j                         }|j                          t        j                  |      }	|	j                  }
|	j                         }|	j                  d       |	j                          |
|k(  sJ |t
        j                  k(  r)t        t              j                         dk(  sJ ||k(  sJ |t
        j                  k(  r)t        t              j                         dk(  sJ ||k(  sLJ |t
        j                   k(  r)t        t              j                         dk(  sJ ||k(  sJ t#        d	|z        |	j                          y )Nr   PyPyr   )fmoder   helloz world!zhello world!zUnknown file mode '%s'a   )r    hzh world!zw+   z and goodbye!zhello world!odbye!zhello and goodbye! world!)platformpython_implementationr   r	   r
   dillloadsdumpsmodetellr   r   r   nameHANDLE_FMODECONTENTS_FMODE
FILE_FMODERuntimeErrorr   r$   buffer_errorseekr&   r)   	dne_error)strictior-   skippypyr4   r   _ff_dumpedf1modeftellf2f2modef2tellf2namefstr_flen_fstr_ftells                    r   benchrQ   7   s   H224>
 UCA	DJJq.	/B77aff779   779   GGIHHJ 	UCAGGGzz!5)HVVFFFHEGGI	H	BWWFWWYFWWFHHYHHJ!!!E{!Y...{{	$%%	%E{!^333	$//	!E{!^3333e;<< LUCAGGGzz!5)HVVFFFHEGGI	H	BWWFWWYFHHYHHJV###E{!^333	$##	#E{!^333	$//	!E{!^3333e;<<
 UCA668Dzz!5)HVVFFFHEGGIEE*Edjj8+|<<<ZZ!ww&   D'''779%%%779?"?GGAJ779%%%779%%%d'''779>!>779%%%779%%%doo%779%%%779?"?GGAJ779$$$779%%%7%?@@

 UCAGGGzz!5)HVVFFFHEGGI;DUCAGGCLVVXFGGIdjj8+|<<<ZZ!


D''';##%333V###V###d''';##%222V###Q;;doo%;##%777V###U?"?7%?@@

 LUCAGGGzz!5)HVVFFFHEGGI;DUCAGGCLVVXFGGIdjj8+|<<<ZZ!


D''';##%333V###d''';##%333V###doo%;##%777U?"?7%?@@


 UCA668Dzz!5)HVVFFFHEGGIIIedjj8+y999ZZ!ww&   D''' 779?"?GGAJ779?"?779>!>doo%779%%%779?"?GGAJ779$$$779%%%d'''779>!>779?"?779>!>7%?@@

 UDAGGGzz!5)HFFHEVVFGGIIIedjj8+y999ZZ!


D''';##%222T>!>Q;;d''';##%222V###Q;;doo%;##%777V###U?"?7%?@@ LUCAGGGzz!5)HFFHEVVFGGIIIedjj8+y999ZZ!


D''';##%222Q;;d''';##%222Q;;doo%;##%777U?"?7%?@@
 UCA668Dzz!5)HVVFFFHEGGIEE*E 
H	B77f###wwyE!!!wwyE%&M)))

wwyE!!!wwyE!!!	$##	#wwyA~~wwyE!!!wwyE!!!	$//	!wwyE!!!wwyB

wwyD   wwyE!!!3e;<<HHJ 	UCAGGGzz!5)HVVFFFHE;DGGOVVXFGGI 
H	BWWFWWYFHHYHHJ###E{!%9999	$##	#E{!Y...{{	$//	!E{!^3333e;<<HHJ LUCAGGGzz!5)HVVFFFHE;DGGOVVXFGGI 
H	BWWFWWYFHHYHHJV###E{!%@@@@	$##	#E{!%@@@@	$//	!E{!^3333e;<<HHJr   c                  N    t        dt        j                  d       t                y NF)rQ   r6   r<   r*   r   r   r   test_nostrictio_handlefmoderT     s    	%""E*r   c                  N    t        dt        j                  d       t                y rS   )rQ   r6   r>   r*   r   r   r   test_nostrictio_filefmoderV     s    	%%(r   c                  N    t        dt        j                  d       t                y )NFT)rQ   r6   r=   r*   r   r   r   test_nostrictio_contentsfmoderX     s    	%$$d+r   __main__)   )r&   r   stringr   r6   settingsr
   listascii_lettersr   
ValueErrorr@   FileNotFoundErrorrB   r   r   r$   r*   rQ   rT   rV   rX   __name__r   r   r   <module>rb      s    
 
     i &&&'4&2+5
/0IEQR	
cL

 z!!# r   