ó
    Ö›‘h­R  ã                   ó  • S r SSKrSSKJr  SSKJrJr  SSKJrJ	r	J
r
  SSKJrJrJrJr  SSKJr   " S S	\5      r " S
 S\S9rS r " S S\R,                  5      r " S S\R,                  5      r " S S\R,                  5      r " S S\
R4                  5      r " S S\
R4                  5      r " S S\5      rS r " S S\
R4                  5      r " S S\
R4                  5      r  " S S \
R4                  5      r! " S! S"\5      r"S#r#S$r$g)%z*
Test cases for twisted.python._shellcomp
é    N)ÚBytesIO)ÚListÚOptional)Ú
_shellcompÚreflectÚusage)ÚCompleteFilesÚCompleteListÚ	CompleterÚCompletions)Úunittestc                   ó   • \ rS rSrSrS rSrg)ÚZshScriptTestMetaé   z"
Metaclass of ZshScriptTestMixin.
c                 óz   • S nSU;   a  US    H  u  pVU" XV5      nXsSU-   '   M     [         R                  XX#5      $ )Nc                 ó   ^ ^• U U4S jnU$ )Nc                 ó   >• [        U TT5      $ )N)Útest_genZshFunction)ÚselfÚcmdNameÚoptionsFQPNs    €€ÚfC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/python/test/test_shellcomp.pyÚrunTestÚ<ZshScriptTestMeta.__new__.<locals>.makeTest.<locals>.runTest   s   ø€ Ü*¨4°¸+ÓFÐFó    © )r   r   r   s   `` r   ÚmakeTestÚ+ZshScriptTestMeta.__new__.<locals>.makeTest   s   ù€ öGð ˆNr   ÚgenerateForÚtest_genZshFunction_)ÚtypeÚ__new__)ÚclsÚnameÚbasesÚattrsr   r   r   Útests           r   r"   ÚZshScriptTestMeta.__new__   sN   € ò	ð ˜EÓ!Ø(-¨mÔ(<Ñ$�Ù Ó5�Ø:>Ð,¨wÑ6Ó7ñ )=ô �|‰|˜C uÓ4Ð4r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r"   Ú__static_attributes__r   r   r   r   r      s   † ñõ5r   r   c                   ó   • \ rS rSrSrSrg)ÚZshScriptTestMixiné(   aw  
Integration test helper to show that C{usage.Options} classes can have zsh
completion functions generated for them without raising errors.

In your subclasses set a class variable like so::

  #            | cmd name | Fully Qualified Python Name of Options class |
  #
  generateFor = [('conch',  'twisted.conch.scripts.conch.ClientOptions'),
                 ('twistd', 'twisted.scripts.twistd.ServerOptions'),
                 ]

Each package that contains Twisted scripts should contain one TestCase
subclass which also inherits from this mixin, and contains a C{generateFor}
list appropriate for the scripts in that package.
r   N)r)   r*   r+   r,   r-   r.   r   r   r   r0   r0   (   s   † ôr   r0   )Ú	metaclassc           	      ó8  • [        5       nU R                  [        R                  SU5         [        R
                  " U5      " 5       n UR                  / SQ5        U R                  S5        UR                  S5        U R                  S[        UR!                  S5      5      5        UR                  S5        UR#                  5         [%        US	5      (       a™  UR&                   H‰  u  pgp‰ UR                  US
SS/5        U R                  S5        UR                  S5        U R                  S[        UR!                  S5      5      5        UR                  S5        UR#                  5         M‹     U R)                  5         g! [         a  n[        R                  " SU< 35      eSnAff = f! [         a  n[        R                  " SU45      eSnAf[         a     GNuf = f! [         a  n[        R                  " SU45      eSnAf[         a     GNf = f)a)  
Generate completion functions for given twisted command - no errors
should be raised

@type cmdName: C{str}
@param cmdName: The name of the command-line utility e.g. 'twistd'

@type optionsFQPN: C{str}
@param optionsFQPN: The Fully Qualified Python Name of the C{Options}
    class to be tested.
Ú_shellCompFilez.Couldn't import or instantiate Options class: N©Ú ú--_shell-completionúzsh:2zSystemExit not raisedz&ImportError calling parseOptions(): %sr   é   ÚsubCommandsr6   r7   zzsh:3z4ImportError calling parseOptions() on subcommand: %s)r   Úpatchr   ÚOptionsr   ÚnamedAnyÚ	Exceptionr   ÚSkipTestÚparseOptionsÚfailÚImportErrorÚ
SystemExitÚseekÚassertEqualÚlenÚreadÚtruncateÚhasattrr:   ÚflushWarnings)
r   r   r   Ú
outputFileÚoÚeÚcmdÚshortÚparserÚdocs
             r   r   r   ;   sÓ  € ô “€JØ‡J�JŒu�}‰}Ð.°
Ô;ð
Ü×Ò˜[Ô)Ó+ˆð
+Ø	�‰Ò;Ô<ð 	�	‰	Ð)Ô*Ø‡O�O�AÔà×Ñ�Qœ˜JŸO™O¨AÓ.Ó/Ô0Ø‡O�O�AÔØ×ÑÔô ˆq�-× Ñ Ø'(§}¤}Ñ#ˆC˜ð3Ø—‘  RÐ)>ÀÐHÔIð —	‘	Ð1Ô2à�O‰O˜AÔà×Ñ˜Q¤ J§O¡O°AÓ$6Ó 7Ô8Ø�O‰O˜AÔØ×ÑÖ!ñ% (5ð, 	×ÑÕøô] ó 
Ü×ÓÚEFÐHó
ð 	
ûð
ûô ó Pô ×ÒÐ HÈ1È$ÓOÐOûÜó Úðûô ó ô ×'Ò'ØMÐPQÈtóð ûô ó ÚðúsS   ­F Á	F0 Ã-G&Æ
F-ÆF(Æ(F-Æ0
G#Æ:GÇG#Ç"G#Ç&
HÇ0HÈHÈHc                   óf   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rSrg)ÚZshTestsé   z
Tests for zsh completion code
c                 óV  • [        5       n[        R                  " US[        5       5      n[        R
                  R                  R                  5       nUR                  [         R
                  R                  5        U R                  UR                  U5        U R                  UR                  [        [        R
                  R                  5      5        U R                  UR                  [        R
                  R                  5        [        R
                  R                  R                  5       nUR                  [         R
                  R                  5        U R                  UR                  U5        U R                  UR                  [        R
                  R                  5        g)zQ
Are `compData' attributes you can place on Options classes
picked up correctly?
ÚaceN)ÚFighterAceExtendedOptionsr   ÚZshArgumentsGeneratorr   ÚFighterAceOptionsÚcompDataÚdescriptionsÚcopyÚupdaterE   ÚmultiUseÚsetÚmutuallyExclusiveÚ
optActionsÚextraActions)r   ÚoptsÚagr[   ra   s        r   Útest_accumulateMetadataÚ ZshTests.test_accumulateMetadata„   s#  € ô
 )Ó*ˆÜ×-Ò-¨d°E¼7»9ÓEˆä(×1Ñ1×>Ñ>×CÑCÓEˆØ×ÑÔ5×>Ñ>×KÑKÔLà×Ñ˜Ÿ™¨,Ô7Ø×Ñ˜Ÿ™¤cÔ*;×*DÑ*D×*MÑ*MÓ&NÔOØ×ÑØ× Ñ Ô"3×"<Ñ"<×"NÑ"Nô	
ô '×/Ñ/×:Ñ:×?Ñ?ÓAˆ
Ø×ÑÔ3×<Ñ<×GÑGÔHØ×Ñ˜Ÿ™¨
Ô3à×Ñ˜Ÿ™Ô*;×*DÑ*D×*QÑ*QÕRr   c                 óÌ   •  " S S[         5      nU" 5       n[        R                  " US[        5       5      n1 Sk1 Sk1 Sk1 Sk1 SkS	.nU R	                  UR
                  U5        g
)z’
Exercise a corner-case of ZshArgumentsGenerator.makeExcludesDict()
where the long option name already exists in the `excludes` dict being
built.
c                   ó0   • \ rS rSr/ SQ/r\" / SQ/S9rSrg)ÚGZshTests.test_mutuallyExclusiveCornerCase.<locals>.OddFighterAceOptionsé¢   )ÚanatraNz0Select the Anatra DS as your dogfighter aircraft)rk   ÚfokkerÚalbatrosÚspadÚbristol©r`   r   N)r)   r*   r+   r,   ÚoptFlagsr   rZ   r.   r   r   r   ÚOddFighterAceOptionsri   ¢   s!   † ò
 UðˆHñ #Ú#VÐ"Wñ‹Hr   rr   rV   >   ÚbÚfÚsrn   rk   rl   ro   >   Úars   rt   ru   rn   rl   ro   rm   >   rv   rt   ru   rn   rk   rl   rm   >   rv   rs   ru   rn   rk   ro   rm   >   rv   rs   rt   rk   rl   ro   rm   )rm   rk   ro   rl   rn   N)rW   r   rX   r   rE   Úexcludes)r   rr   rc   rd   Úexpecteds        r   Ú test_mutuallyExclusiveCornerCaseÚ)ZshTests.test_mutuallyExclusiveCornerCase›   s^   € ô		Ô#<ô 		ñ $Ó%ˆÜ×-Ò-¨d°E¼7»9ÓEˆò OÚSÚNÚNÚNñ
ˆð 	×Ñ˜Ÿ™ hÕ/r   c                 ó8  • [        5       n[        R                  " US[        5       5      nU R	                  SUR
                  5        U R	                  SUR                  5        U R	                  SUR                  5        U R	                  SUR                  5        g)z…
We pick up options that are only defined by having an
appropriately named method on your Options class,
e.g. def opt_foo(self, foo)
rV   ÚnocrashÚ
difficultyN)rW   r   rX   r   ÚassertInÚflagNameToDefinitionÚallOptionsNameToDefinitionÚparamNameToDefinition)r   rc   rd   s      r   Ú test_accumulateAdditionalOptionsÚ)ZshTests.test_accumulateAdditionalOptionsº   sr   € ô )Ó*ˆÜ×-Ò-¨d°E¼7»9ÓEˆà�‰�i ×!8Ñ!8Ô9Ø�‰�i ×!>Ñ!>Ô?à�‰�l B×$<Ñ$<Ô=Ø�‰�l B×$AÑ$AÕBr   c                 ó  •  " S S[         5      nU R                  [        [        R                  U" 5       S[        5       5         " S S[         5      nU R                  [        [        R                  U" 5       S[        5       5        g)zD
Using a parameter/flag name that doesn't exist
will raise an error
c                   ó$   • \ rS rSr\" SS0S9rSrg)Ú0ZshTests.test_verifyZshNames.<locals>.TmpOptionséÏ   ÚdetaillN)ra   r   ©r)   r*   r+   r,   r   rZ   r.   r   r   r   Ú
TmpOptionsr†   Ï   s   † á"¨y¸$Ð.?Ñ@‹Hr   rŠ   rV   c                   ó"   • \ rS rSr\" S/S9rSrg)Ú1ZshTests.test_verifyZshNames.<locals>.TmpOptions2é×   )ÚfooÚbarrp   r   Nr‰   r   r   r   ÚTmpOptions2rŒ   ×   s   † ñ #°nÐ5EÑF‹Hr   r�   N)rW   ÚassertRaisesÚ
ValueErrorr   rX   r   )r   rŠ   r�   s      r   Útest_verifyZshNamesÚZshTests.test_verifyZshNamesÉ   sn   € ô	AÔ2ô 	Að 	×ÑÜœ
×8Ñ8¹*»,ÈÌwËyô	
ô	GÔ3ô 	Gð
 	×ÑÜÜ×,Ñ,Ù‹MØÜ‹Iõ	
r   c                 ó(  • [        5       nU R                  [        R                  SU5        U R                  [        S/ SQ5        [        5       nU R                  [        UR                  5        U R                  [        UR                  5       5        g)z\
Generate a completion function, and test the textual output
against a known correct output
r4   Úargv)Úsillyr6   r7   r8   N)r   r;   r   r<   ÚsysÚSimpleProgOptionsr‘   rC   r@   rE   ÚtestOutput1Úgetvalue©r   rK   rc   s      r   Útest_zshCodeÚZshTests.test_zshCodeä   sh   € ô
 “Yˆ
Ø�
‰
”5—=‘=Ð"2°JÔ?Ø�
‰
”3˜Ò MÔNÜ Ó"ˆØ×Ñœ* d×&7Ñ&7Ô8Ø×Ñœ j×&9Ñ&9Ó&;Õ<r   c                 ó(  • [        5       nU R                  [        R                  SU5        U R                  [        S/ SQ5        [        5       nU R                  [        UR                  5        U R                  [        UR                  5       5        g)zm
Generate a completion function with subcommands,
and test the textual output against a known correct output
r4   r–   )Úsilly2r6   r7   r8   N)r   r;   r   r<   r˜   ÚSimpleProgWithSubcommandsr‘   rC   r@   rE   ÚtestOutput2r›   rœ   s      r   Útest_zshCodeWithSubsÚZshTests.test_zshCodeWithSubsð   sh   € ô
 “Yˆ
Ø�
‰
”5—=‘=Ð"2°JÔ?Ø�
‰
”3˜Ò NÔOÜ(Ó*ˆØ×Ñœ* d×&7Ñ&7Ô8Ø×Ñœ j×&9Ñ&9Ó&;Õ<r   c                 ó*  • [        5       nU R                  [        R                  SU5        [	        5       nU R                  [        UR                  / SQ5        UR                  S5        U R                  S[        UR                  S5      5      5        g)z`
Completion still happens even if a command-line is given
that would normally throw UsageError.
r4   )ú--fokkerÚserverú--unknown-optionz--unknown-option2r7   úzsh:5r   r9   N©r   r;   r   r<   rY   r‘   rC   r@   rD   rE   rF   rG   rœ   s      r   Útest_incompleteCommandLineÚ#ZshTests.test_incompleteCommandLineü   ss   € ô
 “Yˆ
Ø�
‰
”5—=‘=Ð"2°JÔ?Ü Ó"ˆà×ÑÜØ×Ñòô	
ð 	�‰˜Ôà×Ñ˜œC 
§¡°Ó 2Ó3Õ4r   c                 ól  • [        5       nU R                  [        R                  SU5        [	        5       nU R                  [        UR                  / SQ5        UR                  S5        U R                  S[        UR                  S5      5      5        UR                  S5        UR                  5         g)zÕ
Completion still happens even if a command-line is given
that would normally throw UsageError.

The existence of --unknown-option prior to the subcommand
will break subcommand detection... but we complete anyway
r4   )r¦   r¨   r§   ú--list-serverr7   r©   r   r9   N)r   r;   r   r<   rY   r‘   rC   r@   rD   rE   rF   rG   rH   rœ   s      r   Ú test_incompleteCommandLine_case2Ú)ZshTests.test_incompleteCommandLine_case2  s‹   € ô “Yˆ
Ø�
‰
”5—=‘=Ð"2°JÔ?Ü Ó"ˆà×ÑÜØ×Ñòô	
ð 	�‰˜Ôà×Ñ˜œC 
§¡°Ó 2Ó3Ô4à�‰˜ÔØ×ÑÕr   c                 ó*  • [        5       nU R                  [        R                  SU5        [	        5       nU R                  [        UR                  / SQ5        UR                  S5        U R                  S[        UR                  S5      5      5        g)z¸
Completion still happens even if a command-line is given
that would normally throw UsageError.

Break subcommand detection in a different way by providing
an invalid subcommand name.
r4   )r¦   zunknown-subcommandr®   r7   zzsh:4r   r9   Nrª   rœ   s      r   Ú test_incompleteCommandLine_case3Ú)ZshTests.test_incompleteCommandLine_case34  ss   € ô “Yˆ
Ø�
‰
”5—=‘=Ð"2°JÔ?Ü Ó"ˆà×ÑÜØ×Ñòô
	
ð 	�‰˜Ôà×Ñ˜œC 
§¡°Ó 2Ó3Õ4r   c                 ó*  • [        5       nU R                  [        R                  SU5        [	        5       nU R                  [        UR                  / SQ5        UR                  S5        U R                  S[        UR                  S5      5      5        g)zi
Ensure the optimization which skips building the subcommand list
under certain conditions isn't broken.
r4   )z--albar7   r8   r   r9   Nrª   rœ   s      r   Útest_skipSubcommandListÚ ZshTests.test_skipSubcommandListO  sp   € ô
 “Yˆ
Ø�
‰
”5—=‘=Ð"2°JÔ?Ü Ó"ˆà×ÑÜ˜×)Ñ)Ò+Uô	
ð 	�‰˜Ôà×Ñ˜œC 
§¡°Ó 2Ó3Õ4r   c                 óŽ   • [        5       n[        R                  " USS5      nUR                  S5      nU R	                  US5        g)zI
Test corner case fetching an option description from a method docstring
rV   Nr—   )rY   r   rX   ÚgetDescriptionrE   )r   rc   ÚargGenÚdescrs       r   Útest_poorlyDescribedOptMethodÚ&ZshTests.test_poorlyDescribedOptMethod_  sB   € ô !Ó"ˆÜ×1Ò1°$¸¸tÓDˆà×%Ñ% gÓ.ˆð 	×Ñ˜ Õ(r   c                 óÄ   •  " S S[         R                  5      n[        5       nU" 5       nU R                  USU5        U R	                  [
        UR                  / SQ5        g)z]
A C{Completer} with repeat=True may only be used as the
last item in the extraActions list.
c                   ór   • \ rS rSr\R
                  " \R                  " SS9\R                  " 5       /S9rSrg)Ú2ZshTests.test_brokenActions.<locals>.BrokenActionsir  T)Úrepeat)rb   r   N)	r)   r*   r+   r,   r   r   r   rZ   r.   r   r   r   ÚBrokenActionsr¿   r  s*   † Ø×(Ò(Ø#Ÿošo°TÑ:¸E¿OºOÓ<MÐNñ‹Hr   rÁ   r4   r5   N)r   r<   r   r;   r‘   r’   r@   )r   rÁ   rK   rc   s       r   Útest_brokenActionsÚZshTests.test_brokenActionsl  sO   € ô	œEŸM™Mô 	ô
 “Yˆ
Ù‹ˆØ�
‰
�4Ð)¨:Ô6Ø×ÑÜ˜×)Ñ)Ò+Oõ	
r   c                 óø   •  " S S[         R                  5      nU" 5       n[        R                  " USS5      nU R	                  UR                  S5      S5        U R	                  UR                  S5      S5        g)	zf
opt_* methods on Options classes should not override the
data provided in optFlags or optParameters.
c                   ó4   • \ rS rSr/ SQ/r/ SQ/rS rS rSrg)Ú5ZshTests.test_optMethodsDontOverride.<locals>.Optionsi„  )Úflagrt   úA flag)ÚparamÚpNúA paramc                 ó   • g©zjunk descriptionNr   ©r   s    r   Úopt_flagÚ>ZshTests.test_optMethodsDontOverride.<locals>.Options.opt_flagˆ  ó   � r   c                 ó   • grÍ   r   )r   rÉ   s     r   Ú	opt_paramÚ?ZshTests.test_optMethodsDontOverride.<locals>.Options.opt_param‹  rÑ   r   r   N)	r)   r*   r+   r,   rq   ÚoptParametersrÏ   rÓ   r.   r   r   r   r<   rÆ   „  s   † Ú/Ð0ˆHÚ<Ð=ˆMò'õ'r   r<   rV   NrÇ   rÈ   rÉ   rË   )r   r<   r   rX   rE   r¸   )r   r<   rc   r¹   s       r   Útest_optMethodsDontOverrideÚ$ZshTests.test_optMethodsDontOverride~  se   € ô	'”e—m‘mô 	'ñ ‹yˆÜ×1Ò1°$¸¸tÓDˆà×Ñ˜×.Ñ.¨vÓ6¸ÔAØ×Ñ˜×.Ñ.¨wÓ7¸ÕCr   r   N)r)   r*   r+   r,   r-   re   ry   r‚   r“   r�   r£   r«   r¯   r²   rµ   r»   rÂ   rÖ   r.   r   r   r   rS   rS      sK   † ñòSò.0ò>Cò
ò6
=ò
=ò5ò2ò>5ò65ò )ò
õ$Dr   rS   c                   ó   • \ rS rSrS rSrg)ÚEscapeTestsi•  c                 óŒ   • [         R                  nSnU R                  U" U5      S5        SnU R                  U" U5      S5        g)z%
Verify _shellcomp.escape() function
Ú$z'$'zA--'$"\`--Bz"A--'\$\"\\\`--B"N)r   ÚescaperE   )r   Úescr'   s      r   Útest_escapeÚEscapeTests.test_escape–  sB   € ô ×ÑˆàˆØ×Ñ™˜T› EÔ*àˆØ×Ñ™˜T›Ð$=Õ>r   r   N)r)   r*   r+   r,   rÞ   r.   r   r   r   rÙ   rÙ   •  s   † õ
?r   rÙ   c                   ó   • \ rS rSrSrS rSrg)ÚCompleterNotImplementedTestsi£  zš
Test that using an unknown shell constant with SubcommandAction
raises NotImplementedError

The other Completer() subclasses are tested in test_usage.py
c                 ór   • [         R                  " 5       nU R                  [        UR                  SS5        g)z=
Using an unknown shellType should raise NotImplementedError
NÚbad_shell_type)r   ÚSubcommandActionr‘   ÚNotImplementedErrorÚ
_shellCode)r   Úactions     r   Útest_unknownShellÚ.CompleterNotImplementedTests.test_unknownShell«  s0   € ô ×,Ò,Ó.ˆà×ÑÜ ×!2Ñ!2°DÐ:Jõ	
r   r   N)r)   r*   r+   r,   r-   rè   r.   r   r   r   rá   rá   £  s   † ñõ
r   rá   c                   ó,   • \ rS rSrSr/ SQ/r/ SQ/rSrg)ÚFighterAceServerOptionsi¶  z,
Options for FighterAce 'server' subcommand
)zlist-serverNz3List this server with the online FighterAce network)zpackets-per-secondNz+Number of update packets to send per secondÚ20r   N)r)   r*   r+   r,   r-   rq   rÕ   r.   r   r   r   rë   rë   ¶  s    † ñò
 	Uð€Hò	
ðƒMr   rë   c            
       óâ   • \ rS rSr% Sr/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/r\\\\         \	S
'   / SQ/ SQ/r
\\\\         \	S'   SS\S//r\" SSS.S// SQ/S\" S/5      0\" SS9/S9rS rSrg)rY   iÈ  z:
Command-line options for an imaginary `Fighter Ace` game
)rl   rt   z2Select the Fokker Dr.I as your dogfighter aircraft)rm   rv   z5Select the Albatros D-III as your dogfighter aircraft)rn   ru   z1Select the SPAD S.VII as your dogfighter aircraft)ro   rs   z4Select the Bristol Scout as your dogfighter aircraft)ÚphysicsrÊ   z$Enable secret Twisted physics engine)ÚjamÚjz6Enable a small chance that your machine guns will jam!©ÚverboseÚvz1Verbose logging (may be specified more than once)rq   )z
pilot-nameNzWhat's your name, Ace?zManfred von Richthofen)ÚdetailÚdz*Select the level of rendering detail (1-5)Ú3rÕ   r§   NzStart FighterAce game-server.zTwisted-PhysicszRendering detail level)rî   rô   rò   )rl   rm   rn   ro   rô   Ú12345zsaved game file to load©rº   ©r[   r^   r`   ra   rb   c                 ó   • g)r6   Nr   rÎ   s    r   Ú	opt_sillyÚFighterAceOptions.opt_sillyè  rÑ   r   r   )r)   r*   r+   r,   r-   rq   r   r   ÚstrÚ__annotations__rÕ   rë   r:   r   r
   r	   rZ   rû   r.   r   r   r   rY   rY   È  s¹   ‡ ñò
 	NÚRÚJÚPÚ@ÚNÚMð+€Hˆd�4˜ ™Ñ&Ñ'ó ò 	QÚJð0€M�4˜˜X c™]Ñ+Ñ,ó ð 
�4Ð0Ð2QÐRð€Kñ Ø!2Ð>VÑWØ�ÚDÐEØ™lÐ,?Ð+@ÓAÐBÙ#Ð*CÑDÐEñ€Hõr   rY   c                   óV   • \ rS rSrSr/ SQ/r/ SQ/r\" SS0S\" SS	90S
9r	S r
S rSrg)rW   ií  z³
Extend the options and zsh metadata provided by FighterAceOptions.
_shellcomp must accumulate options and metadata from all classes in the
hiearchy so this is important to test.
)ú	no-stallsNz+Turn off the ability to stall your aircraft)úreality-levelNz)Select the level of physics reality (1-5)Ú5r   zCan't stall your planer  zPhysics reality levelrø   )r[   ra   c                 ó   • g)z(
Select that you can't crash your plane
Nr   rÎ   s    r   Úopt_nocrashÚ%FighterAceExtendedOptions.opt_nocrashþ  rÑ   r   c                 ó   • g)z
How tough are you? (1-10)
Nr   )r   r}   s     r   Úopt_difficultyÚ(FighterAceExtendedOptions.opt_difficulty  rÑ   r   r   N)r)   r*   r+   r,   r-   rq   rÕ   r   r   rZ   r  r  r.   r   r   r   rW   rW   í  sI   † ñò SÐS€HâQð€Mñ Ø!Ð#;Ð<Ø#¡YÐ5LÑ%MÐNñ€Hò
õ
r   rW   c                  ó   • [        / SQSS9$ )N)Ú1Ú2rö   zAccuracy'`?rø   )r
   r   r   r   Ú_accuracyActionr  	  s   € äš¨}Ñ=Ð=r   c            
       ó„   • \ rS rSrSr/ SQ/ SQ/ SQ/r/ SQ/ SQ/r\" SS	S
