ó
    Ö›‘hxW  ã                   ó8  • 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rS SK	J
r
JrJr  S SKJr  S SKJr  S SKJr  S SKJrJrJr  S SKJr  S SKJr  S S	KJrJr  S S
KJr  S SK J!r!  SSSSSSS.r"S\#4S jr$S r%S r&S r'S r(S r)S r*S\RV                  4S\*4S.r,S r- " S S5      r. " S S\.\R^                  \R`                  5      r/S \/SS4S! jr1S \/S\!4S" jr2S \/S\Rf                  4S# jr4S$ r5 " S% S&\65      r7S \/S\Rp                  4S' jr9S\
4S( jr:g))é    N)ÚNoReturnÚOptionalÚType)Úplugin)Úapp)Údefer)ÚfailureÚreflectÚusage)ÚFilePath)ÚnamedModule)ÚitrialÚrunner)ÚDistTrialRunner)Ú	TestSuiteÚdefaultÚbriefÚverbose)Úplainr   Úemacsr   Úcgitbr   Úreturnc                  óø   • [        [        SS5      b  [        R                  " 5       n OG[        [        SS5      b   [        [        R                  " S5      5      n O[        R
                  " 5       n U b  U S:  a  gU $ )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_getaffinityr   é   )ÚgetattrÚosr   Úlenr   Ú	cpu_count)Únumbers    ÚYC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/scripts/trial.pyÚ	_autoJobsr#   '   se   € ô, ŒrÐ&¨Ó-Ñ9Ü×%Ò%Ó'‰Ü	”Ð(¨$Ó	/Ñ	;Ü”R×)Ò)¨!Ó,Ó-‰ä—’“ˆØ�~˜ !›ØØ€Mó    c                 óÆ  • SnU R                  U5      [        U5      -   nU R                  U5      nUS:X  d  US:X  a  [        U < S35      eXU R	                  S5      n0 nU Hz  n[        UR                  5       5      S:X  a  M"  UR	                  S5      n[        U5      S:w  a  [        U < SU< 35      eUS	   R                  5       XWS   R                  5       '   M|     U$ )
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Ú;r   Ú:é   z contains invalid declaration r   )Úfindr   ÚrfindÚ
ValueErrorÚsplitÚstrip)ÚlineÚparenÚstartÚendÚitemsÚ	localVarsÚitemr-   s           r"   Ú_parseLocalVariablesr6   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                 óÜ   • [        U 5       nUR                  5       UR                  5       /nSSS5        W H  n [        U5      s  $    0 $ ! , (       d  f       N%= f! [         a     M3  f = f)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Úreadliner6   r,   )ÚfilenameÚfÚlinesr/   s       r"   ÚloadLocalVariablesr=   a   sd   € ô 
ˆhŒ˜1Ø—‘“˜qŸz™z›|Ð,ˆ÷ 
ãˆð	Ü'¨Ó-Ò-ñ ð
 €I÷ 
�ûô
 ó 	Úð	ús   Œ!A»
AÁ
AÁ
A+Á*A+c                 ód   • [        U 5      R                  SS 5      nUc  / $ UR                  S5      $ )Nztest-case-nameÚ,)r=   Úgetr-   )r:   ÚtestCaseVars     r"   ÚgetTestModulesrB   r   s6   € Ü$ XÓ.×2Ñ2Ð3CÀTÓJ€KØÑØˆ	Ø×Ñ˜SÓ!Ð!r$   c                 óº   • [         R                  R                  U 5      nUR                  S5      =(       a%    [         R                  R	                  U5      S   S:H  $ )z}
Returns true if 'filename' looks like a file containing unit tests.
False otherwise.  Doesn't care whether filename exists.
Útest_r   z.py)r   ÚpathÚbasenameÚ
startswithÚsplitext)r:   rF   s     r"   Ú
isTestFilerI   y   sG   € ô
 �w‰w×Ñ Ó)€HØ×Ñ˜wÓ'×T¬B¯G©G×,<Ñ,<¸XÓ,FÀqÑ,IÈeÑ,TÐTr$   c                  ó°   • [         R                  " [        R                  " [        R
                  5       V s/ s H  o R                  PM     sn 5      $ s  sn f ©N)r   ÚCompleteListr   Ú
