
    |h-                        d Z ddlZddlZddlZddlmZ dbdZeede_	        dcdZ
dddZ G d	 d
      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d       Z G d! d"      Z G d# d$      Z G d% d&      Z G d' d(      Z G d) d*      Z G d+ d,      Z G d- d.      Z G d/ d0      Z G d1 d2      Z  G d3 d4      Z! G d5 d6      Z" G d7 d8      Z# G d9 d:      Z$ G d; d<      Z% G d= d>      Z& ejN                  d?d@dAg      Z( G dB dCe(      Z) G dD dE      Z* e*       Z+ G dF dG      Z, G dH dI      Z-dJ Z.dK Z/ G dL dMe0      Z1 e1ddNdO      Z2 G dP dQejf                        Z4 G dR dS      Z5dedTZ6dfdUZ7dV Z8 G dW dX      Z9 G dY dZ      Z: G d[ d\      Z;d] Z<e<dgd^       Z=d_ Z>ddd`Z?dhdaZ@y)izAThis module has components that are used for testing Python Fire.    N)test_components_py3c                     | |||||fS N )arg1arg2arg3arg4arg5arg6s         S/var/www/html/test/engine/venv/lib/python3.12/site-packages/fire/test_components.pyidentityr      s    	tT4t	++    )r   r
      c                     | |z  S )zMultiplies num by rate.

  Args:
    num (int): the num you want to multiply
    rate (int): the rate for multiplication
  Returns:
    Multiplication of num by rate
  r   )numrates     r   multiplier_with_docstringr      s     
tr   c                     | S r   r   )helps    r   function_with_helpr   *   s    	+r   c                       e Zd Zy)EmptyN__name__
__module____qualname__r   r   r   r   r   .       r   r   c                       e Zd Zy)OldStyleEmptyNr   r   r   r   r    r    2   r   r   r    c                       e Zd Zd Zy)WithInitc                      y r   r   selfs    r   __init__zWithInit.__init__8   s    r   Nr   r   r   r&   r   r   r   r"   r"   6   s    	r   r"   c                       e Zd ZddZy)ErrorInConstructorc                 &    || _         t        d      )NzError in constructor)value
ValueErrorr%   r+   s     r   r&   zErrorInConstructor.__init__>   s    DJ
+
,,r   N)r+   r'   r   r   r   r)   r)   <   s    -r   r)   c                       e Zd ZdZddZy)WithHelpArgz2Test class for testing when class has a help= arg.c                 $    || _         ddi| _        y )N__helpzhelp in a dict)has_help
dictionary)r%   r   s     r   r&   zWithHelpArg.__init__F   s    DM!12DOr   NTr   r   r   __doc__r&   r   r   r   r/   r/   C   s
    :3r   r/   c                       e Zd Zd Zd Zy)
NoDefaultsc                     d|z  S Nr   r   r%   counts     r   doublezNoDefaults.doubleM       u9r   c                     d|z  S N   r   r;   s     r   triplezNoDefaults.tripleP   r>   r   Nr   r   r   r=   rB   r   r   r   r8   r8   K   s    r   r8   c                   *    e Zd ZdZddZddZ	 ddZy)WithDefaultsz1Class with functions that have default arguments.c                     d|z  S )zReturns the input multiplied by 2.

    Args:
      count: Input number that you want to double.

    Returns:
      A number that is the double of count.
    r   r   r;   s     r   r=   zWithDefaults.doubleW   s     u9r   c                     d|z  S r@   r   r;   s     r   rB   zWithDefaults.tripleb   r>   r   c                     |S r   r   )r%   strings     r   textzWithDefaults.texte   s	    
 Mr   Nr   )P00010203040506070809101112131415161718192021222324252627282930313233343536373839)r   r   r   r6   r=   rB   rJ   r   r   r   rE   rE   T   s    9	