.S/SS//\" / SQSS9\	S.\
" SS9/S9rS rSrg)r™   i  z6
Command-line options for a `Silly` imaginary program
)ÚcolorÚczTurn on color output)ÚgrayÚgzTurn on gray-scale outputrñ   )ÚoptimizationNr  z&Select the level of optimization (1-5))Úaccuracyrv   rö   z"Select the level of accuracy (1-3)zColor onzOptimization level)r  r  rò   r  r  )r
  r  rö   Ú4r  zOptimization?rø   )r  r  zoutput filerù   c                 ó   • g)z=
usage.Options does not recognize single-letter opt_ methods
Nr   rÎ   s    r   Úopt_XÚSimpleProgOptions.opt_X+  rÑ   r   r   N)r)   r*   r+   r,   r-   rq   rÕ   r   r
   r  r	   rZ   r  r.   r   r   r   r™   r™     sw   † ñò
 	/Ú2ÚMð€Hò 	NÚDð€Mñ
 Ø)Ð;OÑPØ�Ø# VÐ,Ð-á(Ú)°ñð (ñ	
ñ $¨-Ñ8Ð9ñ€Hõr   r™   c                   ó   • \ rS rSr/ SQ/rSrg)ÚSimpleProgSub1i1  )úsub-optru   zSub Opt Oner   N©r)   r*   r+   r,   rq   r.   r   r   r   r  r  1  ó
   † Ú/Ð0ƒHr   r  c                   ó   • \ rS rSr/ SQ/rSrg)ÚSimpleProgSub2i5  )r  ru   zSub Opt Twor   Nr  r   r   r   r  r  5  r  r   r  c                   óN   • \ rS rSrS/SS//rS/SS// SQ/rS	S