getPluginsr   Ú	IReporterÚlongOpt)Úps    r"   Ú_reporterActionrQ   ‚   s:   € Ü×Ò´&×2CÒ2CÄF×DTÑDTÔ2UÓVÒ2U¨QŸyœyÑ2UÑVÓWÐWùÒVs   ·Ac                 óÐ   • [        U SS5      nUb  [        X5      n [        U SS5      nUb  UR                  $  [        R                  " U 5      S   $ ! [        [
        4 a     gf = f)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&   )r   Úco_firstlinenoÚinspectÚgetsourcelinesÚOSErrorÚ	TypeError)Ú	testThingÚmethodÚcodes      r"   Ú_maybeFindSourceLiner]   †   sy   € ô �YÐ 1°4Ó8€FØÑÜ˜IÓ.ˆ	ô �9˜j¨$Ó/€DØÑØ×"Ñ"Ð"ðÜ×%Ò% iÓ0°Ñ3Ð3øÜ”YÐó ñ ðús   ¹A ÁA%Á$A%zCalphabetical order for test methods, arbitrary order for test caseszDattempt to run test cases and methods in the order they were defined)ÚalphabeticalÚtoptobottomc                 ó„   • U [         ;  a5  [        R                  " SSR                  S [          5       5      < S35      eU $ )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   #   • U  H  n[        U5      v •  M     g 7frK   )Úrepr)Ú.0Úorders     r"   Ú	<genexpr>Ú&_checkKnownRunOrder.<locals>.<genexpr>¿   s   é € Ð=²*¨œ˜eŸ˜²*ùs   ‚z. See --help-orders for details)Ú
_runOrdersr   Ú
UsageErrorÚjoin)rd   s    r"   Ú_checkKnownRunOrderrj   ±   s>   € ð ”JÓÜ×Óà�y‰yÑ=µ*Ó=Ö=ð@ó
ð 	
ð €Lr$   c            	       ó¢  • \ rS rSr% SrSrSS// SQ/ SQ/ SQ/ S	Q/ S
Q/ SQ/ SQ/rSSSS\// SQ/ SQ/ SQ/r\	R                  " \	R                  " \5      \\	R                  " SS9\	R                  " SS9S.\	R                  " SSSS9/S9rSr\\R(                     \S'   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)/Ú_BasicOptionséÄ   z;
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Úh)ú
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).rd   ÚoNzRSpecify what order to run test cases and methods. See --help-orders for more info.)ÚrandomÚzNz2Run tests in random order using the specified seed)útemp-directoryNÚ_trial_tempz+Path to use as working directory for tests.)ÚreporterNr   zKThe reporter to use for this test run.  See --help-reporters for more info.úlog file name)Údescrzrandom seed)rd   r}   Úlogfilery   z*.pyz/file | module | package | TestCase | testMethodT)r   Úrepeat)Ú
optActionsÚextraActionsÚtracerc                 óL   • / U S'   [         R                  R                  U 5        g ©NÚtests)r   ÚOptionsÚ__init__©Úselfs    r"   r‰   Ú_BasicOptions.__init__  s   € ØˆˆW‰Ü�‰×Ñ˜tÕ$r$   c                 ó8  • [         R                  " [        R                  S   5      nUR	                  S5      (       aM  SR                  [        R                  R                  [        R                  5      UR                  SS5      5      nSR                  U5      $ )Nr   z	.__main__z{} -m {}Ú zD{} [options] [[file|package|module|TestCase|testmethod]...]
        )r
   ÚfilenameToModuleNameÚsysÚargvÚendswithÚformatr   rE   rF   Ú