9r   rE   c                       e Zd ZddZddZy)OldStyleWithDefaultsc                     d|z  S r:   r   r;   s     r   r=   zOldStyleWithDefaults.doubleo   r>   r   c                     d|z  S r@   r   r;   s     r   rB   zOldStyleWithDefaults.tripler   r>   r   NrK   rC   r   r   r   rN   rN   m   s    r   rN   c                   "    e Zd Zd ZddZddZy)MixedDefaultsc                      y)N
   r   r$   s    r   tenzMixedDefaults.tenx   s    r   c                     |d|z  z   S r:   r   r%   alphabetas      r   sumzMixedDefaults.sum{   s    1t8r   c                 
    ||fS r   r   rW   s      r   r   zMixedDefaults.identity~   s    $;r   Nr   r   )0)r   r   r   rU   rZ   r   r   r   r   rR   rR   v   s    r   rR   c                       e Zd ZddZddZy)SimilarArgNamesc                 
    ||fS r   r   )r%   bool_onebool_twos      r   r   zSimilarArgNames.identity   s    Xr   Nc                 
    ||fS r   r   )r%   arX   s      r   	identity2zSimilarArgNames.identity2   s    e8Or   )FF)NN)r   r   r   r   re   r   r   r   r_   r_      s    r   r_   c                       e Zd ZddZy)CapitalizedArgNamesc                     ||z   S r   r   )r%   DeltaGammas      r   rZ   zCapitalizedArgNames.sum   s    5=r   N)      ?g       @)r   r   r   rZ   r   r   r   rg   rg      s    r   rg   c                   @    e Zd ZddZddZdeie_        deie_        y)Annotationsc                     d|z  S r:   r   r;   s     r   r=   zAnnotations.double   r>   r   c                     d|z  S r@   r   r;   s     r   rB   zAnnotations.triple   r>   r   r<   NrK   )r   r   r   r=   rB   float__annotations__r   r   r   rm   rm      s(     $U+&#U+&r   rm   c                       e Zd ZdZd Zy)TypedPropertieszDTest class for testing Python Fire with properties of various types.c                     d| _         d| _        t               | _        ddddd| _        dd	g| _        d
| _        d| _        y )NT)   r   rA   Erd   b)r   ru   )echonestalexbethany)carrydividemyexcitingstring)rX   rY   rE   charliedeltarx   foxgammar$   s    r   r&   zTypedProperties.__init__   sL    DJDI>DL
DJ #DI"DH#DJr   Nr5   r   r   r   rs   rs      s
    L$r   rs   c                       e Zd ZdZd ZddZy)VarArgsz@Test class for testing Python Fire with a property with varargs.c                 R    d }g }|D ]  }||}n||z  }|j                  |        |S r   )append)r%   itemstotalsumsitems        r   cumsumszVarArgs.cumsums   sA    ED 	
kk% Kr   c                 *    ||dj                  |      fS )N join)r%   rX   rY   charss       r   varcharszVarArgs.varchars   s    $&&r   Nr\   )r   r   r   r6   r   r   r   r   r   r   r      s    H	'r   r   c                       e Zd Zd Zd Zy)Underscoresc                     d| _         y )Nzfish fingers)underscore_exampler$   s    r   r&   zUnderscores.__init__   s
    ,Dr   c                     |S r   r   )r%   underscore_args     r   underscore_functionzUnderscores.underscore_function   s    r   N)r   r   r   r&   r   r   r   r   r   r      s    -r   r   c                       e Zd ZddZy)BoolConverterc                     t        |      S r   )bool)r%   args     r   as_boolzBoolConverter.as_bool   s    9r   N)F)r   r   r   r   r   r   r   r   r      s    r   r   c                       e Zd Zd Zy)