\S/SS
\S//rSr	g
)r¡   i9  zsome-optionzother-optionrL   z
some-paramzother-paramrÊ   )zanother-paramÚPzYet Another ParamÚsub1NzSub Command 1Úsub2zSub Command 2r   )
r)   r*   r+   r,   rq   rÕ   r  r  r:   r.   r   r   r   r¡   r¡   9  sM   † Ø� .°#Ð!6Ð7€Hð 
ˆØ	˜ÐÚ3ð€Mð 
��~ Ð7Ø	��~ Ð7ðƒKr   r¡   sº  #compdef silly

_arguments -s -A "-*" \
':output file (*):_files -g "*"' \
"(--accuracy)-a[Select the level of accuracy (1-3)]:Accuracy'\`?:(1 2 3)" \
"(-a)--accuracy=[Select the level of accuracy (1-3)]:Accuracy'\`?:(1 2 3)" \
'(--color --gray -g)-c[Color on]' \
'(--gray -c -g)--color[Color on]' \
'(--color --gray -c)-g[Turn on gray-scale output]' \
'(--color -c -g)--gray[Turn on gray-scale output]' \
'--help[Display this help and exit.]' \
'--optimization=[Optimization level]:Optimization?:(1 2 3 4 5)' \
'*-v[Verbose logging (may be specified more than once)]' \
'*--verbose[Verbose logging (may be specified more than once)]' \
'--version[Display Twisted version and exit.]' \
&& return 0
s×  #compdef silly2

