+
    üÐjxW  ã                   ó  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H
t
HtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHtHtHt ^ RIHt ^ RIHt ^ R	IHtHt ^ R
IHt ^ RI H!t! RRRRRRRRRRRR/t"R R lt#R t$R t%R t&R t'R t(R t)RR]PT                  3RR])3/t+R t, ! R R 4      t- ! R! R"]-]P\                  ]P^                  4      t.R# R$ lt0R% R& lt1R' R( lt2R) t3 ! R* R+]44      t5R, R- lt6R. R/ lt7R# )0é    N)ÚNoReturnÚOptionalÚType)Úplugin)Úapp)Údefer)ÚfailureÚreflectÚusage)ÚFilePath)ÚnamedModule)ÚitrialÚrunner)ÚDistTrialRunner)Ú	TestSuiteÚplainÚdefaultÚemacsÚbriefÚcgitbÚverbosec                ó$   € V ^8„  d   QhR\         /# ©é   Úreturn)Úint)Úformats   "Ú7/usr/lib/python3/dist-packages/twisted/scripts/trial.pyÚ__annotate__r   '   s   € ÷ ñ ”3ñ ó    c                 ó  € \        \        RR4      e   \        P                  ! 4       p MH\        \        RR4      e!   \        \        P                  ! ^ 4      4      p M\        P
                  ! 4       p V e   V ^8  d   ^# V # )ah  
Heuristically guess the number of job workers to run.

When ``os.process_cpu_count()`` is available (Python 3.13+),
return the number of logical CPUs usable by the current
process. This respects the ``PYTHON_CPU_COUNT`` environment
variable and/or ``python -X cpu_count`` flag.

Otherwise, if ``os.sched_getaffinity()`` is available (on some
Unixes) this returns the number of CPUs this process is
restricted to, under the assumption that this affinity will
be inherited.

Otherwise, consult ``os.cpu_count()`` to get the number of
logical CPUs.

Failing all else, return 1.

@returns: A strictly positive integer.
Úprocess_cpu_countNÚsched_getaffinity)ÚgetattrÚosr"   Úlenr#   Ú	cpu_count)Únumbers    r   Ú	_autoJobsr)   '   se   € ô, ŒrÐ&¨Ó-Ò9Ü×%Ò%Ó'‰Ü	”Ð(¨$Ó	/Ò	;Ü”R×)Ò)¨!Ó,Ó-‰ä—’“ˆØ‚~˜ !œÙØ€Mr    c                óæ  € RpV P                  V4      \        V4      ,           pV P                  V4      pVR8X  g   VR8X  d   \        V : R24      hWV P	                  R4      p/ pV F„  p\        VP                  4       4      ^ 8X  d   K#  VP	                  R4      p\        V4      ^8w  d   \        V : RV: 24      hV^,          P                  4       WW^ ,          P                  4       &   K†  	  V# )zù
Accepts a single line in Emacs local variable declaration format and
returns a dict of all the variables {name: value}.
Raises ValueError if 'line' is in the wrong format.

See http://www.gnu.org/software/emacs/manual/html_node/File-Variables.html
z-*-z' not a valid local variable declarationÚ;Ú:z contains invalid declaration éÿÿÿÿ)Úfindr&   ÚrfindÚ
ValueErrorÚsplitÚstrip)ÚlineÚparenÚstartÚendÚitemsÚ	localVarsÚitemr1   s   &       r   Ú_parseLocalVariablesr:   H   sÜ   € ð €EØ�I‰I�eÓœs 5›zÕ)€EØ
�*‰*�UÓ
€CØ�„{�c˜R”iÜ˜D™8Ð#JÐKÓLÐLØ�sˆO×!Ñ! #Ó&€EØ€IÛˆÜˆt�z‰z‹|Ó Ô!ÙØ—
‘
˜3“ˆÜˆu‹:˜Œ?Ü ™xÐ'EÀdÁXÐNÓOÐOØ&+¨A¥h§n¡nÓ&6ˆ	˜•(—.‘.Ó"Ó#ñ ð Ðr    c                óò   € \        V 4      ;_uu_ 4       pVP                  4       VP                  4       .pRRR4       X F  p \        V4      u # 	  / #   + '       g   i     L'; i  \         d     K6  i ; i)zÁ
Accepts a filename and attempts to load the Emacs variable declarations
from that file, simulating what Emacs does.

See http://www.gnu.org/software/emacs/manual/html_node/File-Variables.html
N)ÚopenÚreadliner:   r0   )ÚfilenameÚfÚlinesr3   s   &   r   ÚloadLocalVariablesrA   a   sf   € ô 
ˆh�Œ˜1Ø—‘“˜qŸz™z›|Ð,ˆ÷ 
ãˆð	Ü'¨Ó-Ò-ñ ð
 €I÷ 