ReturnsObjc                     ~t               S r   )r   )r%   r   s     r   get_objzReturnsObj.get_obj   s    ?r   N)r   r   r   r   r   r   r   r   r      s    r   r   c                       e Zd ZddZddZy)NumberDefaultsc                     d|z  S Nrk   r   r%   divisors     r   
reciprocalzNumberDefaults.reciprocal       =r   c                     d|z  S r   r   r   s     r   integer_reciprocalz!NumberDefaults.integer_reciprocal   r   r   N)g      $@rT   )r   r   r   r   r   r   r   r   r   r      s    r   r   c                       e Zd Zd Zd Zy)InstanceVarsc                      || _         || _        y r   r   r   r%   r   r   s      r   r&   zInstanceVars.__init__   s    DIDIr   c                 6    | j                   | j                  ||fS r   r   r   s      r   runzInstanceVars.run   s    IItyy$--r   N)r   r   r   r&   r   r   r   r   r   r      s    .r   r   c                        e Zd Zd Zd ZddZy)Kwargsc                     |S r   r   r%   kwargss     r   propszKwargs.props   s    Mr   c                 n    dj                  t        |j                                     j                         S )N )r   sortedkeysupperr   s     r   r   zKwargs.upper   s%    88F6;;=)*0022r   Nc                     |||fS r   r   )r%   
positionalnamedr   s       r   r   z
Kwargs.run   s    v&&r   r   )r   r   r   r   r   r   r   r   r   r   r      s    3'r   r   c                       e Zd Zd Zy)ErrorRaiserc                     t        d      )NzThis error is part of a test.r,   r$   s    r   failzErrorRaiser.fail   s    
4
55r   N)r   r   r   r   r   r   r   r   r      s    6r   r   c                       e Zd Zd Zd Zy)NonComparablec                     t        d      Nz+Instances of this class cannot be compared.r   r%   others     r   __eq__zNonComparable.__eq__       
B
CCr   c                     t        d      r   r   r   s     r   __ne__zNonComparable.__ne__  r   r   N)r   r   r   r   r   r   r   r   r   r      s    DDr   r   c                       e Zd Zd Zd Zy)EmptyDictOutputc                     i S r   r   r$   s    r   totally_emptyzEmptyDictOutput.totally_empty  s    Ir   c                 
    ddiS )N__do_not_print_meru   r   r$   s    r   nothing_printablez!EmptyDictOutput.nothing_printable  s    ##r   N)r   r   r   r   r   r   r   r   r   r     s    $r   r   c                       e Zd Zd Zy)CircularReferencec                     i }||d<   |S )Nyr   r%   xs     r   createzCircularReference.create  s    
AAcFHr   N)r   r   r   r   r   r   r   r   r     s    r   r   c                       e Zd Zd Zd Zy)OrderedDictionaryc                 *    t        j                         S r   collectionsOrderedDictr$   s    r   emptyzOrderedDictionary.empty  s    ""$$r   c                 B    t        j                         }d|d<   d|d<   |S )NAr   r   )r%   ordered_dicts     r   	non_emptyzOrderedDictionary.non_empty  s)    **,LLLOr   N)r   r   r   r   r   r   r   r   r   r     s    %r   r   c                       e Zd ZdZd Zd Zy)
NamedTuplez2Functions returning named tuples used for testing.c                 F    t        j                  dddg      } |dd      S )z(Point example straight from Python docs.Pointr   r         )r   r   
namedtupler%   r   s     r   pointzNamedTuple.point&  s&     ""7S#J7Er?r   c                 F    t        j                  dddg      } |dd      S )zField name equals value.r   r   r   r   r   r   r   s     r   matching_nameszNamedTuple.matching_names,  s'     ""7S#J7E3#r   N)r   r   r   r6   r   r   r   r   r   r   r   #  s    :r   r   c                        e Zd ZdZdZd Zd Zy)CallableWithPositionalArgs#Test class for supporting callable.ru   c                     ||z   S r   r   )r%   r   r   s      r   __call__z#CallableWithPositionalArgs.__call__8      q5Lr   c                     |dz   S Nru   r   r   s     r   fnzCallableWithPositionalArgs.fn;  r   r   N)r   r   r   r6   TESTr   r   r   r   r   r   r   3  s    +	
$r   r   NamedTuplePointr   r   c                       e Zd ZdZd Zy)SubPointz@Used for verifying subclasses of namedtuples behave as intended.c                 4    | j                   | j                  z   S r   r   r$   s    r   coordinate_sumzSubPoint.coordinate_sumE  s    66DFF?r   N)r   r   r   r6   r  r   r   r   r  r  B  s
    Hr   r  c                       e Zd ZdZd Zd Zy)CallableWithKeywordArgumentr   c                 j    |j                         D ]   \  }}t        dj                  ||             " y )Nz{}: {})r   printformat)r%   r   keyr+   s       r   r   z$CallableWithKeywordArgument.__call__L  s.    lln )
