§
    „Øjà1  ã                  ó
  — d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z
ddlmZ ddlmZ ddlmZ ddlmZ  ej        d¦  «        Zej         G d	„ d
¦  «        ¦   «         Zd„ Zdd„Zd„ Zedk    r e¦   «          dS dS )a#  
Multiprocess testing.  Tests all doctests and Test unittest objects in all
modules that are imported when running "import music21".  Runs a thread on
each core of a multicore system unless there are more than 2 cores, in which
case it runs on n-1 cores.

N.B. this gets a slightly different set of modules than test/test.py does
because the `imp` module is not available for threaded processing.  Running
both modules gives great coverage of just about everything -- do that before
building a new release.

Run test/testDocumentation after this.
é    )ÚannotationsN)Úenvironment)Úcommon)Ú
testRunner)Ú
commonTestztest.multiprocessTestc                  óŽ   — e Zd ZU dZded<   dZded<   dZded<   dZded<   dZded<   dZ	ded	<   dZ
ded
<   dZded<   dZded<   dS )ÚModuleResponseNz
str | NoneÚ
returnCodezt.AnyÚfpÚ
moduleNameÚsuccessr   ÚerrorsÚfailuresÚtestsRunÚrunTime)Ú__name__Ú
__module__Ú__qualname__r
   Ú__annotations__r   r   r   r   r   r   r   r   © ó    ú’/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/music21/test/multiprocessTest.pyr	   r	   (   s«   € € € € € € à€JÐÐÐÑØ€BÐÐÐÑØ€JÐÐÐÑØ€GÐÐÐÑØ€JÐÐÐÑØ€FÐÐÐÑØ€HÐÐÐÑØ€HÐÐÐÑØ€GÐÐÐÑÐÐr   r	   c                ó
  — | d         }| d         }d}t          j         ¦   «         }|                     |¦  «        }t                               d|›d|›d�¦  «         |                     |¦  «        }|dk    r1|› d�}t                               |¦  «         t          d	||¬
¦  «        S |dk    r1|› d�}t                               |¦  «         t          d||¬
¦  «        S 	 |                     |d¬¦  «        }t          j        ¦   «         }	t          |d¦  «        st                               |› d�¦  «         n9t          j
                             |j        ¦  «        }
|	                     |
¦  «         	 t          j        |¦  «        }|	                     |¦  «         n-# t          $ r  t                               |› d�¦  «         Y nw xY wt          j        |	¦  «         t                               d¦  «         t          j        |¬¦  «        }	 |                     |	¦  «        }g }|j        D ]}|                     |d         ¦  «         Œg }|j        D ]}|                     |d         ¦  «         Œt-          dt          j         ¦   «         |z
  z  ¦  «        dz  }t          d|||                     ¦   «         t1          |¦  «        |||j        |¬¦	  «	        S # t4          $ rL}t                               d|› d|› d�¦  «         t          d||d t1          |¦  «        ¬¦  «        cY d }~S d }~ww xY w# t4          $ rJ}t                               d|› d|› d�¦  «         t          d|t1          |¦  «        ¬¦  «        cY d }~S d }~ww xY w) Nr   é   Fzrunning fp=z moduleObject=ú
Úskipz is skipped 
ÚSkipped)r
   r   r   Ú	notInTreezI is in the music21 directory but not imported in music21. Skipped -- fix!Ú	NotInTree)ÚaddM21ÚTestz has no Test classz cannot load Doctestszrunning Tests...
)Ú	verbosityé
   ç      $@ÚTestsRun)	r
   r   r   r   r   r   r   r   r   z*** Exception in running ú: z...
ÚTrappedException)r
   r   r   r   r   z*** Large Exception in running ÚLargeException)r
   r   r   )ÚtimeÚgetModuleWithoutImpÚenvironLocalÚ