�ûô
 ô 	Úð	ús   ”!AÁ
A'ÁA$	Á'A6Á5A6c                 óf   € \        V 4      P                  R R4      pVf   . # VP                  R4      # )ztest-case-nameNÚ,)rA   Úgetr1   )r>   ÚtestCaseVars   & r   ÚgetTestModulesrF   r   s6   € Ü$ XÓ.×2Ñ2Ð3CÀTÓJ€KØÒØˆ	Ø×Ñ˜SÓ!Ð!r    c                óÄ   € \         P                  P                  V 4      pVP                  R4      ;'       d*    \         P                  P	                  V4      ^,          R8H  # )z}
Returns true if 'filename' looks like a file containing unit tests.
False otherwise.  Doesn't care whether filename exists.
Útest_z.py)r%   ÚpathÚbasenameÚ
startswithÚsplitext)r>   rJ   s   & r   Ú
isTestFilerM   y   sJ   € ô
 �w‰w×Ñ Ó)€HØ×Ñ˜wÓ'×TÐT¬B¯G©G×,<Ñ,<¸XÓ,FÀqÕ,IÈeÑ,TÐTr    c                  ó®   € \         P                  ! \        P                  ! \        P
                  4       U u. uF  q P                  NK  	  up 4      # u up i ©N)r   ÚCompleteListr   Ú
getPluginsr   Ú	IReporterÚlongOpt)Úps    r   Ú_reporterActionrU   ‚   s:   € Ü×Ò´&×2CÒ2CÄF×DTÑDTÔ2UÓVÑ2U¨QŸyœyÑ2UÑVÓWÐWùÒVs   ·Ac                óâ   € \        V RR4      pVe   \        W4      p \        V RR4      pVe   VP                  #  \        P                  ! V 4      ^,          #   \        \
        3 d    Ru # i ; i)a,  
Try to find the source line of the given test thing.

@param testThing: the test item to attempt to inspect
@type testThing: an L{TestCase}, test method, or module, though only the
    former two have a chance to succeed
@rtype: int
@return: the starting source line, or -1 if one couldn't be found
Ú_testMethodNameNÚ__code__r-   )r$   Úco_firstlinenoÚinspectÚgetsourcelinesÚOSErrorÚ	TypeError)Ú	testThingÚmethodÚcodes   &  r   Ú_maybeFindSourceLinera   †   s{   € ô �YÐ 1°4Ó8€FØÒÜ˜IÓ.ˆ	ô �9˜j¨$Ó/€DØÒØ×"Ñ"Ð"ðÜ×%Ò% iÓ0°Õ3Ð3øÜ”YÐô ð Š	ðús   »A ÁA.Á-A.ÚalphabeticalzCalphabetical order for test methods, arbitrary order for test casesÚtoptobottomzDattempt to run test cases and methods in the order they were definedc                ó†   € V \         9  d6   \        P                  ! RRP                  R \          4       4      : R24      hV # )aM  
Check that the given order is a known test running order.

Does nothing else, since looking up the appropriate callable to sort the
tests should be done when it actually will be used, as the default argument
will not be coerced by this function.

@param order: one of the known orders in C{_runOrders}
@return: the order unmodified
z--order must be one of: z, c              3   ó8   "  € T F  p\        V4      x € K  	  R # 5irO   )Úrepr)Ú.0Úorders   & r   Ú	<genexpr>Ú&_checkKnownRunOrder.<locals>.<genexpr>¿   s   é € Ð=±*¨œ˜eŸ˜³*ùs   ‚z. See --help-orders for details)Ú
_runOrdersr   Ú
UsageErrorÚjoin)rh   s   &r   Ú_checkKnownRunOrderrn   ±   s>   € ð ”JÔÜ×Óà�y‰yÑ=µ*Ó=Ö=ð@ó
ð 	
ð €Lr    c                   ó²  a € ] tR t^Ät o RtRtRR.. R&O. R'O. R(O. R)O. R*O. R+O. R,O.tRRRR].. R-O. R.O. R/O.t]	P                  ! R]	P                  ! ]4      R
]R]	P                  ! RR7      R	]	P                  ! RR7      /]	P                  ! RRRR7      .R7      tRtR tR tR tR tR tR tR tR tR tR tR tR tR  tR! tR" t R# t!V 3R$ lt"R%t#V t$R# )0Ú_BasicOptionsz;
Basic options shared between trial and its local workers.
zutrial loads and executes a suite of unit tests, obtained from modules, packages and files listed on the command line.ÚhelpÚhNrh   ÚozRSpecify what order to run test cases and methods. See --help-orders for more info.ÚrandomÚreporterÚlogfileúlog file name)Údescrzrandom seedz*.pyz/file | module | package | TestCase | testMethodT)rx   Úrepeat)Ú
optActionsÚextraActionsc                óN   € . V R &   \         P                  P                  V 4       R# ©ÚtestsN)r   ÚOptionsÚ__init__©Úselfs   &r   r€   Ú_BasicOptions.__init__  s   € ØˆˆW‰Ü�‰×Ñ˜tÖ$r    c                óB  € \         P                  ! \        P                  ^ ,          4      pVP	                  R4      '       dN   RP                  \        P                  P                  \        P                  4      VP                  RR4      4      pRP                  V4      # )r   z	.__main__z{} -m {}Ú zD{} [options] [[file|package|module|TestCase|testmethod]...]
        )r
   ÚfilenameToModuleNameÚsysÚargvÚendswithr   r%   rI   rJ   Ú
