
    < jX                       S SK Jr  S SKJr  S SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKrS SKrS SKJr  SSKJr  SSKJr  SSKJr  SSKJr  SS	KJr  \R,                  (       a  S S
KJr  SSKJr   " S S5      r\R8                  SS j5       r " S S\R<                  5      r " S S5      r  " S S\RB                  5      r"      SS jr# " S S5      r$ " S S5      r%g)    )annotationsN)TracebackType   )_compat)
formatting)termui)utils)_find_binary_reader)ReadableBuffer)Commandc                  z    \ rS rSrSS jrSS jrSS jrSSS jjrSSS jjrSSS jjr	SS jr
SS	 jrSS
 jrSrg)EchoingStdin   c                *    Xl         X l        SU l        g )NF_input_output_paused)selfinputoutputs      ^/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/click/testing.py__init__EchoingStdin.__init__   s        c                .    [        U R                  U5      $ N)getattrr   r   xs     r   __getattr__EchoingStdin.__getattr__    s    t{{A&&r   c                ^    U R                   (       d  U R                  R                  U5        U$ r   )r   r   write)r   rvs     r   _echoEchoingStdin._echo#   s     ||LLr"	r   c                V    U R                  U R                  R                  U5      5      $ r   )r&   r   readr   ns     r   r)   EchoingStdin.read)   s     zz$++**1-..r   c                V    U R                  U R                  R                  U5      5      $ r   )r&   r   read1r*   s     r   r.   EchoingStdin.read1,   s     zz$++++A.//r   c                V    U R                  U R                  R                  U5      5      $ r   )r&   r   readliner*   s     r   r1   EchoingStdin.readline/   s     zz$++..q122r   c                ~    U R                   R                  5        Vs/ s H  oR                  U5      PM     sn$ s  snf r   )r   	readlinesr&   r   s     r   r4   EchoingStdin.readlines2   s/    '+{{'<'<'>?'>!

1'>???s   :c                B   ^  [        U 4S jT R                   5       5      $ )Nc              3  F   >#    U  H  nTR                  U5      v   M     g 7fr   )r&   ).0r    r   s     r   	<genexpr>(EchoingStdin.__iter__.<locals>.<genexpr>6   s     7;aDJJqMM;s   !)iterr   r   s   `r   __iter__EchoingStdin.__iter__5   s    74;;777r   c                ,    [        U R                  5      $ r   )reprr   r<   s    r   __repr__EchoingStdin.__repr__8   s    DKK  r   r   N)r   
t.BinaryIOr   rC   returnNone)r    strrD   t.Any)r%   bytesrD   rH   ))r+   intrD   rH   )rD   zlist[bytes])rD   zcabc.Iterator[bytes]rD   rF   )__name__
__module____qualname____firstlineno__r   r!   r&   r)   r.   r1   r4   r=   rA   __static_attributes__ r   r   r   r      s0    
'/03@8!r   r   c              #  @   #    U c  S v   g SU l         S v   SU l         g 7f)NTF)r   streams    r   _pause_echorU   <   s     ~s   c                  P   ^  \ rS rSrSrSU 4S jjrSU 4S jjrS	U 4S jjrSrU =r	$ )
BytesIOCopyF   z\Patch ``io.BytesIO`` to let the written stream be copied to another.

.. versionadded:: 8.2
c                .   > [         TU ]  5         Xl        g r   )superr   copy_to)r   r[   	__class__s     r   r   BytesIOCopy.__init__L   s    r   c                V   > [         TU ]  5         U R                  R                  5         g r   )rZ   flushr[   r   r\   s    r   r_   BytesIOCopy.flushP   s    r   c                X   > U R                   R                  U5        [        TU ]  U5      $ r   )r[   r$   rZ   )r   br\   s     r   r$   BytesIOCopy.writeT   s$    1w}Qr   r[   )r[   z
io.BytesIOrD   rE   rD   rE   )rc   r   rD   rJ   )
rL   rM   rN   rO   __doc__r   r_   r$   rP   __classcell__r\   s   @r   rW   rW   F   s    
   r   rW   c                  "    \ rS rSrSrSS jrSrg)StreamMixerY   zvMixes `<stdout>` and `<stderr>` streams.

The result is available in the ``output`` attribute.