_arguments -s -A "-*" \
'*::subcmd:->subcmd' \
':output file (*):_files -g "*"' \
"(--accuracy)-a[Select the level of accuracy (1-3)]:Accuracy'\`?:(1 2 3)" \
"(-a)--accuracy=[Select the level of accuracy (1-3)]:Accuracy'\`?:(1 2 3)" \
'(--another-param)-P[another-param]:another-param:_files' \
'(-P)--another-param=[another-param]:another-param:_files' \
'(--color --gray -g)-c[Color on]' \
'(--gray -c -g)--color[Color on]' \
'(--color --gray -c)-g[Turn on gray-scale output]' \
'(--color -c -g)--gray[Turn on gray-scale output]' \
'--help[Display this help and exit.]' \
'--optimization=[Optimization level]:Optimization?:(1 2 3 4 5)' \
'(--other-option)-o[other-option]' \
'(-o)--other-option[other-option]' \
'(--other-param)-p[other-param]:other-param:_files' \
'(-p)--other-param=[other-param]:other-param:_files' \
'--some-option[some-option]' \
'--some-param=[some-param]:some-param:_files' \
'*-v[Verbose logging (may be specified more than once)]' \
'*--verbose[Verbose logging (may be specified more than once)]' \
'--version[Display Twisted version and exit.]' \
&& return 0
local _zsh_subcmds_array
_zsh_subcmds_array=(
"sub1:Sub Command 1"
"sub2:Sub Command 2"
)

_describe "sub-command" _zsh_subcmds_array
)%r-   r˜   Úior   Útypingr   r   Útwisted.pythonr   r   r   Útwisted.python.usager	   r
   r   r   Útwisted.trialr   r!   r   r0   r   ÚTestCaserS   rÙ   rá   r<   rë   rY   rW   r  r™   r  r  r¡   rš   r¢   r   r   r   Ú<module>r)     sþ   ðñó
 Ý ß !ç 5Ñ 5ß TÓ TÝ "ô5˜ô 5ô,Ð#4ò ò&AôHSDˆx× Ñ ô SDôl?�(×#Ñ#ô ?ô
 8×#4Ñ#4ô 
ô&˜eŸm™mô ô$"˜Ÿ™ô "ôJÐ 1ô ò8>ô
 ˜Ÿ™ô  ôF1�U—]‘]ô 1ô1�U—]‘]ô 1ôÐ 1ô ð€ð& �r   