executableÚreplace)r‚   ÚexecutableNames   & r   ÚgetSynopsisÚ_BasicOptions.getSynopsis  sx   € Ü ×5Ò5´c·h±h¸qµkÓBˆà×"Ñ" ;×/Ò/Ø'×.Ñ.Ü—‘× Ñ ¤§¡Ó0Ø×&Ñ& {°BÓ7óˆNð
ß‰FØó
ð	
r    c                ó~   € Rp\        V R,          4      P                  V4      p\        RVP                   R24       V# )z`
Return a L{FilePath} representing the directory into which coverage
results should be written.
Úcoverageútemp-directoryzSetting coverage directory to Ú.)r   ÚchildÚprintrI   )r‚   ÚcoverdirÚresults   &  r   r•   Ú_BasicOptions.coverdir#  s?   € ð
 ˆÜ˜$Ð/Õ0Ó1×7Ñ7¸ÓAˆÜÐ.¨v¯{©{¨m¸1Ð=Ô>Øˆr    c                óž   € \         P                  ! ^^ R7      V n        \        P                  ! V P                  P
                  4       RV R&   R# )zm
Generate coverage information in the coverage file in the
directory specified by the temp-directory option.
)ÚcountÚtraceTr�   N)rš   ÚTraceÚtracerr‡   ÚsettraceÚglobaltracer�   s   &r   Úopt_coverageÚ_BasicOptions.opt_coverage5  s6   € ô
 —k’k¨°Ô3ˆŒÜ�Š�T—[‘[×,Ñ,Ô-ØˆˆZÓr    c                ór  € \         P                  P                  V4      '       g'   \        P                  P                  RV: R24       R# \         P                  P                  V4      p\        V4      '       d   V R,          P                  V4       R# V R,          P                  \        V4      4       R# )z7
Filename to grep for test cases (-*- test-case-name).
zFile z doesn't exist
Nr~   )r%   rI   Úisfiler‡   ÚstderrÚwriteÚabspathrM   ÚappendÚextendrF   )r‚   r>   s   &&r   Úopt_testmoduleÚ_BasicOptions.opt_testmodule>  s|   € ô �w‰w�~‰~˜h×'Ò'Ü�J‰J×Ñ˜u X¡LÐ0@ÐAÔBÙÜ—7‘7—?‘? 8Ó,ˆÜ�h×ÒØ��M× Ñ  Ö*à��M× Ñ ¤°Ó!9Ö:r    c                ó>   € ^ RI Hp \        P                  ! V4       R# )zt
Print an insanely verbose log of everything that happens.  Useful
when debugging freezes or locks in complex code.
)ÚspewerN)Útwisted.python.utilr«   r‡   r�   )r‚   r«   s   & r   Úopt_spewÚ_BasicOptions.opt_spewU  s   € õ
 	/ä�Š�VÖr    c                óº   € R p\        V4       \        \        P                  4       4       F  w  pw  r4\        RVRV4       K  	  \        P
                  ! ^ 4       R# )z’Trial can attempt to run test cases and their methods in a few different orders. You can select any of the following options using --order=<foo>.