.. versionadded:: 8.2
c                    [         R                  " 5       U l        [        U R                  S9U l        [        U R                  S9U l        g )Nre   )ioBytesIOr   rW   stdoutstderrr<   s    r   r   StreamMixer.__init__a   s/    "$**,"-dkk"B"-dkk"Br   )r   rq   rp   Nrf   )rL   rM   rN   rO   rg   r   rP   rQ   r   r   rk   rk   Y   s    Cr   rk   c                     ^  \ rS rSrSrSS.           SU 4S jjjrSS jrSU 4S jjr\SS j5       r	\SS	 j5       r
S
rU =r$ )_NamedTextIOWrapperg   a  A :class:`~io.TextIOWrapper` with custom ``name`` and ``mode``
that does not close its underlying buffer.

An optional ``original_fd`` preserves the file descriptor of the
stream being replaced, so that C-level consumers that call
:meth:`fileno` (``faulthandler``, ``subprocess``, ...) still work.
Inspired by pytest's ``capsys``/``capfd`` split: see :doc:`/testing`
for details.

.. versionchanged:: 8.3.3
    Added ``original_fd`` parameter and :meth:`fileno` override.
rI   )original_fdc               L   > [         TU ]  " U40 UD6  X l        X0l        X@l        g r   )rZ   r   _name_mode_original_fd)r   buffernamemoderv   kwargsr\   s         r   r   _NamedTextIOWrapper.__init__u   s'     	*6*

'r   c                    g)zThe buffer this object contains belongs to some other object,
so prevent the default ``__del__`` implementation from closing
that buffer.

.. versionadded:: 8.3.2
NrQ   r<   s    r   close_NamedTextIOWrapper.close   s    r   c                X   > U R                   S:  a  U R                   $ [        TU ]	  5       $ )a@  Return the file descriptor of the original stream, if one was
provided at construction time.

This allows C-level consumers (``faulthandler``, ``subprocess``,
signal handlers, ...) to obtain a valid fd without crashing, even
though the Python-level writes are redirected to an in-memory
buffer.

