+
    P\iL  c                  s   ^ RI Ht ^ RIt^ RIt^ RIt^ RIHt ^ RIHtH	t	 ^ RI
Ht ^ RIHtHtHtHtHt ^RIHt ^RIHt ^R	IHt ]'       d   ^ R
IHtHtHtHt  ! R R]],          4      t ! R R]],          4      t ! R R]],          4      t ! R R]],          4      t ]R#R R ll4       t!]R#R R ll4       t!R#R R llt!]R$R R ll4       t"]R$R R ll4       t"R$R R llt"R R  lt#R! R" lt$R# )%    )annotationsN)Iterable)BytesIOTextIOWrapper)TracebackType)TYPE_CHECKINGAnyAnyStrGenericoverload)	to_thread)	AsyncFile)checkpoint_if_cancelled)OpenBinaryModeOpenTextModeReadableBufferWriteableBufferc                  s    ] tR t^t$ RtR]R&   ]RRR/R R lll4       t]RRR/R R	 lll4       tRRR
/R R llltR R ltR R lt	Rt
R
# )TemporaryFilea  
An asynchronous temporary file that is automatically created and cleaned up.

This class provides an asynchronous context manager interface to a temporary file.
The file is created using Python's standard `tempfile.TemporaryFile` function in a
background thread, and is wrapped as an asynchronous file using `AsyncFile`.

:param mode: The mode in which the file is opened. Defaults to "w+b".
:param buffering: The buffering policy (-1 means the default buffering).
:param encoding: The encoding used to decode or encode the file. Only applicable in
    text mode.
:param newline: Controls how universal newlines mode works (only applicable in text
    mode).
:param suffix: The suffix for the temporary file name.
:param prefix: The prefix for the temporary file name.
:param dir: The directory in which the temporary file is created.
:param errors: The error handling scheme used for encoding/decoding errors.
AsyncFile[AnyStr]_async_file.errorsc               <    V ^8  d   QhRRRRRRRRR	RR
RRRRRRR/	# )   selfzTemporaryFile[bytes]moder   	bufferingintencoding
str | Nonenewlinesuffixprefixdirr    Zformat   ":/usr/lib/python3.14/site-packages/anyio/_core/_tempfile.py__annotate__TemporaryFile.__annotate__0   sb      "  	
         c               	    R # Nr"   	r   r   r   r   r   r   r    r!   r   	   &&&&&&&&$r%   __init__TemporaryFile.__init__/        r(   c               r   )r   r   zTemporaryFile[str]r   r   r   r   r   r   r   r   r    r!   r   r"   r#   r$   r%   r&   r'   =   sb         	
     r(   c               	r)   r*   r"   r+   r,   r%   r-   r.   <   r/   r(   Nc               s<    V ^8  d   QhRRRRRRRRRRR	RR
RRRRR/	# )r   r   zOpenTextMode | OpenBinaryModer   r   r   r   r   r   r    r!   r   returnNoner"   r#   r$   r%   r&   r'   J   sd      +  	
      