ú   Ú	N)r”   Úsortedrk   r7   r‡   Úexit)r‚   ÚsynopsisÚnameÚdescriptionÚ_s   &    r   Úopt_help_ordersÚ_BasicOptions.opt_help_orders^  sO   € ð7ð 	ô 	ˆhŒÜ&,¬Z×-=Ñ-=Ó-?Ö&@Ñ"ˆDÑ"�;Ü�%˜˜t [Ö1ñ 'Aä�Š�Žr    c                óæ   € R p\        V4       \        P                  ! \        P                  4       F%  p\        RVP
                  RVP                  4       K'  	  \        P                  ! ^ 4       R# )z†Trial's output can be customized using plugins called Reporters. You can
select any of the following reporters using --reporter=<foo>
r°   r±   N)	r”   r   rQ   r   rR   rS   r¶   r‡   r³   )r‚   r´   rT   s   &  r   Úopt_help_reportersÚ _BasicOptions.opt_help_reportersj  sQ   € ð1ð 	ô
 	ˆhŒÜ×"Ò"¤6×#3Ñ#3Ö4ˆAÜ�%˜Ÿ™ D¨!¯-©-Ö8ñ 5ä�Š�Žr    c                ó:   € RV R&   \         P                  ! 4        R# )z
Disable the garbage collector
TÚ	disablegcN)ÚgcÚdisabler�   s   &r   Úopt_disablegcÚ_BasicOptions.opt_disablegcu  s   € ð !ˆˆ[ÑÜ
�
Š
Žr    c                ór   €  \         V,          V R&   R#   \         d    \        P                  ! R4      hi ; i)z™
Specify the format to display tracebacks with. Valid formats are
'plain', 'emacs', and 'cgitb' which uses the nicely verbose stdlib
cgitb.text function
Útbformatz.tbformat must be 'plain', 'emacs', or 'cgitb'.N)ÚTBFORMAT_MAPÚKeyErrorr   rl   )r‚   Úopts   &&r   Úopt_tbformatÚ_BasicOptions.opt_tbformat|  s:   € ð	UÜ+¨CÕ0ˆD�ÓøÜô 	UÜ×"Ò"Ð#SÓTÐTð	Uús   ‚ ”"6c                ó¸   €  \         P                  ! \        V4      4       \        V4      V R&   R#   \        \        3 d    \
        P                  ! R4      hi ; i)z
see sys.setrecursionlimit()
Úrecursionlimitz-argument to recursionlimit must be an integerN)r‡   Úsetrecursionlimitr   r]   r0   r   rl   )r‚   Úargs   &&r   Úopt_recursionlimitÚ _BasicOptions.opt_recursionlimit‡  sT   € ð	.Ü×!Ò!¤# c£(Ô+ô &)¨£XˆDÐ!Ó"øô œ:Ð&ô 	TÜ×"Ò"Ð#RÓSÐSð	Tús	   ‚1 ±(Ac                ó&  €  \        V4      V R &   V R ,          ^ 8  d   \        P                  ! R4      hV R ,          ^ 8X  d+   \        \        P                  ! 4       ^d,          4      V R &   R# R#   \         d    \        P                  ! R4      hi ; i)rt   z/Argument to --random must be a positive integerN)r   r   rl   Útimer0   )r‚   Úoptions   &&r   Ú
opt_randomÚ_BasicOptions.opt_random’  s‰   € ð
	8Ü  ›[ˆD�‰Nð �H�~ Ô!Ü×&Ò&ØEóð ð �h• 1Ô$Ü!$¤T§Y¢Y£[°3Õ%6Ó!7��X“ñ %øô ô 	VÜ×"Ò"Ð#TÓUÐUð	Vús   ‚A. Á."Bc                óÐ   € WR&   VP                  R4       FL  pV\        P                  9   d"   \        P                  ! RV: R2\
        R7       R\        P                  V&   KN  	  R# )z@
Fake the lack of the specified modules, separated with commas.
úwithout-modulerC   zModule 'z%' already imported, disabling anyway.)ÚcategoryN)r1   r‡   ÚmodulesÚwarningsÚwarnÚRuntimeWarning)r‚   rÒ   Úmodules   && r   Úopt_without_moduleÚ _BasicOptions.opt_without_moduleŸ  sQ   € ð "(ÐÑØ—l‘l 3Ö'ˆFØœŸ™Ô$Ü—“ÛLRÐTÜ+õð #'ŒC�K‰K˜Óó (r    c                ó6   € V R ,          P                  V4       R# r}   )r§   )r‚   Úargss   &*r   Ú	parseArgsÚ_BasicOptions.parseArgs¬  s   € ØˆW�×Ñ˜TÖ"r    c                ó  € \         P                  ! \        P                  4       FG  pVP                   R VP
                   2pVP                  V8X  g   K1  \        P                  ! V4      u # 	  \        P                  ! R4      h)r’   zVOnly pass names of Reporter plugins to --reporter. See --help-reporters for more info.)r   rQ   r   rR   rÜ   ÚklassrS   r
   ÚnamedAnyr   rl   )r‚   rµ   rT   Úquals   &&  r   Ú_loadReporterByNameÚ!_BasicOptions._loadReporterByName¯  sl   € Ü×"Ò"¤6×#3Ñ#3Ö4ˆAØ—h‘h�Z˜q §¡ 	Ð*ˆDØ�y‰y˜DÖ Ü×'Ò'¨Ó-Ò-ñ 5ô ×Òðó