.. versionadded:: 8.3.3
r   )rz   rZ   filenor`   s    r   r   _NamedTextIOWrapper.fileno   s,     !$$$w~r   c                    U R                   $ r   )rx   r<   s    r   r|   _NamedTextIOWrapper.name       zzr   c                    U R                   $ r   )ry   r<   s    r   r}   _NamedTextIOWrapper.mode   r   r   )ry   rx   rz   )r{   rC   r|   rF   r}   rF   rv   rJ   r~   rG   rD   rE   rf   )rD   rJ   rK   )rL   rM   rN   rO   rg   r   r   r   propertyr|   r}   rP   rh   ri   s   @r   rt   rt   g   s    & (( ( 	( ( ( 
( (     r   rt   c                   [        U S5      (       a0  [        [        R                  " SU 5      5      nUb  U$ [	        S5      eU c  Sn O&[        U [        5      (       a  U R                  U5      n [        R                  " U 5      $ )Nr)   t.IO[t.Any]z.Could not find binary reader for input stream.r   )
hasattrr
   tcast	TypeError
isinstancerF   encodern   ro   )r   charsetr%   s      r   make_input_streamr      sp     uf u!=>>IHII}	E3		W%::er   c                      \ rS rSrSr S
               SS jjr\SS j5       r\SS j5       r\SS j5       r	SS jr
S	rg)Result   a  Holds the captured result of an invoked CLI script.

:param runner: The runner that created the result
:param stdout_bytes: The standard output as bytes.
:param stderr_bytes: The standard error as bytes.
:param output_bytes: A mix of ``stdout_bytes`` and ``stderr_bytes``, as the
    user would see  it in its terminal.
:param return_value: The value returned from the invoked command.
:param exit_code: The exit code as integer.
:param exception: The exception that happened if one did.
:param exc_info: Exception information (exception type, exception instance,
    traceback type).

.. versionchanged:: 8.2
    ``stderr_bytes`` no longer optional, ``output_bytes`` introduced and
    ``mix_stderr`` has been removed.

.. versionadded:: 8.0
    Added ``return_value``.
Nc	                d    Xl         X l        X0l        X@l        XPl        X`l        Xpl        Xl        g r   runnerstdout_bytesstderr_bytesoutput_bytesreturn_value	exit_code	exceptionexc_info)	r   r   r   r   r   r   r   r   r   s	            r   r   Result.__init__   s0     (((("" r   c                    U R                   R                  U R                  R                  S5      R	                  SS5      $ )zThe terminal output as unicode string, as the user would see it.

.. versionchanged:: 8.2
    No longer a proxy for ``self.stdout``. Now has its own independent stream
    that is mixing `<stdout>` and `<stderr>`, in the order they were written.
replace

)r   decoder   r   r   r<   s    r   r   Result.output   s9       ''(;(;YGOOD
 	
r   c                    U R                   R                  U R                  R                  S5      R	                  SS5      $ )z&The standard output as unicode string.r   r   r   )r   r   r   r   r   r<   s    r   rp   Result.stdout   s9       ''(;(;YGOOD
 	
r   c                    U R                   R                  U R                  R                  S5      R	                  SS5      $ )zThe standard error as unicode string.

.. versionchanged:: 8.2
    No longer raise an exception, always returns the `<stderr>` string.
r   r   r   )r   r   r   r   r   r<   s    r   rq   Result.stderr   s9       ''(;(;YGOOD
 	
r   c                    U R                   (       a  [        U R                   5      OSnS[        U 5      R                   SU S3$ )Nokay< >)r   r@   typerL   )r   exc_strs     r   rA   Result.__repr__   s8    *...$t~~&f4:&&'q	33r   )r   r   r   r   r   r   r   r   r   )r   	CliRunnerr   rH   r   rH   r   rH   r   rG   r   rJ   r   zBaseException | Noner   z?tuple[type[BaseException], BaseException, TracebackType] | NonerK   )rL   rM   rN   rO   rg   r   r   r   rp   rq   rA   rP   rQ   r   r   r   r      s    > !! ! 	!
 ! ! ! (!!* 	
 	
 
 
 
 
4r   r   c                  
   \ rS rSrSr    S         SS jjrSS jr S   SS jjr\R                     S       SS jj5       r
     S               SS jjr\R                   S   SS	 jj5       rS
rg)r   i  a  The CLI runner provides functionality to invoke a Click command line
script for unittesting purposes in a isolated environment.  This only
works in single-threaded systems without any concurrency as it changes the
global interpreter state.

:param charset: the character set for the input and output data.
:param env: a dictionary with environment variables for overriding.
:param echo_stdin: if this is set to `True`, then reading from `<stdin>` writes
                   to `<stdout>`.  This is useful for showing examples in
                   some circumstances.  Note that regular prompts
                   will automatically echo the input.
:param catch_exceptions: Whether to catch any exceptions other than
                         ``SystemExit`` when running :meth:`~CliRunner.invoke`.

.. versionchanged:: 8.2
    Added the ``catch_exceptions`` parameter.

.. versionchanged:: 8.2
    ``mix_stderr`` parameter has been removed.
Nc                H    Xl         U=(       d    0 U l        X0l        X@l        g r   )r   env
echo_stdincatch_exceptions)r   r   r   r   r   s        r   r   CliRunner.__init__  s     25)$ 0r   c                ,    UR                   =(       d    S$ )zGiven a command object it will return the default program name
for it.  The default is the `name` attribute or ``"root"`` if not
set.
root)r|   )r   clis     r   get_default_prog_nameCliRunner.get_default_prog_name'  s    
 xx!6!r   c                `    [        U R                  5      nU(       a  UR                  U5        U$ )z8Returns the environment overrides for invoking a script.)dictr   update)r   	overridesr%   s      r   make_envCliRunner.make_env.  s%     $((^IIi 	r   c           	   #  	  ^^^#    [        XR                  5      nSn[        R                  n[        R                  n[        R
                  n[        R                  n	S[        l        U R                  U5      n[        5       n
SS jnU" U5      nU" U5      nU R                  (       a9  [        R                  " [        R                  [        XJR                  5      5      =pE[        X@R                  SSS9=[        l        mU R                  (       a  STl        [        U
R                  U R                  SS	US
9[        l        [        U
R
                  U R                  SS	SUS9[        l        [#        U5      SSU4S jjj5       n[#        U5      SSU4S jjj5       n[#        U5      SS j5       nUm S     SU4S jjjn[$        R&                  n[$        R(                  n[$        R*                  n[,        R.                  n[0        R.                  n[2        R4                  R6                  mU[$        l        U[$        l        U[$        l        U[,        l        U[0        l           S           SU4S jjjnU[2        R4                  l        0 n UR9                  5        HR  u  nn[:        R<                  R?                  U5      UU'   Uc   [:        R<                  U	 M?  U[:        R<                  U'   MT     U
R                  U
R
                  U
RB                  4v   UR9                  5        H0  u  nnUc   [:        R<                  U	 M  U[:        R<                  U'   M2     U[        l        U[        l        U[        l        U[$        l        U[$        l        U[$        l        U[,        l        U[0        l        U	[        l        T[2        R4                  l        g! [@         a     GMF  f = f! [@         a     M  f = f! UR9                  5        HA  u  nnUc%   [:        R<                  U	 M  ! [@         a     M*  f = fU[:        R<                  U'   MC     U[        l        U[        l        U[        l        U[$        l        U[$        l        U[$        l        U[,        l        U[0        l        U	[        l        T[2        R4                  l        f = f7f)a  A context manager that sets up the isolation for invoking of a
command line tool.  This sets up `<stdin>` with the given input data
and `os.environ` with the overrides from the given dictionary.
This also rebinds some internals in Click to be mocked (like the
prompt functionality).

This is automatically done in the :meth:`invoke` method.

:param input: the input stream to put into `sys.stdin`.
:param env: the environment overrides as dictionary.
:param color: whether the output should contain color codes. The
              application can still override this explicitly.

.. versionadded:: 8.2
    An additional output stream is returned, which is a mix of
    `<stdout>` and `<stderr>` streams.

.. versionchanged:: 8.2
    Always returns the `<stderr>` stream.

.. versionchanged:: 8.0
    `<stderr>` is opened with ``errors="backslashreplace"``
    instead of the default ``"strict"``.

.. versionchanged:: 4.0
    Added the ``color`` parameter.
NP   c                d     U R                  5       $ ! [        [        R                  4 a     gf = f)NrI   )r   AttributeErrorrn   UnsupportedOperationrS   s    r   _safe_fileno)CliRunner.isolation.<locals>._safe_filenok  s0    }}&"B$;$;< s    //z<stdin>r)encodingr|   r}   r   z<stdout>w)r   r|   r}   rv   z<stderr>backslashreplace)r   r|   r}   errorsrv   c                H  > [         R                  R                  U =(       d    S5         [        T5      R	                  S5      n[         R                  R                  U S35        [         R                  R                  5         U$ ! [
         a  n[        5       UeS nAff = f)N r   r   )sysrp   r$   nextrstripStopIterationEOFErrorr_   )promptvale
text_inputs      r   visible_input*CliRunner.isolation.<locals>.visible_input  s~    JJV\r*(:&--f5 JJuBZ(JJJ	 ! (ja'(s   B 
B!BB!c                  > [         R                  R                  U =(       d    S S35        [         R                  R                  5          [	        T5      R                  S5      $ ! [         a  n[        5       UeS nAff = f)Nr   r   r   )r   rp   r$   r_   r   r   r   r   )r   r   r   s     r   hidden_input)CliRunner.isolation.<locals>.hidden_input  se    JJ"~R01JJ(J'..v66  (ja'(s   A& &
B 0A;;B c                    [         R                  R                  S5      nU (       a  [         R                  R	                  U5        [         R                  R                  5         U$ )Nr   )r   stdinr)   rp   r$   r_   )echochars     r   _getchar%CliRunner.isolation.<locals>._getchar  s>    99>>!$D

  &JJKr   c                &   > Uc  T(       + $ U(       + $ r   rQ   )rT   colordefault_colors     r   should_strip_ansi.CliRunner.isolation.<locals>.should_strip_ansi  s     }(((9r   c                j   > Uc  [         R                  nUc  [         R                  nT" U 4XUS.UD6  g)a  Default ``pdb.Pdb`` to real terminal streams during
``CliRunner`` isolation.

Without this patch, ``pdb.Pdb.__init__`` inherits from
``cmd.Cmd`` which falls back to ``sys.stdin``/``sys.stdout``
when no explicit streams are provided. During isolation
those are ``BytesIO``-backed wrappers, so the debugger
reads from an empty buffer and writes to captured output,
making interactive debugging impossible.

By defaulting to ``sys.__stdin__``/``sys.__stdout__`` (the
original terminal streams Python preserves regardless of
redirection), debuggers can interact with the user while
``click.echo`` output is still captured normally.

This covers ``pdb.set_trace()``, ``breakpoint()``,
``pdb.post_mortem()``, and debuggers that subclass
``pdb.Pdb`` (ipdb, pdbpp). Explicit ``stdin``/``stdout``
arguments are honored and not overridden. Debuggers that
do not subclass ``pdb.Pdb`` (pudb, debugpy) are not
covered.
N)completekeyr   rp   )r   	__stdin__
__stdout__)r   r   r   rp   r~   old_pdb_inits        r   _patched_pdb_init.CliRunner.isolation.<locals>._patched_pdb_init  s>    : }~"-6MSr   )rT   r   rD   rJ   r   )r   z
str | NonerD   rF   )r   boolrD   rF   )NN)rT   zt.IO[t.Any] | Noner   bool | NonerD   r   )tabNN)r   zpdb.Pdbr   rF   r   t.IO[str] | Nonerp   r   r~   rG   rD   rE   )"r   r   r   r   rp   rq   r   FORCED_WIDTHr   rk   r   r   r   BinaryIOr   rt   _CHUNK_SIZErU   r   visible_prompt_funchidden_prompt_funcr   r	   r   r   pdbPdbr   itemsosenvironget	Exceptionr   )r   r   r   r   bytes_input
echo_input	old_stdin
old_stdout
old_stderrold_forced_widthstream_mixerr   old_stdout_fdold_stderr_fdr   r   r   r   old_visible_prompt_funcold_hidden_prompt_funcold__getchar_funcold_should_strip_ansiold__compat_should_strip_ansir   old_envkeyvaluer   r   r   s                              @@@r   	isolationCliRunner.isolation7  sF    D (||<
II	ZZ
ZZ
%22"$
mmC "}	 %Z0$Z0??'(vv

L6I6IJ( K "5,,YS"
 	
	J ?? &'J"(\\%

 )\\%%

 
Z	 	 	 
!	 
Z	 	( 	( 
!	( 
Z	 	 
!	  EI	&	6A		 	 #)"<"<!'!:!:"OO % 7 7(/(A(A%ww''%2"$0!""3$5!  %&*'+	#	#	#	 $#	 %	#	
 #	 #	 #	J -	,!iik
U!zz~~c2=JJsO ',BJJsO *  &&(;(;\=P=PQQ%mmo
U=JJsO ',BJJsO . $CJ#CJ!CI)@F&(>F%/FO&;E#(EG%&6J#+CGG/ %  % 	 &mmo
U=JJsO$  ',BJJsO . $CJ#CJ!CI)@F&(>F%/FO&;E#(EG%&6J#+CGGs   JS;P  O">P   S:O/BS
O,'P  +O,,P  /
O=9S<O==S SP.,S.
P<	8S;P<	<BSSc                ^   SnUc  U R                   nU R                  X4US9 n	Sn
SnSn[        U[        5      (       a  [        R
                  " U5      n UR                  S5      n UR                  " SU=(       d    SUS.UD6n
[        R"                  R)                  5         [        R*                  R)                  5         U	S   R-                  5       nU	S	   R-                  5       nU	S
   R-                  5       n SSS5        [/        U WWWW
WWUS9$ ! [         a    U R                  U5      n Nf = f! [         a  n[        R                  " 5       n[        R                  " SUR                  5      nUc  SnUS:w  a  Un[        U[         5      (       dI  [        R"                  R%                  [        U5      5        [        R"                  R%                  S5        S	nUn SnAGNbSnAf[&         a,  nU(       d  e UnS	n[        R                  " 5       n SnAGNSnAff = f! [        R"                  R)                  5         [        R*                  R)                  5         U	S   R-                  5       nU	S	   R-                  5       nU	S
   R-                  5       nf = f! , (       d  f       GN= f)ak  Invokes a command in an isolated environment.  The arguments are
forwarded directly to the command line script, the `extra` keyword
arguments are passed to the :meth:`~clickpkg.Command.main` function of
the command.

This returns a :class:`Result` object.

:param cli: the command to invoke
:param args: the arguments to invoke. It may be given as an iterable
             or a string. When given as string it will be interpreted
             as a Unix shell command. More details at
             :func:`shlex.split`.
:param input: the input data for `sys.stdin`.
:param env: the environment overrides.
:param catch_exceptions: Whether to catch any other exceptions than
                         ``SystemExit``. If :data:`None`, the value
                         from :class:`CliRunner` is used.
:param extra: the keyword arguments to pass to :meth:`main`.
:param color: whether the output should contain color codes. The
              application can still override this explicitly.

.. versionadded:: 8.2
    The result object has the ``output_bytes`` attribute with
    the mix of ``stdout_bytes`` and ``stderr_bytes``, as the user would
    see it in its terminal.

.. versionchanged:: 8.2
    The result object always returns the ``stderr_bytes`` stream.

.. versionchanged:: 8.0
    The result object has the ``return_value`` attribute with
    the value returned from the invoked command.

.. versionchanged:: 4.0
    Added the ``color`` parameter.

.. versionchanged:: 3.0
    Added the ``catch_exceptions`` parameter.

.. versionchanged:: 3.0
    The result object has the ``exc_info`` attribute with the
    traceback if available.
N)r   r   r   r   	prog_namerQ   )argsr  zint | t.Any | Noner   r      r   )r   r  r   rF   shlexsplitpopKeyErrorr   main
SystemExitr   r   r   r   coderJ   rp   r$   r  r_   rq   getvaluer   )r   r   r  r   r   r   r   extrar   
outstreamsr   r   r   r  r   e_coderp   rq   r   s                      r   invokeCliRunner.invoke  sB   j ##44^^%^>*L.2II$$${{4(<!IIk2	2"xxVTZR9VPUV2 

  "

  "#A//1#A//1#A//1W ?Z %	
 		
G  < 66s;	<
  #<<> 4aff=>FQ; !I!&#..JJ$$S[1JJ$$T*F"	 *'		<<>* 

  "

  "#A//1#A//1#A//1W ?>st   2JD'D4A5JD1.J0D11J4
H >B#G'!H#'H 4!HH#H  H##A7JJ
J,c              #    #    [         R                  " 5       n[        R                  " US9n[         R                  " U5         Uv   [         R                  " U5        Uc  SSKn UR                  U5        gg! [         a     gf = f! [         R                  " U5        Uc'  SSKn UR                  U5        f ! [         a     f f = ff = f7f)a  A context manager that creates a temporary directory and
changes the current working directory to it. This isolates tests
that affect the contents of the CWD to prevent them from
interfering with each other.

:param temp_dir: Create the temporary directory under this
    directory. If given, the created directory is not removed
    when exiting.

.. versionchanged:: 8.0
    Added the ``temp_dir`` parameter.
)dirNr   )r  getcwdtempfilemkdtempchdirshutilrmtreeOSError)r   temp_dircwddtr0  s        r   isolated_filesystemCliRunner.isolated_filesystem~  s       iik(+
	HHHSMMM"%	  
   HHSMMM"%   sf   A CB C%A8 6C8
BCBCC
'B98C
9
CC
CC

C)r   r   r   r   )zutf-8NFT)
r   rF   r   $cabc.Mapping[str, str | None] | Noner   r   r   r   rD   rE   )r   r   rD   rF   r   )r   r8  rD   zcabc.Mapping[str, str | None])NNF)r    str | bytes | t.IO[t.Any] | Noner   r8  r   r   rD   z8cabc.Iterator[tuple[io.BytesIO, io.BytesIO, io.BytesIO]])NNNNF)r   r   r  zstr | cabc.Sequence[str] | Noner   r9  r   r8  r   r   r   r   r%  rG   rD   r   )r3  zstr | os.PathLike[str] | NonerD   zcabc.Iterator[str])rL   rM   rN   rO   rg   r   r   r   
contextlibcontextmanagerr  r(  r6  rP   rQ   r   r   r   r     sY   . 48 !%
1
1 2
1 	
1
 
1 

1" AE=	&  3748	S,/S, 2S, 	S,
 
BS, S,p 152648(,o
o
 .o
 0	o

 2o
 &o
 o
 o
 
o
b 8<5	 r   r   )rT   zEchoingStdin | NonerD   zcabc.Iterator[None])r   r9  r   rF   rD   rC   )&
__future__r   collections.abcabccabcr:  rn   r  r   r  r   r-  typingr   typesr   r   r   r   r   r	   r
   TYPE_CHECKING	_typeshedr   corer   r   r;  rU   ro   rW   rk   TextIOWrapperrt   r   r   r   rQ   r   r   <module>rF     s    "   	 	 
  
        (??(! !D   "**  &C C9"** 9x+69(K4 K4\X Xr   