UHOOC'()r   c                     t        |       y r   r
  r%   msgs     r   	print_msgz%CallableWithKeywordArgument.print_msgP  s	    	#Jr   N)r   r   r   r6   r   r  r   r   r   r  r  I  s    +)r   r  c                        e Zd ZdZddZddZy)ClassWithDocstringzbTest class for testing help text output.

  This is some detail description of this test class.
  c                     || _         y)zConstructor of the test class.

    Constructs a new ClassWithDocstring object.

    Args:
      message: The default message to print.
    N)message)r%   r  s     r   r&   zClassWithDocstring.__init__]  s     DLr   Nc                 6    || j                   }t        |       y)zPrints a message.N)r  r
  r  s     r   r  zClassWithDocstring.print_msgg  s    
{LLc	#Jr   )zHello!r   )r   r   r   r6   r&   r  r   r   r   r  r  W  s    
r   r  c                        e Zd ZdZed        Zy)ClassWithMultilineDocstringzTest class for testing help text output with multiline docstring.

  This is a test class that has a long docstring description that spans across
  multiple lines for testing line breaking in help text.
  c              #   6   K   t        |       E d{    y7 w)a  Generators have a ``Yields`` section instead of a ``Returns`` section.

    Args:
        n (int): The upper limit of the range to generate, from 0 to `n` - 1.

    Yields:
        int: The next number in the range of 0 to `n` - 1.

    Examples:
        Examples should be written in doctest format, and should illustrate how
        to use the function.

        >>> print([i for i in example_generator(4)])
        [0, 1, 2, 3]

    N)range)ns    r   example_generatorz-ClassWithMultilineDocstring.example_generatoru  s     $ Qxs   N)r   r   r   r6   staticmethodr  r   r   r   r  r  n  s      r   r  c                  
    h dS N>   threeru   r   r   r   r   r   
simple_setr!    s    	r   c                      t        h d      S r  )	frozensetr   r   r   simple_frozensetr$    s    	?	##r   c                       e Zd ZdZy)Subdictz)A subclass of dict, for testing purposes.N)r   r   r   r6   r   r   r   r&  r&    s    1r   r&  blue)ru   redc                       e Zd ZdZdZdZy)Colorru   r   rA   N)r   r   r   REDGREENBLUEr   r   r   r*  r*    s    	#
%	
$r   r*  c                   :    e Zd ZdZdZd Zed        Zed        Z	y)HasStaticAndClassMethodsz0A class with a static method and a class method.ru   c                     || _         y r   )instance_state)r%   r1  s     r   r&   z!HasStaticAndClassMethods.__init__  s
    (Dr   c                     | S r   r   )argss    r   	static_fnz"HasStaticAndClassMethods.static_fn  s    Kr   c                      || j                   z   S r   )CLASS_STATE)clsr3  s     r   class_fnz!HasStaticAndClassMethods.class_fn  s    #//!!r   N)
r   r   r   r6   r6  r&   r  r4  classmethodr8  r   r   r   r/  r/    s7    8+)   " "r   r/  c                     ~ ~~|S )zFunction with varargs.

  Args:
    arg1: Position arg docstring.
    arg2: Position arg docstring.
    arg3: Flags docstring.
    *varargs: Accepts unlimited positional args.
  Returns:
    The unlimited positional args.
  r   )r   r   r	   varargss       r   function_with_varargsr<    s     D$	.r   c                     ~| |fS r   r   r   r   r   s      r   function_with_keyword_argumentsr?    s    
	vr   c                       y)zThis has code in the docstring.



  Example:
    x = fn_with_code_in_docstring()
    indentation_matters = True



  Returns:
    True.
  Tr   r   r   r   fn_with_code_in_docstringrA    s     
r   c                   <    e Zd ZdZd
dZd Zd Zd Zd Zd Z	d Z
y	)BinaryCanvasz:A canvas with which to make binary art, one bit at a time.c                 |    t        |      D cg c]  }dg|z  
 c}| _        || _        d| _        d| _        y c c}w Nr   )r  pixels_size_row_col)r%   size_s      r   r&   zBinaryCanvas.__init__  s8    ',T{3!A3:3DKDJDIDI 4s   9c                 F    dj                  d | j                  D              S )N