ð 	
r    c                ó°   € V P                  V R ,          4      V R &   RV 9  d   RV R&   V R,          e$   V R,          e   \        P                  ! R4      hR# R# )ru   rÄ   r   rh   Nrt   z-You can't specify --random when using --order)rç   r   rl   r�   s   &r   ÚpostOptionsÚ_BasicOptions.postOptionsº  s^   € ð  ×3Ñ3°D¸Õ4DÓEˆˆZÑØ˜TÔ!Ø(ˆD�ÑØ��=Ò$¨¨h­Ò)CÜ×"Ò"Ð#RÓSÐSñ *DÑ$r    c                óJ   <€ V ^8„  d   Qh/ S[ S[P                  ,          ;R&   # )r   rœ   )r   rš   r›   )r   Ú__classdict__s   "€r   r   Ú_BasicOptions.__annotate__Ä   s   ø‡ ‚ ñV ‘U—[‘[Õ!Ñ(òW r    )rœ   )ú
no-recurseÚNzDon't recurse into packages)zhelp-ordersNz%Help on available test running orders)zhelp-reportersNz,Help on available output plugins (reporters))ÚrterrorsÚez;realtime errors, print out tracebacks as soon as they occur)úunclean-warningsNz'Turn dirty reactor errors into warnings)úforce-gcNz<Have Trial run gc.collect() before and after each test case.)Ú	exitfirstÚxzSExit after the first non-successful result (cannot be specified along with --jobs).)rt   ÚzNz2Run tests in random order using the specified seed)r‘   NÚ_trial_tempz+Path to use as working directory for tests.)ru   Nr   zKThe reporter to use for this test run.  See --help-reporters for more info.)%Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚlongdescÚoptFlagsrn   ÚoptParametersr   ÚCompletionsrP   rk   rU   ÚCompleteFilesÚ	CompleterÚcompDatarœ   r€   r�   r•   rŸ   r¨   r­   r¸   r»   rÁ   rÈ   rÎ   rÓ   rÝ   rá   rç   rê   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©rí   s   @r   rp   rp   Ä   s;  ø‡ € ñð
	Gð ð 
�ˆÚ:ÚFÚPò	
ò
 	Nò	
ò
	
ð!€Hð4 ØØð/àð	
ò 	Tò	
ò	
ð!€Mð2 × Ò à�U×'Ò'¨
Ó3Ø˜Ø�u×*Ò*°ÔAØ�e—o’o¨MÔ:ð	
ð ×ÒØØGØôð
ô€Hð  %)€Fò%ò
òò$ ò;ò.ò
ò	òò	Uò	.ò8ò'ò#ò	
òT÷m ƒ r    rp   c                   óÖ   a € ] tR tRt o Rt. RO. RO. RO. RO. RO. RO.t. RO. RO. RO.t]P                  ! R]P                  ! . RO4      R]
/R7      t. ROt. ROtR tR tR	 tR
tV tR# )r   iÅ  a¿  
Options to the trial command line tool.

@ivar _workerFlags: List of flags which are accepted by trial distributed
    workers. This is used by C{_getWorkerArguments} to build the command
    line arguments.
@type _workerFlags: C{list}

@ivar _workerParameters: List of parameter which are accepted by trial
    distributed workers. This is used by C{_getWorkerArguments} to build
    the command line arguments.