printDebugÚ_getNamePeriodr	   r   ÚdefaultDoctestSuiteÚhasattrÚunittestÚdefaultTestLoaderÚloadTestsFromTestCaser!   ÚaddTestsÚ
ValueErrorr   ÚfixDoctestsÚMusic21TestRunnerÚrunr   Úappendr   ÚroundÚwasSuccessfulÚstrr   Ú	Exception)ÚargsÚmodGathr   r"   Ú	timeStartÚmoduleObjectÚ
namePeriodr   r   Ús1Ús2Ús3ÚrunnerÚ
testResultr   Úer   Úfr   Úexcps                       r   ÚrunOneModuleWithoutImprJ   7   s  € Ø�1Œg€GØ	ˆaŒ€BØ€IÝ”	‘”€Ià×.Ò.¨rÑ2Ô2€Lå×ÒÐ> rÐ>Ð>¨\Ð>Ð>Ð>Ñ?Ô?Ð?Ø×'Ò'¨Ñ+Ô+€JØ�vÒÐØÐ'Ð'Ð'ˆÝ×Ò Ñ(Ô(Ð(Ý¨°rÀ7ÐKÑKÔKÐKØ	˜Ò	$Ð	$àÐdÐdÐdð 	õ 	×Ò Ñ(Ô(Ð(Ý¨¸ÀWÐMÑMÔMÐMð74Ø×+Ò+¨B°uÐ+Ñ=Ô=ˆ
åÔ+Ñ-Ô-ˆõ �| VÑ,Ô,ð 	Ý×#Ò# |Ð$GÐ$GÐ$GÑHÔHÐHÐHåÔ+×AÒAÀ,ÔBSÑTÔTˆBØ�KŠK˜‰OŒOˆOð	ÝÔ/°Ñ=Ô=ˆBØ�KŠK˜‰OŒOˆOˆOøÝð 	ð 	ð 	Ý×#Ò# |Ð$JÐ$JÐ$JÑKÔKÐKØˆDð	øøøõ 	Ô˜rÑ"Ô"Ð"å×ÒÐ 4Ñ5Ô5Ð5ÝÔ-¸	ÐBÑBÔBˆð	$ØŸš B™œˆJð ˆFØÔ&ð $ð $�Ø—’˜a œdÑ#Ô#Ð#Ð#ØˆHØÔ(ð &ð &�Ø—’  !¤Ñ%Ô%Ð%Ð%Ý˜B¥$¤)¡+¤+°	Ñ"9Ñ:Ñ;Ô;¸dÑBˆGÝ!¨ZØ%'Ø-7Ø*4×*BÒ*BÑ*DÔ*DÝ-0°©_¬_Ø)/Ø+3Ø+5Ô+>Ø*1ð3ñ 3ô 3ð 3øõ ð 	$ð 	$ð 	$Ý×#Ò#Ð$YÀ
Ð$YÐ$YÈdÐ$YÐ$YÐ$YÑZÔZÐZÝ!Ð-?Ø%'Ø-7Ø*.Ý-0°©Y¬Yð	$ñ $ô $ð $ð $ð $ð $ð $ð $øøøøð	$øøøøõ ð 4ð 4ð 4Ý×ÒÐ SÀ"Ð SÐ SÈÐ SÐ SÐ SÑTÔTÐTÝÐ)9Ø!#Ý),¨T©¬ð4ñ 4ô 4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøøð4øøøsp   Ã BL. Å2)F ÆL. Æ'GÇL. ÇGÇAL. ÈCK Ë
L+ËAL&Ì L+Ì!L. Ì&L+Ì+L. Ì.
NÌ8?M=Í7NÍ=N©ÚtestFr   c                ó¶  ‡— t          j        ¦   «          t          j        }t	          j        ¦   «         }t          j        ¦   «         }t          d|› d|› d�¦  «         t          j        d¬¦  «        Šd}‰j	        }t          j        |¬¦  «        5 }|                     t          ˆfd„|D ¦   «         ¦  «        }	d}
d	}d	}g }|
�rb	 |	                     d
¬¦  «        }|dk    rt          d¦  «         |�Ã|j        �|j        }|                     dd¦  «        }nd}|j        }|�“t%          |j        dz  ¦  «        dz  }|j        s&|j        st          d|› d|j        › d|› d�¦  «         nLt-          |j        ¦  «        }t-          |j        ¦  «        }t          d|› d|j        › d|› d|› d|› d�¦  «         d	}|d
z  }|                     |¦  «         �nP# t          j        $ r¿ |d
z  }|dk    r|d	k    rt          dd¬¦  «         n|dk    rt          dd¬¦  «         |dz  d	k    r"t          t3          |¦  «        dz   dd¬¦  «         ||k    rQ|d	k    rKt          dd¬¦  «         d }
t5          |||¦  «         |                     ¦   «          t          j        ¦   «          Y nƒt:          $ r- d }
|                     ¦   «          |                     ¦   «          Y nNt>          $ rB}|d
z  }tA          d!t3          |¦  «        ¬"¦  «        }|                     |¦  «         Y d}~nd}~ww xY w|
�°bddd¦  «         n# 1 swxY w Y   |t          _        t5          |||¦  «         dS )#z>
    Run all tests. Group can be "test" and/or "external"
    z	Creating z) processes for multiprocessing (omitting z processors)T)ÚuseExtendedéd   )Ú	processesc              3  ó    •K  — | ]}‰|fV — Œ	d S )Nr   )Ú.0r   Ú	modGathers     €r   ú	<genexpr>z!mainPoolRunner.<locals>.<genexpr>¡   s'   øè è € Ð$JÐ$J¸ i° _Ð$JÐ$JÐ$JÐ$JÐ$JÐ$Jr   r   r   )Útimeouté   Ú NÚ	___init__r#   r$   z				r&   ú
 tests in z secsz tests, z errors z failures in zDelay in processing, seconds: )Úendz2Starting first modules, should take 5-10 seconds: ú )rZ   Úflushz