c              3   L   K   | ]  }d j                  d |D                yw)r   c              3   2   K   | ]  }t        |        y wr   )str).0pixels     r   	<genexpr>z1BinaryCanvas.__str__.<locals>.<genexpr>.<genexpr>  s     -U-s   Nr   )rQ  rows     r   rS  z'BinaryCanvas.__str__.<locals>.<genexpr>  s&      F25---Fs   "$)r   rF  r$   s    r   __str__zBinaryCanvas.__str__  s(    99 F9=F F Fr   c                     t        |        | S r   r  r$   s    r   showzBinaryCanvas.show  s    	$KKr   c                 V    || j                   z  | _        || j                   z  | _        | S r   )rG  rH  rI  )r%   rT  cols      r   movezBinaryCanvas.move  s'    djj DIdjj DIKr   c                 $    | j                  d      S r   setr$   s    r   onzBinaryCanvas.on      88A;r   c                 $    | j                  d      S rE  r\  r$   s    r   offzBinaryCanvas.off  r_  r   c                 R    || j                   | j                     | j                  <   | S r   )rF  rH  rI  r-   s     r   r]  zBinaryCanvas.set  s"    (-DKK		499%Kr   Nr   )r   r   r   r6   r&   rU  rW  rZ  r^  ra  r]  r   r   r   rC  rC    s)    BF
r   rC  c                       e Zd Zd Zd Zy)DefaultMethodc                     d|z  S r:   r   r%   numbers     r   r=   zDefaultMethod.double      v:r   c                     d }|S )Nc                       y)NzUndefined functionr   r   r   r   _missingz+DefaultMethod.__getattr__.<locals>._missing  s    !r   r   )r%   namerk  s      r   __getattr__zDefaultMethod.__getattr__  s    "Or   N)r   r   r   r=   rm  r   r   r   rd  rd    s    r   rd  c                   "    e Zd Zd Zed        Zy)InvalidPropertyc                     d|z  S r:   r   rf  s     r   r=   zInvalidProperty.double  rh  r   c                     t        d      )Ntestr   r$   s    r   propzInvalidProperty.prop  s    
V
r   N)r   r   r   r=   propertyrs  r   r   r   ro  ro    s      r   ro  c                 B     t        j                          fd       }|S )Nc                       | i |S r   r   )r3  r   fs     r   wrapperz!simple_decorator.<locals>.wrapper  s    dfr   )	functoolswraps)rw  rx  s   ` r   simple_decoratorr{    s#    ??1 	.r   c                     d| z  S )NzHello %sr   )rl  s    r   decorated_methodr}    s    	d	r   c                 (    ~ ~|j                  d      S )zFunction with kwarg.

  :param arg1: Description of arg1.
  :param arg2: Description of arg2.
  :key arg3: Description of arg3.
  r	   getr>  s      r   fn_with_kwargr    s     D	F	r   c                 *    ~ ~~|j                  d      S )zFunction with kwarg and defaults.

  :param arg1: Description of arg1.
  :param arg2: Description of arg2.
  :key arg3: Description of arg3.
  r	   r  )r   r   optr   s       r   fn_with_kwarg_and_defaultsr  $  s     D#	F	r   c                 
    ~~| S )zFunction with kwarg and defaults.

  :key first: Description of first.
  :key last: Description of last.
  :key late: Description of late.
  r   firstlastlates      r   fn_with_multiple_defaultsr  /  s     D	,r   )rT      )r   r4   )ru   )rA   )Worldr  )Ar6   r   enumry  firer   py3r   intrq   r   r   r   r    r"   r)   r/   r8   rE   rN   rR   r_   rg   rm   rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  CALLABLE_WITH_KEYWORD_ARGUMENTr  r  r!  r$  dictr&  SUBDICTEnumr*  r/  r<  r?  rA  rC  rd  ro  r{  r}  r  r  r  r   r   r   <module>r     s,   H    +, %(5 	  	 	- -3 3  2 	 	  	, 	,$ $&' '$    . .	' 	'6 6D D$ $ 	 	  	 	 )+(():S#JG   "=!>  . 8$2d 2
 a'
(DII " ""
" B    
r   