@type _workerParameters: C{list}
NrÄ   ru   )rz   c                óÜ   € VR8X  d   \        4       pM) \        V4      pT^ 8:  d   \        P                  ! R4      hWR&   R#   \         d    \        P                  ! RT,          4      hi ; i)zs
Number of local workers to run, a strictly positive integer or 'auto'
to spawn one worker for each available CPU.
Úautoz,Expecting integer argument to jobs, got '%s'z>Argument to jobs must be a strictly positive integer or 'auto'ÚjobsN)r)   r   r0   r   rl   )r‚   r(   s   &&r   Úopt_jobsÚOptions.opt_jobsÿ  su   € ð
 �VÔÜ“[‰FðÜ˜V›�ð
 ˜Œ{Ü×&Ò&ØTóð ð ˆV‹øô ô Ü×&Ò&ØBÀVÕKóð ðús   ”A Á)A+c                ó<  € . pV P                    F<  pV P                  V4      f   K  W,          '       g   K(  VP                  RV 24       K>  	  V P                   F=  pV P                  V4      f   K  VP	                  RV 2\        W,          4      .4       K?  	  V# )z:
Return a list of options to pass to distributed workers.
z--)Ú_workerFlagsrD   r¦   Ú_workerParametersr§   Ústr)r‚   rà   rÒ   s   &  r   Ú_getWorkerArgumentsÚOptions._getWorkerArguments  s‡   € ð ˆØ×'Ô'ˆFØ�x‰x˜ÓÔ+Ø—<–<Ø—K‘K " V H Ö.ñ (ð ×,Ô,ˆFØ�x‰x˜ÓÔ+Ø—‘˜r & ˜]¬C°µÓ,=Ð>Ö?ñ -ð ˆr    c                ó@  € \         P                  V 4       V R ,          '       d9   . ROpV F.  pW,          '       g   K  \        P                  ! RV,          4      h	  V R,          '       d3   V R,          '       g   \        P                  ! R4      hR\        n        R# R# )r  Údebugz(You can't specify --%s when using --jobsÚnopmz+You must specify --debug when using --nopm FN)r  Úprofileúdebug-stacktraces)rp   rê   r   rl   r	   ÚDO_POST_MORTEM)r‚   Ú	conflictsrÒ   s   &  r   rê   ÚOptions.postOptions!  s}   € Ü×!Ñ! $Ô'Ø��<Œ<ÚAˆIÛ#�Ø—<–<Ü×*Ò*ØBÀVÕKóð ñ $ð
 ��<Œ<Ø˜—=”=Ü×&Ò&Ð'WÓXÐXØ%*ŒGÖ"ñ r    © )r  ÚbziRun tests in a debugger. If that debugger is pdb, will load '.pdbrc' from current directory if it exists.)r  ÚBz2Report Deferred creation and callback stack traces)r  NzFdon't automatically jump into debugger for postmorteming of exceptions)údry-runÚnzdo everything but run the tests)r  Nz#Run tests under the Python profiler)úuntil-failureÚuzRepeat test until it fails)ÚdebuggerNÚpdbzBthe fully qualified name of a debugger to use if --debug is passed)rv   Úlztest.logrw   )r  ÚjNzNumber of local workers to run)r   r   r   )r¾   rô   r�   )rË   ÚreactorrÖ   )rù   rú   rû   rü   rý   rÿ   r   r   r  rP   rU   r  r  r  r  r  rê   r  r  r  s   @r   r   r   Å  s�   ø‡ € ñò	
ò	
ò
	
ò
 	<Ú@Ú<ð'€Hò.	