Too many delays, giving up.)r\   FÚUntrappedException)r
   r   )!r   ÚtestImportsÚsysÚstderrr)   r   ÚcpusÚprintÚModuleGatherÚmodulePathsÚmultiprocessingÚPoolÚimap_unorderedrJ   Únextr   Úreplacer   r9   r   r   r   Úlenr8   ÚTimeoutErrorr;   ÚprintSummaryÚcloseÚexitÚStopIterationÚjoinr<   r	   )Ú	testGroupÚrestoreEnvironmentDefaultsÚleaveOutÚnormalStdErrorr?   ÚpoolSizeÚ
maxTimeoutÚ
pathsToRunÚpoolÚresÚ
continueItÚtimeoutsÚeventsProcessedÚsummaryOutputÚ	newResultÚmnÚrtÚnumErrÚnumFailrI   ÚexceptionLogrS   s                        @r   ÚmainPoolRunnerr„   †   sz  ø€ õ ÔÑÔÐå”Z€Nå”	‘”€IÝŒ{‰}Œ}€Hå	Ð
_�hÐ
_Ð
_ÈÐ
_Ð
_Ð
_Ñ`Ô`Ð`åÔ'°DÐ9Ñ9Ô9€Ià€JØÔ&€Jõ 
Ô	¨Ð	1Ñ	1Ô	1ð @3°Tð ×!Ò!Õ"8Ø$JÐ$JÐ$JÐ$J¸zÐ$JÑ$JÔ$JñLô Lˆð ˆ
ØˆØˆØˆàñ 1	3ð03ØŸHšH¨Q˜HÑ/Ô/�	Ø˜q’=�=Ý˜"‘I”I�IØÐ(Ø Ô+Ð7Ø&Ô1˜ØŸZšZ¨°RÑ8Ô8˜˜à˜Ø"Ô*�BØ�~Ý" 9Ô#4°rÑ#9Ñ:Ô:¸TÑA˜Ø(Ô/ð V¸	Ô8Jð VÝ!Ð"Z¨RÐ"ZÐ"Z°9Ô3EÐ"ZÐ"ZÐQSÐ"ZÐ"ZÐ"ZÑ[Ô[Ð[Ð[å%(¨Ô)9Ñ%:Ô%:˜FÝ&)¨)Ô*<Ñ&=Ô&=˜GÝ!ð #U¨Rð #Uð #U°9Ô3Eð #Uð #UØ%+ð#Uð #UØ5<ð#Uð #UØKMð#Uð #Uð #Uñ Vô Vð Và�Ø 1Ñ$�Ø×$Ò$ YÑ/Ô/Ð/Ñ/øÝ"Ô/ð ð ð Ø˜A‘�Ø˜q’=�= _°qÒ%8Ð%8ÝÐ:ÀÐCÑCÔCÐCÐCØ ’]�]ÝÐNÐTVÐWÑWÔWÐWà˜a‘< 1Ò$Ð$Ý�#˜h™-œ-¨#Ñ-°2¸TÐBÑBÔBÐBØ˜jÒ(Ð(¨_¸qÒ-@Ð-@ÝÐ9ÀÐFÑFÔFÐFØ!&�JÝ  °	¸:ÑFÔFÐFØ—J’J‘L”L�LÝ”H‘J”J�JøøÝ ð ð ð Ø"�
Ø—
’
‘”�Ø—	’	‘”���Ýð 3ð 3ð 3Ø 1Ñ$�Ý-Ø3Ý" 4™yœyð ñ  ô  �ð ×$Ò$ \Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2øøøøð3øøøðW ñ 1	3ð@3ð @3ð @3ñ @3ô @3ð @3ð @3ð @3ð @3ð @3ð @3øøøð @3ð @3ð @3ð @3ðD  …C„JÝ� 	¨:Ñ6Ô6Ð6Ð6Ð6sV   Â3L1ÃDGÇL1ÇCLÊL1Ê3LËL1Ë	LË8LÌL1ÌLÌL1Ì1L5Ì8L5c                ó~  — d}d„ | D ¦   «         }|D ],}||vr&t          d|¬¦  «        }|                      |¦  «         Œ-d}g }g }	g }
g }| D �]w}t          |¦  «         |j        dk    r|                     d|j        › �¦  «         Œ;|j        dk    r|                     d|j        › d	�¦  «         Œe|j        d
k    r|                     d|j        › �¦  «         ŒŽ|j        dk    r.|                     d|j        › d|j        › d|j        › �¦  «         ŒÇ|j        dk    r&|                     d|j        › d|j        › �¦  «         Œø|j        dk    r|                     d|j        › �¦  «         �Œ"|j        dk    r+|j        dk    r|                     d|j        › d�¦  «         �ŒX|j        dk    rü||j        z  }|j	        r/|	                     |j        › d|j        › d|j
        › d�¦  «         �Œ£|j        }|j        }|
                     d|j        › dt          |¦  «        › dt          |¦  «        › d|j        › d|j
        › d �¦  «         |D ],}||d!z   z  }|
                     t          |¦  «        ¦  «         Œ-|D ],}||d!z   z  }|
                     t          |¦  «        ¦  «         Œ-�Œ_|                     d"|› �¦  «         �Œy|d#z  }|D ]
}||d!z   z  }Œ|	D ]
}||d!z   z  }Œ|D ]
}||d!z   z  }Œ|
D ]
}||d!z   z  }Œ|d$z  }t          j        ¦   «         |z
  }|d%|› d|d&›d'�z  }t           j                             ¦   «          t          |¦  «         t           j                             ¦   «          dd l}t(          j                             t.                               ¦   «         d(¦  «        }t3          |d)d*¬+¦  «        5 }|                     |¦  «         |                     d,|j                             ¦   «                              d-¦  «        z   ¦  «         d d d ¦  «         n# 1 swxY w Y   t          d.|z   ¦  «         d S )/NrW   c                ó   — g | ]	}|j         ‘Œ
S r   )r   )rR   Úis     r   ú
<listcomp>z printSummary.<locals>.<listcomp>á   s   € Ð4Ð4Ð4 ˜œÐ4Ð4Ð4r   ÚNoResult)r
   r   r   r   z	Skipped: zSilent test fail for z: Run separately!r]   z(Untrapped Exception for unknown module: r'   zTrapped Exception for module z, at r&   r(   zLarge Exception for file ÚImportErrorzImport Error for r   zNot in Tree Error: r[   r%   z successfully ran rY   z secondsz
-----------------------------
z had z ERRORS and z FAILURES in z tests after z( seconds:
-----------------------------
r   zUnknown return code zL

---------------SUMMARY---------------------------------------------------
zJ-------------------------------------------------------------------------
zRan z.4fz	 seconds
zlastResults.txtÚwzutf-8)ÚencodingzRun at z%Y-%m-%d %H:%M:%SzResults at )r	   r8   rb   r
   r   r   r   rF   r   r   r   r   r   rj   r;   r)   r_   Ústdoutr\   ÚdatetimeÚosÚpathrp   r+   ÚgetRootTempDirÚopenÚwriteÚnowÚstrftime)r}   r?   rw   ÚoutStrÚsummaryOutputTwor   ÚfailLogÚ
totalTestsÚskippedSummaryÚsuccessSummaryÚerrorsFoundSummaryÚotherSummaryÚmoduleResponseÚ
errorsListÚfailuresListrG   rH   ÚlineÚelapsedTimerŽ   ÚlastResultss                        r   rl   rl   ß   sð  € Ø€FØ4Ð4 mÐ4Ñ4Ô4ÐØð *ð *ˆØÐ%Ð%Ð%Ý$°
¸rÐBÑBÔBˆGØ× Ò  Ñ)Ô)Ð)øà€Jà€NØ€NØÐØ€LØ'ð 4Iñ 4IˆÝˆnÑÔÐØÔ$¨	Ò1Ð1Ø×!Ò!Ð"A¨nÔ.?Ð"AÐ"AÑBÔBÐBÐBØÔ&¨*Ò4Ð4Ø×ÒÐ \¸Ô8IÐ \Ð \Ð \Ñ]Ô]Ð]Ð]ØÔ&Ð*>Ò>Ð>Ø×ÒÐ ^È>ÔK\Ð ^Ð ^Ñ_Ô_Ð_Ð_ØÔ&Ð*<Ò<Ð<Ø×Òð/°Ô0Ið /ð /Ø$Ô'ð/ð /à!Ô,ð/ð /ñô ð ð ð
 Ô&Ð*:Ò:Ð:Ø×Òð/¨NÔ,=ð /ð /Ø!Ô,ð/ð /ñô ð ð ð Ô&¨-Ò7Ð7Ø×ÒÐ G°NÔ4EÐ GÐ GÑHÔHÐHÑHØÔ&¨+Ò5Ð5ØÔ(¨BÒ.Ð.Ø×#Ò#Ð$V¸.Ô:SÐ$VÐ$VÐ$VÑWÔWÐWùØÔ&¨*Ò4Ð4Ø˜.Ô1Ñ1ˆJØÔ%ð 6Ø×%Ò%Ø%Ô0ð 8ð 8Ø%Ô.ð8ð 8à%Ô-ð8ð 8ð 8ñô ð ñ ð ,Ô2�
à-Ô6�Ø"×)Ò)ð6Ø%Ô0ð6ð 6å˜:‘”ð6ð 6õ ˜<Ñ(Ô(ð6ð 6ð &Ô.ð	6ð 6ð
 &Ô-ð6ð 6ð 6ñô ð ð $ð 6ð 6�AØ˜a $™hÑ&�FØ&×-Ò-­c°!©f¬fÑ5Ô5Ð5Ð5Ø%ð 6ð 6�AØ˜a $™hÑ&�FØ&×-Ò-­c°!©f¬fÑ5Ô5Ð5Ð5ñ6ð ×ÒÐ G°~Ð GÐ GÑHÔHÐHÑHà
Ð_Ñ_€FØð ð ˆØ�$˜‘+ÑˆˆØð ð ˆØ�$˜‘+ÑˆˆØð ð ˆØ�$˜‘+ÑˆˆØ"ð ð ˆØ�$˜‘+ÑˆˆØ
Ð[Ñ[€FÝ”)‘+”+ 	Ñ)€KØ
ÐF�ZÐFÐF¨;ÐFÐFÐFÐFÑF€FÝ„J×ÒÑÔÐÝ	ˆ&�M„M€MÝ„J×ÒÑÔÐà€O€O€OÝ”'—,’,�|×:Ò:Ñ<Ô<Ð>OÑPÔP€KÝ	ˆk˜3¨Ð	1Ñ	1Ô	1ð S°QØ	�Š�‰ŒˆØ	�Š�	˜HÔ-×1Ò1Ñ3Ô3×<Ò<Ð=PÑQÔQÑQÑRÔRÐRðSð Sð Sñ Sô Sð Sð Sð Sð Sð Sð Søøøð Sð Sð Sð Sõ 
ˆ-˜+Ñ
%Ñ&Ô&Ð&Ð&Ð&s   Î<AP Ð P$Ð'P$Ú__main__)rK   Fr   )Ú__doc__Ú
__future__r   Údataclassesre   r�   r_   r)   r0   ÚtypingÚtÚmusic21r   r   Úmusic21.testr   r   ÚEnvironmentr+   Ú	dataclassr	   rJ   r„   rl   r   r   r   r   ú<module>r®      sf  ððð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #à&ˆ{Ô&Ð'>Ñ?Ô?€àÔð	ð 	ð 	ð 	ð 	ñ 	ô 	ñ Ôð	ðL4ð L4ð L4ð^V7ð V7ð V7ð V7ðrZ'ð Z'ð Z'ðz ˆzÒÐð €NÑÔÐÐÐð	 Ðr   