executableÚreplace)r‹   ÚexecutableNames     r"   ÚgetSynopsisÚ_BasicOptions.getSynopsis  sx   € Ü ×5Ò5´c·h±h¸q±kÓBˆà×"Ñ" ;×/Ñ/Ø'×.Ñ.Ü—‘× Ñ ¤§¡Ó0Ø×&Ñ& {°BÓ7óˆNð
ß‰FØó
ð	
r$   c                 óv   • Sn[        U S   5      R                  U5      n[        SUR                   S35        U$ )z`
Return a L{FilePath} representing the directory into which coverage
results should be written.
Úcoverager{   zSetting coverage directory to Ú.)r   ÚchildÚprintrE   )r‹   ÚcoverdirÚresults      r"   rž   Ú_BasicOptions.coverdir#  s?   € ð
 ˆÜ˜$Ð/Ñ0Ó1×7Ñ7¸ÓAˆÜÐ.¨v¯{©{¨m¸1Ð=Ô>Øˆr$   c                 ó–   • [         R                  " SSS9U l        [        R                  " U R                  R
                  5        SU S'   g)zm
Generate coverage information in the coverage file in the
directory specified by the temp-directory option.
r   r   )ÚcountÚtraceTrš   N)r£   ÚTracer„   r�   ÚsettraceÚglobaltracerŠ   s    r"   Úopt_coverageÚ_BasicOptions.opt_coverage5  s6   € ô
 —k’k¨°Ñ3ˆŒÜ�Š�T—[‘[×,Ñ,Ô-ØˆˆZÒr$   c                 óX  • [         R                  R                  U5      (       d%  [        R                  R                  SU< S35        g[         R                  R                  U5      n[        U5      (       a  U S   R                  U5        gU S   R                  [        U5      5        g)z7
Filename to grep for test cases (-*- test-case-name).
zFile z doesn't exist
Nr‡   )r   rE   Úisfiler�   ÚstderrÚwriteÚabspathrI   ÚappendÚextendrB   )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                 ó<   • SSK Jn  [        R                  " U5        g)zt
Print an insanely verbose log of everything that happens.  Useful
when debugging freezes or locks in complex code.
r   )ÚspewerN)Útwisted.python.utilr³   r�   r¥   )r‹   r³   s     r"   Úopt_spewÚ_BasicOptions.opt_spewU  s   € õ
 	/ä�Š�VÕr$   c                 ó¸   • Sn[        U5        [        [        R                  5       5       H  u  nu  p4[        SUSU5        M     [        R
                  " S5        g )Nz’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>.
ú   Ú	r   )r�   Úsortedrg   r3   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                 óä   • Sn[        U5        [        R                  " [        R                  5       H%  n[        SUR
                  SUR                  5        M'     [        R                  " S5        g )Nz†Trial's output can be customized using plugins called Reporters. You can
select any of the following reporters using --reporter=<foo>
r¸   r¹   r   )	r�   r   rM   r   rN   rO   r¾   r�   r»   )r‹   r¼   rP   s      r"   Úopt_help_reportersÚ _BasicOptions.opt_help_reportersj  sQ   € ð1ð 	ô
 	ˆhŒÜ×"Ò"¤6×#3Ñ#3Ö4ˆAÜ�%˜Ÿ™ D¨!¯-©-Ö8ñ 5ä�Š��r$   c                 ó8   • SU S'   [         R                  " 5         g)z
Disable the garbage collector
TÚ	disablegcN)ÚgcÚdisablerŠ   s    r"   Úopt_disablegcÚ_BasicOptions.opt_disablegcu  s   € ð !ˆˆ[ÑÜ
�
Š
�r$   c                 óf   •  [         U   U S'   g! [         a    [        R                  " S5      ef = f)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   rh   )r‹   Úopts     r"   Úopt_tbformatÚ_BasicOptions.opt_tbformat|  s:   € ð	UÜ+¨CÑ0ˆD�ÒøÜó 	UÜ×"Ò"Ð#SÓTÐTð	Uús   ‚ �!0c                 ó´   •  [         R                  " [        U5      5        [        U5      U S'   g! [        [        4 a    [
        R                  " S5      ef = f)z
see sys.setrecursionlimit()
Úrecursionlimitz-argument to recursionlimit must be an integerN)r�   ÚsetrecursionlimitÚintrY   r,   r   rh   )r‹   Úargs     r"   Úopt_recursionlimitÚ _BasicOptions.opt_recursionlimit‡  sT   € ð	.Ü×!Ò!¤# c£(Ô+ô &)¨£XˆDÐ!Ò"øô œ:Ð&ó 	TÜ×"Ò"Ð#RÓSÐSð	Tús	   ‚0 °'Ac                 ó  •  [        U5      U S'   U S   S:  a  [        R                  " S5      eU S   S:X  a%  [        [        R                  " 5       S-  5      U S'   g g ! [         a    [        R                  " S5      ef = f)Nry   r   z/Argument to --random must be a positive integeréd   )rÕ   r   rh   Útimer,   )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 Á!A?c                 óÆ   • XS'   UR                  S5       HH  nU[        R                  ;   a  [        R                  " SU< S3[
        S9  S[        R                  U'   MJ     g)z@
Fake the lack of the specified modules, separated with commas.
úwithout-moduler?   zModule 'z%' already imported, disabling anyway.)ÚcategoryN)r-   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                 ó,   • U S   R                  U5        g r†   )r¯   )r‹   Úargss     r"   Ú	parseArgsÚ_BasicOptions.parseArgs¬  s   € ØˆW‰×Ñ˜TÕ"r$   c                 ó
  • [         R                  " [        R                  5       HF  nUR                   SUR
                   3nUR                  U:X  d  M0  [        R                  " U5      s  $    [        R                  " S5      e)Nr›   zVOnly pass names of Reporter plugins to --reporter. See --help-reporters for more info.)r   rM   r   rN   ræ   ÚklassrO   r
   ÚnamedAnyr   rh   )r‹   r½   rP   Úquals       r"   Ú_loadReporterByNameÚ!_BasicOptions._loadReporterByName¯  sl   € Ü×"Ò"¤6×#3Ñ#3Ö4ˆAØ—h‘h�Z˜q §¡ 	Ð*ˆDØ�y‰y˜DÕ Ü×'Ò'¨Ó-Ò-ñ 5ô ×Òðó
ð 	
r$   c                 óŽ   • U R                  U S   5      U S'   SU ;  a  SU S'   U S   b  U S   b  [        R                  " S5      eg g )Nr}   rÌ   r   rd   ry   z-You can't specify --random when using --order)rñ   r   rh   rŠ   s    r"   ÚpostOptionsÚ_BasicOptions.postOptionsº  s^   € ð  ×3Ñ3°D¸Ñ4DÓEˆˆZÑØ˜TÓ!Ø(ˆD�ÑØ�‰=Ñ$¨¨h©Ñ)CÜ×"Ò"Ð#RÓSÐSð *DÐ$r$   )r„   )'Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚlongdescÚoptFlagsrj   ÚoptParametersr   ÚCompletionsrL   rg   rQ   ÚCompleteFilesÚ	CompleterÚcompDatar„   r   r£   r¤   Ú__annotations__r‰   r—   rž   r§   r°   rµ   rÀ   rÃ   rÉ   rÐ   r×   rÝ   rç   rë   rñ   rô   Ú__static_attributes__© r$   r"   rl   rl   Ä   s6  ‡ ñð
	Gð ð 
�ˆÚ:ÚFÚPò	
ò
 	Nò	
ò
	
ð!€Hð4 ØØð/àð	
ò 	Tò	
ò	
ð!€Mð2 × Ò à×'Ò'¨
Ó3Ø'Ø×*Ò*°ÑAØ—o’o¨MÑ:ñ	
ð ×ÒØØGØñð
ñ€Hð  %)€FˆH�U—[‘[Ñ!Ó(ò%ò
òò$ ò;ò.ò
ò	òò	Uò	.ò8ò'ò#ò	
õTr$   rl   c                   óÂ   • \ rS rSrSr/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/r/ S	Q/ S
Q/ SQ/r\R                  " \R                  " / SQ5      \
S.S9r/ SQr/ SQrS rS rS rSrg)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}
)ÚdebugÚbziRun tests in a debugger. If that debugger is pdb, will load '.pdbrc' from current directory if it exists.)údebug-stacktracesÚBz2Report Deferred creation and callback stack traces)ÚnopmNzFdon't automatically jump into debugger for postmorteming of exceptions)údry-runÚnzdo everything but run the tests)ÚprofileNz#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)r€   Úlztest.logr~   )ÚjobsÚjNzNumber of local workers to run)r   r   r   )rÌ   r}   )r‚   )rÆ   ru   rš   )rÓ   Úreactorrà   c                 óÌ   • US:X  a  [        5       nO( [        U5      nUS::  a  [        R                  " S5      eXS'   g! [         a    [        R                  " SU-  5      ef = f)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'r   z>Argument to jobs must be a strictly positive integer or 'auto'r  N)r#   rÕ   r,   r   rh   )r‹   r!   s     r"   Úopt_jobsÚOptions.opt_jobsÿ  su   € ð
 �VÓÜ“[‰FðÜ˜V›�ð
 ˜‹{Ü×&Ò&ØTóð ð ˆVŠøô ó Ü×&Ò&ØBÀVÑKóð ðús	   “? ¿$A#c                 ó&  • / nU R                    H6  nU R                  U5      c  M  X   (       d  M"  UR                  SU 35        M8     U R                   H8  nU R                  U5      c  M  UR	                  SU 3[        X   5      /5        M:     U$ )z:
Return a list of options to pass to distributed workers.
z--)Ú_workerFlagsr@   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                 ó  • [         R                  U 5        U S   (       a/  / SQnU H%  nX   (       d  M  [        R                  " SU-  5      e   U S   (       a,  U S   (       d  [        R                  " S5      eS[        l        g g )Nr  )r  r  r  z(You can't specify --%s when using --jobsr
  r  z+You must specify --debug when using --nopm F)rl   rô   r   rh   r	   ÚDO_POST_MORTEM)r‹   Ú	conflictsrÜ   s      r"   rô   ÚOptions.postOptions!  sw   € Ü×!Ñ! $Ô'Ø��<ÚAˆIÛ#�Ø—<‘<Ü×*Ò*ØBÀVÑKóð ñ $ð
 ��<Ø˜—=Ü×&Ò&Ð'WÓXÐXØ%*ŒGÕ"ð r$   r  N)rö   r÷   rø   rù   rú   rü   rý   r   rþ   rL   rQ   r  r  r  r  r  rô   r  r  r$   r"   rˆ   rˆ   Å  s�   † ñò	
ò	
ò
	
ò
 	<Ú@Ú<ð'€Hò.	
ò 	6Ú=ð	€Mð × Ò à×*Ò*Ò+FÓGØ'ñ
ñ€Hò 9€LÚGÐòò(õ+r$   rˆ   Úconfigc                 ó˜   • U S   (       a  [         R                  " 5         U S   (       d
  U S   (       a  [        R                  " S5        g g )Nr  r  T)r	   ÚstartDebugModer   ÚsetDebugging)r$  s    r"   Ú_initialDebugSetupr(  0  s7   € àˆg‡Ü×ÒÔ Øˆg‡˜&Ð!4×5Ü×Ò˜4Õ ð 6r$   c                 óR   • [        U 5      nU S   (       + nUR                  U S   US9$ )Nrp   r‡   )Úrecurse)Ú
_getLoaderÚloadByNames)r$  Úloaderr*  s      r"   Ú	_getSuiter.  8  s3   € Ü˜Ó€FØ˜Ñ&Ô&€GØ×Ñ˜f W™o°wÐÐ?Ð?r$   c                 óL  ^• [         R                  " 5       nU S   (       aF  [        R                  " 5       mTR	                  U S   5        U4S jUl        [        SU S   -  5        OU S   (       a  [        U S      u  p#X1l        U S   (       d  [         R                  Ul	        U$ )Nry   c                 ó$   >• TR                  5       $ rK   )ry   )rw   Úrandomers    €r"   Ú<lambda>Ú_getLoader.<locals>.<lambda>C  s   ø€  (§/¡/Ô"3r$   z$Running tests shuffled with seed %d
rd   r  )
r   Ú
TestLoaderry   ÚRandomÚseedÚsorterr�   rg   ÚDestructiveTestSuiteÚsuiteFactory)r$  r-  r¿   r7  r1  s       @r"   r+  r+  >  s†   ø€ Ü×ÒÓ €FØˆh×Ü—=’=“?ˆØ�‰�f˜XÑ&Ô'Ü3ˆŒÜÐ5¸¸xÑ8HÑHÕIØ	��Ü˜v g™Ñ/‰	ˆØŒØ�/×"Ü$×9Ñ9ˆÔØ€Mr$   c                  ó¢  • [         R                  " 5       n  [        S5        S Hi  n[
        R                  R                  U5      (       d  M)   [        U5      nU   U R                  R                  UR                  5       5        SSS5        Mk     U $ ! [         a    [	        S5         Nˆf = f! , (       d  f       M™  = f! [         a     M©  f = f)zJ
Wrap an instance of C{pdb.Pdb} with readline support and load any .rcs.

r9   zreadline module not available)z.pdbrcÚpdbrcN)r  ÚPdbr   ÚImportErrorr�   r   rE   Úexistsr8   ÚrcLinesr¯   Ú	readlinesrX   )ÚdbgrE   ÚrcFiles      r"   Ú_wrappedPdbrC  M  s¬   € ô �'Š'‹)€Cð/Ü�JÔó $ˆÜ�7‰7�>‰>˜$×Óð;Ü˜d›�ò Ø—K‘K×&Ñ& v×'7Ñ'7Ó'9Ô:÷ ‘Vñ $ð €Jøô ó /ÜÐ-Ö.ð/ú÷ –Vûô ó Úðús/   —B ÁC Á*B.ÂB+Â*B+Â.
B=	Ã 
CÃCc                   ó   • \ rS rSrSrSrg)Ú_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"   rE  rE  d  s   † ôr$   rE  c                 ó:  • [         R                  nU S   U S   U S   U S   U S   U S   U S   S.nU S	   (       a  [         R                  R                  US
'   O–U S   (       a"  [        nU S   US'   U R	                  5       US'   OjU S   (       aP  [         R                  R
                  US
'   U S   nUS:w  a   [        R                  " U5      US'   O[        5       US'   U S   US'   U S   US'   U" S0 UD6$ ! [        R                   a    [        U< S35      ef = f)zu
Return a trial runner class set up with the parameters extracted from
C{config}.

@return: A trial runner instance.
r}   rÌ   rr   rt   r€   r{   rv   )ÚreporterFactoryÚtracebackFormatÚrealTimeErrorsÚuncleanWarningsr€   ÚworkingDirectoryÚ	exitFirstr  Úmoder  Ú
maxWorkersÚworkerArgumentsr  r  r  z debugger could not be found.r  ru   ÚforceGarbageCollectionr  )r   ÚTrialRunnerÚDRY_RUNr   r  ÚDEBUGr
   rï   ÚModuleNotFoundrE  rC  )r$  Úclsrê   r  s       r"   Ú_makeRunnerrV  m  sL  € ô !'× 2Ñ 2€Cà! *Ñ-Ø! *Ñ-Ø  Ñ,Ø!Ð"4Ñ5Ø˜)Ñ$Ø"Ð#3Ñ4Ø˜KÑ(ñ€Dð ˆi×Ü×)Ñ)×1Ñ1ˆˆVŠØ	��ÜˆØ# F™^ˆˆ\ÑØ"(×"<Ñ"<Ó">ˆÐÒà�'�?Ü!×-Ñ-×3Ñ3ˆD�‰LØ˜jÑ)ˆHà˜5Ó ðÜ'.×'7Ò'7¸Ó'A�D˜Ò$ô $/£=��ZÑ à  Ñ+ˆˆY‰Ø)/°
Ñ);ˆÐ%Ñ&á‰;�‰;Ðøô ×-Ñ-ó Ü+Ø#™,Ð&CÐDóð ðús   Â7C6 Ã6$Dc                  óh  • [        [        R                  5      S:X  a  [        R                  R                  S5        [	        5       n  U R                  5         [        U 5         [        U 5      n[        U 5      nU S   (       a  UR                  U5      nOUR                  U5      nU R                   (       aY  [        R"                  " S 5        U R                   R%                  5       nUR'                  SSU R)                  5       R*                  S9  [        R,                  " UR/                  5       (       + 5        g ! [        R                   a&  n[        [        R                  S    SU 35      eS nAff = f! [         a/  n[        [        R                  S    S[        U5       35      eS nAff = f)	Nr   z--helpr   z: r  TF)Úshow_missingÚsummaryrž   )r   r�   r‘   r®   rˆ   ÚparseOptionsr   ÚerrorÚ
SystemExitr(  rV  rE  r  r.  ÚrunUntilFailureÚrunr„   r¥   ÚresultsÚwrite_resultsrž   rE   r»   ÚwasSuccessful)r$  ÚueÚtrialRunnerrs   ÚsuiteÚ
testResultr_  s          r"   r^  r^  ™  sR  € Ü
Œ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   ÁD; Á$E8 Ä;E5Å!E0Å0E5Å8
F1Æ*F,Æ,F1);rÇ   rV   r   r  ry   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#   r6   r=   rB   rI   rQ   r]   r½   rg   rj   rl   rˆ   ÚReactorSelectionMixinr(  r.  r4  r+  rC  Ú	ExceptionrE  Ú_RunnerrV  r^  r  r$   r"   Ú<module>rs     s^  ðó 
Û Û 	Û 
Û Û 
Û Û Û ß +Ñ +å Ý #Ý "ß 2Ñ 2Ý ,Ý .ß (Ý 9Ý ,ð
 ØØØØØñ€ð�3ô òBò2ò""òUòXòðB 	NØ�‰ðð
 	OØðñ	€
ò÷&~Tñ ~TôBh+ˆm˜UŸ]™]¨C×,EÑ,Eô h+ðV!˜wð !¨4ô !ð@�gð @ )ô @ð�wð  6×#4Ñ#4ô òô.˜	ô ð)˜ð ) F§N¡Nô )ðX-ˆXõ -r$   