ò 	6Ú=ð	€Mð × Ò à˜×*Ò*Ò+FÓGØ˜ð
ô€Hò 9€LÚGÐòò(÷+ð +r    r   c                ó(   € V ^8„  d   QhR\         RR/# )r   Úconfigr   N)r   )r   s   "r   r   r   0  s   € ÷ !ñ !œwð !¨4ñ !r    c                 óº   € V R ,          '       d   \         P                  ! 4        V R ,          '       g   V R,          '       d   \        P                  ! R4       R# R# )r  r  TN)r	   ÚstartDebugModer   ÚsetDebugging)r*  s   &r   Ú_initialDebugSetupr.  0  s>   € àˆg‡„Ü×ÒÔ Øˆg‡„˜&Ð!4×5Ô5Ü×Ò˜4Ö ñ 6r    c                ó0   € V ^8„  d   QhR\         R\        /# ©r   r*  r   )r   r   )r   s   "r   r   r   8  s   € ÷ @ñ @”gð @¤)ñ @r    c                 óh   € \        V 4      pV R ,          '       * pVP                  V R,          VR7      # )rï   r~   )Úrecurse)Ú
_getLoaderÚloadByNames)r*  Úloaderr2  s   &  r   Ú	_getSuiter6  8  s3   € Ü˜Ó€FØ˜Õ&Ô&€GØ×Ñ˜f W�o°wÐÓ?Ð?r    c                óD   € V ^8„  d   QhR\         R\        P                  /# r0  )r   r   Ú
TestLoader)r   s   "r   r   r   >  s    € ÷ ñ ”wð ¤6×#4Ñ#4ñ r    c                 ó’  a€ \         P                  ! 4       pV R ,          '       dS   \        P                  ! 4       oSP	                  V R ,          4       V3R lVn        \        RV R ,          ,          4       M+V R,          '       d   \        V R,          ,          w  r#W1n        V R,          '       g   \         P                  Vn	        V# )rt   c                 ó$   <€ SP                  4       # rO   )rt   )rö   Úrandomers   &€r   Ú<lambda>Ú_getLoader.<locals>.<lambda>C  s   ø€  (§/¡/Ô"3r    z$Running tests shuffled with seed %d
rh   r"  )
r   r8  rt   ÚRandomÚseedÚsorterr”   rk   ÚDestructiveTestSuiteÚsuiteFactory)r*  r5  r·   r@  r;  s   &   @r   r3  r3  >  sŽ   ø€ Ü×ÒÓ €FØˆh×ÔÜ—=’=“?ˆØ�‰�f˜XÕ&Ô'Ü3ˆŒÜÐ5¸¸xÕ8HÕHÕIØ	��ŒÜ˜v g�Õ/‰	ˆØŒØ�/×"Ô"Ü$×9Ñ9ˆÔØ€Mr    c                 ó¼  € \         P                  ! 4       p  \        R4       R Fr  p\
        P                  P                  V4      '       g   K*   \        V4      pV;_uu_ 4        V P                  P                  VP                  4       4       RRR4       Kt  	  V #   \         d    \	        R4        L’i ; i  + '       g   i     K¥  ; i  \         d     K¶  i ; i)zJ
Wrap an instance of C{pdb.Pdb} with readline support and load any .rcs.

r=   zreadline module not availableN)z.pdbrcÚpdbrc)r%  ÚPdbr   ÚImportErrorr”   r%   rI   Úexistsr<   ÚrcLinesr§   Ú	readlinesr\   )ÚdbgrI   ÚrcFiles      r   Ú_wrappedPdbrL  M  s°   € ô �'Š'‹)€Cð/Ü�JÔó $ˆÜ�7‰7�>‰>˜$×Ôð;Ü˜d›�÷ ’VØ—K‘K×&Ñ& v×'7Ñ'7Ó'9Ô:÷ ‘Vñ $ð €Jøô ô /ÜÐ-Ö.ð/ú÷ —V�Vûô ô Úðús/   —B ÁCÁ$*B8ÂB5Â4B5Â8C	ÃCÃCc                   ó   € ] tR tRtRtRtR# )Ú_DebuggerNotFoundid  z_
A debugger import failed.

Used to allow translating these errors into usage error messages.

r  N)rù   rú   rû   rü   rý   r  r  r    r   rN  rN  d  s   † õr    rN  c                óD   € V ^8„  d   QhR\         R\        P                  /# r0  )r   r   Ú_Runner)r   s   "r   r   r   m  s   € ÷ )ñ )œð )¤F§N¡Nñ )r    c                óÀ  € \         P                  pRV R,          RV R,          RV R,          RV R,          R	V R	,          R
V R,          RV R,          /pV R,          '       d   \         P                  P                  VR&   M±V R,          '       d'   \        pV R,          VR&   V P	                  4       VR&   M|V R,          '       dV   \         P                  P
                  VR&   V R,          pVR8w  d    \        P                  ! V4      VR&   M\        4       VR&   V R,          VR&   V R,          VR&   V! R/ VB #   \        P                   d    \        T: R24      hi ; i)zu
Return a trial runner class set up with the parameters extracted from
C{config}.