r(   c               	sf    Wn         W n        W0n        W@n        WPn        W`n        Wpn        Wn        R # r*   )r   r   r   r   r   r    r!   r   r+   r,   r%   r-   r.   J   s,     	" "("("r(   c                   V ^8  d   QhRR/# r   r0   r   r"   r#   r$   r%   r&   r'   _   s        "3  r(   c                	   a "   \         P                  ! V 3R  l4      G Rj  xL
 p\        V4      S n        S P                  #  L 5i)c                 s   < \         P                  ! S P                  S P                  S P                  S P
                  S P                  S P                  S P                  S P                  R 7      # ))r   )
tempfiler   r   r   r   r   r   r    r!   r   r      r%   <lambda>Z*TemporaryFile.__aenter__.<locals>.<lambda>a   sH    H**		{{	r(   Nr   run_syncr   r   r   Zfp   f r%   
__aenter__ZTemporaryFile.__aenter___   s?     %%	
 
 %R=
   AA!Ac               (    V ^8  d   QhRRRRRRRR/# 	r   exc_typeztype[BaseException] | None	exc_valuezBaseException | None	tracebackzTracebackType | Noner0   r1   r"   r#   r$   r%   r&   r'   o   2     ( (,( (( (	(
 
(r(   c                	V   "   V P                   P                  4       G R j  xL
  R #  L5ir*   r   acloser   rA   rB   rC      &&&&r%   	__aexit__ZTemporaryFile.__aexit__o         %%'''   )'))	r   r   r!   r   r   r   r   r    r   .......)......)w+bNNNNN__name__
__module____qualname____firstlineno____doc____annotations__r
   r-   r=   rJ   __static_attributes__r"   r(   r%   r   r      sl    & #" !   !  " *  ( (r(   r   c                  s    ] tR t^xt$ RtR]R&   ]RRRRR/R R lll4       t]RRRRR/R	 R
 lll4       tRRRRR/R R llltR R ltR R lt	Rt
R# )NamedTemporaryFilea4  
An asynchronous named temporary file that is automatically created and cleaned up.

This class provides an asynchronous context manager for a temporary file with a
visible name in the file system. It uses Python's standard
:func:`~tempfile.NamedTemporaryFile` function and wraps the file object with
:class:`AsyncFile` for asynchronous operations.

:param mode: The mode in which the file is opened. Defaults to "w+b".
:param buffering: The buffering policy (-1 means the default buffering).
:param encoding: The encoding used to decode or encode the file. Only applicable in
    text mode.
:param newline: Controls how universal newlines mode works (only applicable in text
    mode).
:param suffix: The suffix for the temporary file name.
:param prefix: The prefix for the temporary file name.
:param dir: The directory in which the temporary file is created.
:param delete: Whether to delete the file when it is closed.
:param errors: The error handling scheme used for encoding/decoding errors.
:param delete_on_close: (Python 3.12+) Whether to delete the file on close.
r   r   .r   delete_on_closec               D    V ^8  d   QhRRRRRRRRR	RR
RRRRRRRRRRR/# )r   r   zNamedTemporaryFile[bytes]r   r   r   r   r   r   r   r   r    r!   deleteboolr   rY   r"   r#   r$   r%   r&   NamedTemporaryFile.__annotate__   sv      '  	
       r(   c	               	r)   r*   r"   r   r   r   r   r   r   r    r!   r[   r   rY      &&&&&&&&&$$r%   r-   NamedTemporaryFile.__init__        r(   c               rZ   )r   r   zNamedTemporaryFile[str]r   r   r   r   r   r   r   r   r    r!   r[   r\   r   rY   r"   r#   r$   r%   r&   r]      sv      %  	
       r(   c	               	r)   r*   r"   r^   r_   r%   r-   r`      ra   r(   NTc               sD    V ^8  d   QhRRRRRRRRRRR	RR
RRRRRRRRR/# )r   r   OpenBinaryMode | OpenTextModer   r   r   r   r   r   r    r!   r[   r\   r   rY   r0   r1   r"   r#   r$   r%   r&   r]      sx     > >+> > 	>
 > > > > > > > 
>r(   c	               	s    R VRVRVRVRVRVRVRVRV	/	V n         \        P                  R8  d   WP                   R	&   R
# R
# )r   r   r   r   r   r    r!   r[   r   rY   N   i   )_paramssysversion_infor^   r_   r%   r-   r`      s\     Dwff3ff
(
 w&.=LL*+ 'r(   c               r2   r3   r"   r#   r$   r%   r&   r]      s        "3  r(   c                	r4   )c                 D   < \         P                  ! R/ S P                  B # Nr"   )r5   rX   re   r6   r7   r%   r8   Z/NamedTemporaryFile.__aenter__.<locals>.<lambda>   s    H//?$,,?r(   Nr9   r;   r<   r%   r=   ZNamedTemporaryFile.__aenter__   s=     %%?
 
 %R=	
r>   c               r?   r@   r"   r#   r$   r%   r&   r]      rD   r(   c                	rE   r*   rF   rH   rI   r%   rJ   ZNamedTemporaryFile.__aexit__   rK   rL   )r   re   ........rM   )rN   rO   NNNNNTrP   r"   r(   r%   rX   rX   x   s    , #" ! !$   ! !$ > "> !%> >8 ( (r(   rX   c                  s  a  ] tR t^t$ RtRtR]R&   ]R5RR/R R lll4       t]R5RR/R	 R
 lll4       tR6RR/R V 3R lllltR V 3R llt	R R lt
R R lt]R R l4       tR7R V 3R llltR7R V 3R llltR V 3R lltR V 3R lltR V 3R lltR  V 3R! llt]P*                  3R" V 3R# llltR$ V 3R% lltR8R& V 3R' lllt]R( R) l4       t]R* R+ l4       tR, V 3R- llt]R. R/ l4       t]R0 R1 l4       tR2 V 3R3 lltR4tV ;t# )9SpooledTemporaryFilea  
An asynchronous spooled temporary file that starts in memory and is spooled to disk.

This class provides an asynchronous interface to a spooled temporary file, much like
Python's standard :class:`~tempfile.SpooledTemporaryFile`. It supports asynchronous
write operations and provides a method to force a rollover to disk.

:param max_size: Maximum size in bytes before the file is rolled over to disk.
:param mode: The mode in which the file is opened. Defaults to "w+b".
:param buffering: The buffering policy (-1 means the default buffering).
:param encoding: The encoding used to decode or encode the file (text mode only).
:param newline: Controls how universal newlines mode works (text mode only).
:param suffix: The suffix for the temporary file name.
:param prefix: The prefix for the temporary file name.
:param dir: The directory in which the temporary file is created.
:param errors: The error handling scheme used for encoding/decoding errors.
Fr\   _rolled.r   c               @    V ^8  d   QhRRRRRRRRRR	R
R	RR	RR	RR	RR	/
# )r   r   SpooledTemporaryFile[bytes]max_sizer   r   r   r   r   r   r   r   r    r!   r   r"   r#   r$   r%   r&   !SpooledTemporaryFile.__annotate__   sl      )  	
      r(   c	               	r)   r*   r"   
r   ro   r   r   r   r   r   r    r!   r   
   &&&&&&&&&$r%   r-   SpooledTemporaryFile.__init__        r(   c               rm   )r   r   SpooledTemporaryFile[str]ro   r   r   r   r   r   r   r   r   r    r!   r   r"   r#   r$   r%   r&   rp      sl      '  	
      r(   c	               	r)   r*   r"   rq   rr   r%   r-   rs      rt   r(   Nc               s@    V ^8  d   QhRRRRRRRRRRR	RR
RRRRRRR/
# )r   ro   r   r   rb   r   r   r   r   r   r    r!   r   r0   r1   r"   r#   r$   r%   r&   rp     sn     # ## ,# 	#
 # # # # # # 
#r(   c	               	s   < R VRVRVRVRVRVRVRV	/V n         Wn        RV9   d   \        S
V `  \	        4       4       R# \        S
V `  \        \	        4       VV	VR	R
7      4       R# )r   r   r   r   r   r    r!   r   bT)r   r   r   Zwrite_throughN)_tempfile_params	_max_sizesuperr-   r   r   )r   ro   r   r   r   r   r   r    r!   r   	__class__s   &&&&&&&&&$r%   r-   rs     sz     Dwff3f	1
 "$;GWY'GI%!#"&r(   c               r2   r   r0   r1   r"   r#   r$   r%   r&   rp   3  s      d r(   c                	s   <"   V P                   '       g   V P                  P                  4        R # \        SV `  4       G R j  xL
  R #  L5ir*   )rl   _fpclosery   rG   r   rz      &r%   rG   ZSpooledTemporaryFile.aclose3  s0     |||HHNNgns   A AA
Ac               r2   r{   r"   r#   r$   r%   r&   rp   :  s      d r(   c                	s   "   V P                   '       g*   V P                  P                  4       V P                  8:  d   R # V P	                  4       G R j  xL
  R #  L5ir*   )rl   r|   tellrx   rolloverr6      &r%   _checkZSpooledTemporaryFile._check:  s5     <<<488==?dnn<mmos   AAAAc               r2   r{   r"   r#   r$   r%   r&   rp   @  s       r(   c                	sD  a "   S P                   '       d   R # RS n         S P                  pVP                  ^ 4       \        P                  ! V 3R l4      G R j  xL
 S n        S P                  VP                  4       4      G R j  xL
  VP                  4        R #  LB L5i)NTc                 rh   ri   )r5   r   rw   r6   r7   r%   r8   Z/SpooledTemporaryFile.rollover.<locals>.<lambda>H  s    H**CT-B-BCr(   )rl   r|   seekr   r:   writereadr}   )r   Zbufferr<   r%   r   ZSpooledTemporaryFile.rollover@  st     <<<A"++C
 
 jj'''	
 	(s$   AB B+B BB B c               r2   )r   r0   r\   r"   r#   r$   r%   r&   rp   N  s       r(   c                	s.    V P                   P                  # r*   )r|   closedr6   r   r%   r   ZSpooledTemporaryFile.closedM  s    xxr(   c                    V ^8  d   QhRRRR/# )r   sizer   r0   r   r"   r#   r$   r%   r&   rp   Q  s     ( (s (F (r(   c                	   <"   V P                   '       g.   \        4       G R j  xL
  V P                  P                  V4      # \        SV `  V4      G R j  xL
 #  L6 L5ir*   )rl   r   r|   r   ry   r   r   rz      &&r%   r   ZSpooledTemporaryFile.readQ  sJ     |||)+++88==&&W\$''' , (!    AA1AAAAc               $    V ^8  d   QhRRRRRR/# )r   r   rn   r   r   r0   bytesr"   r#   r$   r%   r&   rp   X  s"     ) )5 )S )% )r(   c                	r   r*   )rl   r   r|   read1ry   r   r   r%   r   ZSpooledTemporaryFile.read1X  sJ     |||)+++88>>$''W]4((( , )r   c               r2   )r   r0   r   r"   r#   r$   r%   r&   rp   _  s     ( ( (r(   c                	   <"   V P                   '       g-   \        4       G R j  xL
  V P                  P                  4       # \        SV `  4       G R j  xL
 #  L4 L5ir*   )rl   r   r|   readlinery   r~   r   r%   r   ZSpooledTemporaryFile.readline_  sI     |||)+++88$$&&W%''' , (!    AA/AAAAc               r2   )r   r0   zlist[AnyStr]r"   r#   r$   r%   r&   rp   f  s     ) ) )r(   c                	r   r*   )rl   r   r|   	readlinesry   r~   r   r%   r   ZSpooledTemporaryFile.readlinesf  sI     |||)+++88%%''W&((( , )r   c               r   r   r   rn   rv   r   r0   r   r"   r#   r$   r%   r&   rp   m  s#     ) )8 )_ )QT )r(   c                	s   <"   V P                   '       g.   \        4       G R j  xL
  V P                  P                  V4       \        SV `  V4      G R j  xL
 #  L6 L5ir*   )rl   r   r|   readintory   r   rv   rz   r   r%   r   ZSpooledTemporaryFile.readintom  sJ     |||)+++HHa W%a((( , )r   c               r   r   r"   r#   r$   r%   r&   rp   t  s#     * *9 *o *RU *r(   c                	s   <"   V P                   '       g.   \        4       G R j  xL
  V P                  P                  V4       \        SV `  V4      G R j  xL
 #  L6 L5ir*   )rl   r   r|   r   ry   	readinto1r   r   r%   r   ZSpooledTemporaryFile.readinto1t  sJ     |||)+++HHa W&q))) , *r   c               s$    V ^8  d   QhRRRRRR/# )r   offsetr   whence
int | Noner0   r"   r#   r$   r%   r&   rp   {  s!     2 2 2j 23 2r(   c                	s   <"   V P                   '       g.   \        4       G R j  xL
  V P                  P                  W4      # \        SV `  W4      G R j  xL
 #  L6 L5ir*   )rl   r   r|   r   ry   )r   r   r   rz   s   &&&r%   r   ZSpooledTemporaryFile.seek{  sJ     |||)+++88==00W\&111 , 2r   c               r2   )r   r0   r   r"   r#   r$   r%   r&   rp     s     $ $C $r(   c                	r   r*   )rl   r   r|   r   ry   r~   r   r%   r   ZSpooledTemporaryFile.tell  sD     |||)+++88==?"W\^## , $r   c               r   )r   r   r   r0   r   r"   r#   r$   r%   r&   rp     s     , ,: , ,r(   c                	r   r*   )rl   r   r|   truncatery   r   r   r%   r   ZSpooledTemporaryFile.truncate  sM     |||)+++88$$T**W%d+++ , ,r   c               r   )r   r   rn   rv   r   r0   r   r"   r#   r$   r%   r&   rp     s    UU5U.USUr(   c                	   "   R # 5ir*   r"   r   rv      &&r%   r   SpooledTemporaryFile.write  s     RU   c               r   )r   r   ru   rv   strr0   r   r"   r#   r$   r%   r&   rp     s    HH3HHHr(   c                	r   r*   r"   r   r   r%   r   r     s     EHr   c               r   )r   rv   zReadableBuffer | strr0   r   r"   r#   r$   r%   r&   rp     s     & &1 &c &r(   c                   <"   V P                   '       gH   \        4       G Rj  xL
  V P                  P                  V4      pV P	                  4       G Rj  xL
  V# \
        SV `  V4      G Rj  xL
 #  LP L L5i)aP  
Asynchronously write data to the spooled temporary file.

If the file has not yet been rolled over, the data is written synchronously,
and a rollover is triggered if the size exceeds the maximum size.

:param s: The data to write.
:return: The number of bytes written.
:raises RuntimeError: If the underlying file is not initialized.

N)rl   r   r|   r   r   ry   )r   rv   resultrz      && r%   r   r     sb      |||)+++XX^^A&F++-MW]1%%% , &3    A:A42A:A6A:/A80A:6A:8A:c               r   )r   r   rn   lineszIterable[ReadableBuffer]r0   r1   r"   r#   r$   r%   r&   rp     s$      )2J	r(   c                	r   r*   r"   r   r   r   r%   
writelinesSpooledTemporaryFile.writelines  
      r   c               r   )r   r   ru   r   zIterable[str]r0   r1   r"   r#   r$   r%   r&   rp     s$      '0=	r(   c                	r   r*   r"   r   r   r%   r   r     r   r   c               r   )r   r   z(Iterable[str] | Iterable[ReadableBuffer]r0   r1   r"   r#   r$   r%   r&   rp     s     / /&N /SW /r(   c                r   )aG  
Asynchronously write a list of lines to the spooled temporary file.

If the file has not yet been rolled over, the lines are written synchronously,
and a rollover is triggered if the size exceeds the maximum size.

:param lines: An iterable of lines to write.
:raises RuntimeError: If the underlying file is not initialized.

N)rl   r   r|   r   r   ry   )r   r   r   rz   r   r%   r   r     se      |||)+++XX((/F++-MW'... , /r   )r|   rx   rl   rw   rj   )r    rN   rO   NNNNN)rO   r*   )rQ   rR   rS   rT   rU   rl   rV   r
   r-   rG   r   r   Zpropertyr   r   r   r   r   r   r   osZSEEK_SETr   r   r   r   r   rW   Z__classcell__)rz   s   @r%   rk   rk      sH   $ GT !   ! # "# #J   ( () )( () )) )* * <>;; 2 2$ $, , U UH H& &(    / /r(   rk   c                  sZ    ] tR tRtRtRRRRR/R R	 llltR
 R ltR R ltR R ltRt	R# )TemporaryDirectoryi  a  
An asynchronous temporary directory that is created and cleaned up automatically.

This class provides an asynchronous context manager for creating a temporary
directory. It wraps Python's standard :class:`~tempfile.TemporaryDirectory` to
perform directory creation and cleanup operations in a background thread.

:param suffix: Suffix to be added to the temporary directory name.
:param prefix: Prefix to be added to the temporary directory name.
:param dir: The parent directory where the temporary directory is created.
:param ignore_cleanup_errors: Whether to ignore errors during cleanup
    (Python 3.10+).
:param delete: Whether to delete the directory upon closing (Python 3.12+).
Nignore_cleanup_errorsFr[   Tc               s0    V ^8  d   QhRRRRRRRRRRRR	/# )
r   r   AnyStr | Noner    r!   r   r\   r[   r0   r1   r"   r#   r$   r%   r&   TemporaryDirectory.__annotate__  sN     A AA A 	A  $A A 
Ar(   c               	sP    Wn         W n        W0n        W@n        WPn        R V n        R # r*   )r   r    r!   r   r[   _tempdir)r   r   r    r!   r   r[   s   &&&&$$r%   r-   ZTemporaryDirectory.__init__  s%     &,%+"%%:"<@r(   c               r2   r   r0   r   r"   r#   r$   r%   r&   r     s     A A# Ar(   c                	s  a"   R V P                   RV P                  RV P                  /o\        P                  R8  d   V P
                  SR&   \        P                  R8  d   V P                  SR&   \        P                  ! V3R l4      G Rj  xL
 V n	        \        P                  ! V P                  P                  4      G Rj  xL
 #  L; L5i)	r   r    r!   r   r[   c                 s0   < \         P                  ! R/ S B # ri   )r5   r   )paramsr7   r%   r8   Z/TemporaryDirectory.__aenter__.<locals>.<lambda>  s    H//9&9r(   N)rd   i
   rc   )r   r    r!   rf   rg   r   r[   r   r:   r   Z	__enter__)r   r   s   &@r%   r=   ZTemporaryDirectory.__aenter__  s     dkkdkk488"

 w&.2.H.HF*+w&#{{F8'009
 
 ''(?(?@@@
 As$   BCC6CCCCc               r?   r@   r"   r#   r$   r%   r&   r     s2     	 	,	 (	 (		
 
	r(   c                	s   "   V P                   e7   \        P                  ! V P                   P                  WV4      G R j  xL
  R # R #  L5ir*   )r   r   r:   Z__exit__rH   rI   r%   rJ   ZTemporaryDirectory.__aexit__  sD      ==$$$&&Y   %s   >A A		Ac               r2   r{   r"   r#   r$   r%   r&   r     s     < <t <r(   c                	s   "   V P                   e5   \        P                  ! V P                   P                  4      G R j  xL
  R # R #  L5ir*   )r   r   r:   cleanupr6   r   r%   r   ZTemporaryDirectory.cleanup  s5     ==$$$T]]%:%:;;; %;s   <A	A	A	)r   r[   r!   r   r    r   NNN)
rQ   rR   rS   rT   rU   r-   r=   rJ   r   rW   r"   r(   r%   r   r     s>    A ',A A A"A"	< <r(   r   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	r   r   r   r    r!   textr\   r0   ztuple[int, str]r"   r#   r$   r%   r&   r&   	  s:       
 	
 r(   c                r   r*   r"   r   r    r!   r   rI   r%   mkstempr     s
      r   c          
     r   )	r   r   bytes | Noner    r!   r   r\   r0   ztuple[int, bytes]r"   r#   r$   r%   r&   r&     s:       
 	
 r(   c                r   r*   r"   r   rI   r%   r   r     s
      r   c          
     r   )	r   r   r   r    r!   r   r\   r0   ztuple[int, str | bytes]r"   r#   r$   r%   r&   r&     sA     Q QQQ 
Q 	Q
 Qr(   c                sj   "   \         P                  ! \        P                  WW#4      G Rj  xL
 #  L5i)a  
Asynchronously create a temporary file and return an OS-level handle and the file
name.

This function wraps `tempfile.mkstemp` and executes it in a background thread.

:param suffix: Suffix to be added to the file name.
:param prefix: Prefix to be added to the file name.
:param dir: Directory in which the temporary file is created.
:param text: Whether the file is opened in text mode.
:return: A tuple containing the file descriptor and the file name.

N)r   r:   r5   r   r   rI   r%   r   r     s(     & ##H$4$4fcPPPP   *313c               (    V ^8  d   QhRRRRRRRR/# )r   r   r   r    r!   r0   r   r"   r#   r$   r%   r&   r&   1  s0       
 		r(   c                r   r*   r"   r   r    r!      &&&r%   mkdtempr   0  s
     
 r   c               r   )r   r   r   r    r!   r0   r   r"   r#   r$   r%   r&   r&   9  s0       
 	r(   c                r   r*   r"   r   r   r%   r   r   8  s
     
 r   c               r   )r   r   r   r    r!   r0   zstr | bytesr"   r#   r$   r%   r&   r&   @  s6     K KKK 
K 	Kr(   c                sj   "   \         P                  ! \        P                  WV4      G Rj  xL
 #  L5i)a  
Asynchronously create a temporary directory and return its path.

This function wraps `tempfile.mkdtemp` and executes it in a background thread.

:param suffix: Suffix to be added to the directory name.
:param prefix: Prefix to be added to the directory name.
:param dir: Parent directory where the temporary directory is created.
:return: The path of the created temporary directory.

N)r   r:   r5   r   r   r   r%   r   r   @  s(       ##H$4$4fcJJJJr   c               r2   r   r"   r#   r$   r%   r&   r&   S  s     	9 	9# 	9r(   c                 f   "   \         P                  ! \        P                  4      G Rj  xL
 #  L5i)z
Asynchronously return the name of the directory used for temporary files.

This function wraps `tempfile.gettempdir` and executes it in a background thread.

:return: The path of the temporary directory as a string.

N)r   r:   r5   
gettempdirr"   r(   r%   r   r   S  s$      ##H$7$78888   (1/1c               r2   )r   r0   r   r"   r#   r$   r%   r&   r&   _  s     	: 	:5 	:r(   c                 r   )z
Asynchronously return the name of the directory used for temporary files in bytes.

This function wraps `tempfile.gettempdirb` and executes it in a background thread.

:return: The path of the temporary directory as bytes.

N)r   r:   r5   gettempdirbr"   r(   r%   r   r   _  s$      ##H$8$89999r   )NNNFr   )%Z
__future__r   r   rf   r5   Zcollections.abcr   Zior   r   Ztypesr   Ztypingr   r   r   r	   r
   Z r   Z_core._fileior   Zlowlevelr   Z	_typeshedr   r   r   r   r   rX   rk   r   r   r   r   r   r"   r(   r%   <module>r      s    " 	 
  $ %    % .WW\(GFO \(~a( a(Hg/9V, g/T?< ?<D 
 
 
 
Q, 
 
 
 
K&	9	:r(   