@return: A trial runner instance.
ÚreporterFactoryru   ÚtracebackFormatrÄ   ÚrealTimeErrorsrñ   ÚuncleanWarningsró   rv   ÚworkingDirectoryr‘   Ú	exitFirstrõ   r   Úmoder  Ú
maxWorkersÚworkerArgumentsr  r$  r%  z debugger could not be found.r  rô   ÚforceGarbageCollectionr  )r   ÚTrialRunnerÚDRY_RUNr   r  ÚDEBUGr
   rå   ÚModuleNotFoundrN  rL  )r*  Úclsrà   r$  s   &   r   Ú_makeRunnerra  m  sa  € ô !'× 2Ñ 2€Cà˜6 *Õ-Ø˜6 *Õ-Ø˜& Õ,Ø˜6Ð"4Õ5Ø�6˜)Õ$Ø˜FÐ#3Õ4Ø�V˜KÕ(ð€Dð ˆi×ÔÜ×)Ñ)×1Ñ1ˆˆVŠØ	��ŒÜˆØ# F�^ˆˆ\ÑØ"(×"<Ñ"<Ó">ˆÐÒà�'�?Œ?Ü!×-Ñ-×3Ñ3ˆD�‰LØ˜jÕ)ˆHà˜5Ô ðÜ'.×'7Ò'7¸Ó'A�D˜Ò$ô $/£=��ZÑ à  Õ+ˆˆY‰Ø)/°
Õ);ˆÐ%Ñ&á‰;�‰;Ðøô ×-Ñ-ô Ü+Ø#™,Ð&CÐDóð ðús   Ã1D8 Ä8%Ec                ó$   € V ^8„  d   QhR\         /# r   )r   )r   s   "r   r   r   ™  s   € ÷ -ñ -ŒXñ -r    c                  ó’  € \        \        P                  4      ^8X  d    \        P                  P                  R4       \	        4       p  V P                  4        \        T 4        \        T 4      p\        T 4      pT R,          '       d   TP                  T4      pMTP                  T4      pT P                   '       d]   \        P"                  ! R4       T P                   P%                  4       pTP'                  RRT P)                  4       P*                  R7       \        P,                  ! TP/                  4       '       * 4       R#   \        P                   d+   p\        \        P                  ^ ,           RT 24      hRp?ii ; i  \         d4   p\        \        P                  ^ ,           R\        T4       24      hRp?ii ; i)é   z--helpz: Nr"  TF)Úshow_missingÚsummaryr•   )r&   r‡   rˆ   r¦   r   ÚparseOptionsr   ÚerrorÚ
SystemExitr.  ra  rN  r  r6  ÚrunUntilFailureÚrunrœ   r�   ÚresultsÚwrite_resultsr•   rI   r³   ÚwasSuccessful)r*  ÚueÚtrialRunnerrò   ÚsuiteÚ
testResultrl  s          r   rk  rk  ™  sW  € Ü
Œ3�8‰8ƒ}˜ÔÜ�‰�‰˜Ô!Ü‹Y€Fð1Ø×ÑÔô �vÔð5Ü! &Ó)ˆô �fÓ€EØˆo×ÔØ ×0Ñ0°Ó7‰
à —_‘_ UÓ+ˆ
Ø‡}‡}€}Ü�Š�TÔØ—-‘-×'Ñ'Ó)ˆØ×ÑØ u°v·±Ó7H×7MÑ7Mð 	ô 	
ô ‡H‚H�×)Ñ)Ó+Ô+Ö,øô) �;‰;ô 1ÜœCŸH™H Q�K˜=¨¨2¨$Ð/Ó0Ð0ûð1ûô ô 5ÜœCŸH™H Q�K˜=¨¬3¨q«6¨(Ð3Ó4Ð4ûð5ús0   Á	E Á%F ÅFÅ%F Æ FÆGÆ.GÇG)8r¿   rZ   r%   r%  rt   r‡   rÑ   rš   rÙ   Útypingr   r   r   Útwistedr   Útwisted.applicationr   Útwisted.internetr   Útwisted.pythonr	   r
   r   Útwisted.python.filepathr   Útwisted.python.reflectr   Útwisted.trialr   r   Útwisted.trial._dist.disttrialr   Útwisted.trial.unittestr   rÅ   r)   r:   rA   rF   rM   rU   ra   rµ   rk   rn   rp   r   ÚReactorSelectionMixinr.  r6  r3  rL  Ú	ExceptionrN  ra  rk  r  r    r   Ú<module>r     s  ðó 
Û Û 	Û 
Û Û 
Û Û Û ß +Ñ +å Ý #Ý "ß 2Ñ 2Ý ,Ý .ß (Ý 9Ý ,ð
 ˆYØˆyØˆWØˆWØˆYØˆyð€õòBò2ò""òUòXòð@ ØMØ�‰ðð ØNØðð	€
ò÷&~Tñ ~TôBh+ˆm˜UŸ]™]¨C×,EÑ,Eô h+õV!õ@õòô.˜	ô õ)÷X-r    