§
    „Øj€B  ã                  óH  — 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
Z
ddlZddlmZ ddlZddlZddlmZ ddlmZ  ej        d¦  «        Zdd„Zdd„Zd„ Zdd„Z G d„ dej        j        ¦  «        Z G d„ d¦  «        Zedk    r ej        ¦   «          dS dS )z$
Things that are common to testing.
é    )ÚannotationsN)ÚregisterResult)Úenvironment)Úcommonztest.commonTestÚtestInstanceúunittest.TestCaseÚglobals_útyping.Dict[str, typing.Any]c                ó¤  — | j         j        }|                     ¦   «         D �]-\  }}d}dD ].}|                     |¦  «        s|                     |¦  «        rd}Œ/|rŒ<t          |¦  «        rt          |t          j        ¦  «        rŒft          |d¦  «        r|j        |k    rŒ‚	  |¦   «         }n# t          $ r Y Œšw xY w	 t          j        |¦  «         n2# t          $ r%}|                      d|› d|› �¦  «         Y d }~nd }~ww xY w	 t          j        |¦  «         Œü# t          $ r&}|                      d|› d|› �¦  «         Y d }~�Œ'd }~ww xY wd S )NF)Ú_ÚTestÚ	ExceptionTÚ
__module__zCould not copy obj z: zCould not deepcopy obj )Ú	__class__r   ÚitemsÚ
startswithÚendswithÚcallableÚ
isinstanceÚtypesÚFunctionTypeÚhasattrÚ	TypeErrorÚcopyr   ÚfailÚdeepcopy)	r   r	   Ú	my_moduleÚpartÚobjÚmatchÚskipÚinstanceÚes	            úŒ/Users/tedpeters/Documents/Projects/Claude Projects/Misc Tools/notename-sheets/.venv/lib/python3.11/site-packages/music21/test/commonTest.pyÚtestCopyAllr%   "   sÜ  € ØÔ&Ô1€IØ—^’^Ñ%Ô%ð Eñ E‰	ˆˆcØˆØ.ð 	ð 	ˆDØ�Š˜tÑ$Ô$ð ¨¯ª°dÑ(;Ô(;ð Ø�øØð 	Øå˜‰}Œ}ð 	¥
¨3µÔ0BÑ CÔ Cð 	ØÝ�s˜LÑ)Ô)ð 	¨S¬^¸yÒ-HÐ-HØð	Ø�s‘u”uˆHˆHøÝð 	ð 	ð 	ØˆHð	øøøð	AÝŒI�hÑÔÐÐøÝð 	Að 	Að 	AØ×ÒÐ?°DÐ?Ð?¸AÐ?Ð?Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@øøøøð	Aøøøð	EÝŒM˜(Ñ#Ô#Ð#Ð#øÝð 	Eð 	Eð 	EØ×ÒÐC¸ÐCÐCÀÐCÐCÑDÔDÐDÐDÐDÐDÐDÑDøøøøð	Eøøøð1Eð EsB   Â$
B/Â/
B<Â;B<Ã CÃ
DÃC?Ã?DÄDÄ
EÄ'EÅEÚnameÚstrÚpathÚreturnútypes.ModuleTypec                óv  — t           j                             | |¦  «        }|�|j        €t	          d|›�¦  «        ‚| t
          j        v rt
          j        |          }nBt           j                             |¦  «        }|€t	          d|›�¦  «        ‚|t
          j        | <   |j                             |¦  «         |S )zÂ
    Replacement for deprecated imp.load_source()

    Thanks to:
    https://github.com/epfl-scitas/spack for pointing out the
    important missing "spec.loader.exec_module(module)" line.
    NzNo such file or directory: )	Ú	importlibÚutilÚspec_from_file_locationÚloaderÚFileNotFoundErrorÚsysÚmodulesÚmodule_from_specÚexec_module)r&   r(   ÚspecÚmodules       r$   Úload_sourcer7   @   s±   € õ Œ>×1Ò1°$¸Ñ=Ô=€DØ€|�t”{Ð*ÝÐ F¸dÐ FÐ FÑGÔGÐGØ�sŒ{ÐÐÝ”˜TÔ"ˆˆå”×0Ò0°Ñ6Ô6ˆØˆ>Ý#Ð$JÀ$Ð$JÐ$JÑKÔKÐKØ"�Œ�DÑØ„K×Ò˜FÑ#Ô#Ð#à€Mó    c                 ó
  — 	 ddl } n"# t          $ r}t          d¦  «        |‚d}~ww xY w	 ddlm} n"# t          $ r}t          d¦  «        |‚d}~ww xY wddlm}m} 	  |¦   «          dS # |$ r}t          d¦  «        |‚d}~ww xY w)zN
    Test that all optional packages needed for test suites are installed
    r   Nz2pip install scipy : needed for running test suites)ÚStringMatcherz?pip install python-Levenshtein : needed for running test suites)ÚLilypondConverterÚLilyTranslateExceptionz-lilypond must be installed to run test suites)ÚscipyÚImportErrorÚLevenshteinr:   Úmusic21.lily.translater;   r<   )r=   r#   r:   r;   r<   s        r$   ÚtestImportsrA   W   s  € ð
WØˆˆˆˆøÝð Wð Wð WÝÐNÑOÔOÐUVÐVøøøøðWøøøðdØ-Ð-Ð-Ð-Ð-Ð-Ð-øÝð dð dð dÝÐ[Ñ\Ô\ÐbcÐcøøøøðdøøøð QÐPÐPÐPÐPÐPÐPÐPðRØÐÑÔÐÐÐøØ!ð Rð Rð RÝÐIÑJÔJÐPQÐQøøøøðRøøøs<   ‚ ‡
&‘!¡&ª1 ±
A»AÁAÁ
A( Á(BÁ-A=Á=Bc                óÚ   — t          d¦  «        j                             ¦   «         }t          j        t          j        z  }||dœ}| �t          j        | fi |¤Ž}nt          j        di |¤Ž}|S )NÚmusic21)ÚglobsÚoptionflags© )Ú
__import__Ú__dict__r   ÚdoctestÚELLIPSISÚNORMALIZE_WHITESPACEÚDocTestSuite)r&   rD   ÚdocTestOptionsÚkeywordsÚs1s        r$   ÚdefaultDoctestSuiterP   l   s}   € Ý�yÑ!Ô!Ô*×/Ò/Ñ1Ô1€EÝÔ&­Ô)EÑE€NàØ%ðð €Hð
 ÐÝÔ! $Ð3Ð3¨(Ð3Ð3ˆˆåÔ!Ð-Ð- HÐ-Ð-ˆØ€Ir8   c                  ó   — e Zd Zd„ ZdS )ÚMusic21TestRunnerc                ó(  — |                       ¦   «         }t          |¦  «         | j        |_        | j        |_        t	          j        ¦   «         5  t          | d¦  «        rE| j        r>t	          j        | j        ¦  «         | j        dv rt	          j        dt          d¬¦  «         t          |dd¦  «        }|�
 |¦   «          	  ||¦  «         t          |dd¦  «        }|�
 |¦   «          n## t          |dd¦  «        }|� |¦   «          w w xY wddd¦  «         n# 1 swxY w Y   |                     ¦   «          d	x}x}}	 t          t          |j        |j        |j        f¦  «        }|\  }}}n# t"          $ r Y nw xY wg }	|                     ¦   «         sw| j                             d
¦  «         t          |j        ¦  «        t          |j        ¦  «        }}
|
r|	                     d|
› �¦  «         |r|	                     d|› �¦  «         n	 |r|	                     d|› �¦  «         |r|	                     d|› �¦  «         |r|	                     d|› �¦  «         |	r4d                     |	¦  «        }| j                             d|› d�¦  «         n	 |S )z8
        Run the given test case or test suite.
        Úwarnings)ÚdefaultÚalwaysr6   zPlease use assert\w+ instead.)ÚcategoryÚmessageÚstartTestRunNÚstopTestRunr   ÚFAILEDz	failures=zerrors=zskipped=zexpected failures=zunexpected successes=z, z (ú))Ú_makeResultr   ÚfailfastÚbufferrT   Úcatch_warningsr   ÚsimplefilterÚfilterwarningsÚDeprecationWarningÚgetattrÚprintErrorsÚmapÚlenÚexpectedFailuresÚunexpectedSuccessesÚskippedÚAttributeErrorÚwasSuccessfulÚstreamÚwriteÚfailuresÚerrorsÚappendÚjoinÚwriteln)ÚselfÚtestÚresultrY   rZ   ÚexpectedFailsri   rj   ÚresultsÚinfosÚfailedÚerroredÚjoineds                r$   ÚrunzMusic21TestRunner.run   sP  € ð ×!Ò!Ñ#Ô#ˆÝ�vÑÔÐØœ-ˆŒØœˆŒÝÔ$Ñ&Ô&ð 	"ð 	"Ý�t˜ZÑ(Ô(ð V¨T¬]ð VåÔ% d¤mÑ4Ô4Ð4ð ”=Ð$9Ð9Ð9ÝÔ+¨HÝ5GØ4TðVñ Vô Vð Võ # 6¨>¸4Ñ@Ô@ˆLØÐ'Ø�‘”�ð"Ø��V‘”�å% f¨m¸TÑBÔB�ØÐ*Ø�K‘M”M�Møøõ & f¨m¸TÑBÔB�ØÐ*Ø�K‘M”M�M�Mð +øøøð+	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð2 	×ÒÑÔÐà89Ð9ˆÐ9Ð+¨gð	BÝ�# Ô 7Ø &Ô :Ø &¤ð 0ñ 1ô 1ˆGð ;BÑ7ˆMÐ.°°øõ ð 	ð 	ð 	ØˆDð	øøøð
 ˆØ×#Ò#Ñ%Ô%ð 	ØŒK×Ò˜hÑ'Ô'Ð'Ý! &¤/Ñ2Ô2µC¸¼Ñ4FÔ4F�GˆFØð 3Ø—’Ð1¨Ð1Ð1Ñ2Ô2Ð2Øð 2Ø—’Ð0 wÐ0Ð0Ñ1Ô1Ð1øàØð 	/Ø�LŠLÐ- GÐ-Ð-Ñ.Ô.Ð.Øð 	?Ø�LŠLÐ=¨mÐ=Ð=Ñ>Ô>Ð>Øð 	HØ�LŠLÐFÐ1DÐFÐFÑGÔGÐGØð 	Ø—Y’Y˜uÑ%Ô%ˆFØŒK×Ò  V   Ñ/Ô/Ð/Ð/àØˆs=   ÁA3DÃC,ÃDÃ, DÄDÄDÄ"DÅ'E/ Å/
E<Å;E<N)Ú__name__r   Ú__qualname__r}   rF   r8   r$   rR   rR   ~   s(   € € € € € ðBð Bð Bð Bð Br8   rR   c                  óP   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zddœd	„Zdd
„Z	dd„Z
dd„ZdS )ÚModuleGathera<  
    Utility class for gathering and importing all modules in the music21
    package. Puts them in self.modulePaths.

    >>> from music21.test import commonTest
    >>> mg = commonTest.ModuleGather(useExtended=True)
    >>> #_DOCS_SHOW print(mg.modulePaths[0])
    D:\Web\eclipse\music21base\music21\volume.py
    FTc                óê  — t          t          j        ¦   «         ¦  «        | _        || _        g | _        g d¢| _        | j        g d¢z   | _        g d¢| _        g | _	        | j	        g z   | _
        d„ | j        D ¦   «         | _        d„ | j        D ¦   «         | _        d„ | j	        D ¦   «         | _	        d„ | j
        D ¦   «         | _
        d„ | j        D ¦   «         | _        |r|                      ¦   «          d S d S )	N)ztestSingleCoreAll.pyztestExternal.pyztestDefault.pyztestInstallation.pyztestLint.pyztestPerformance.pyztimeGraphs.pyztimeGraphImportStar.pyzmultiprocessTest.pyzsetup.pyzfiguredBass/examples.py)zconfigure.pyztestSerialization.pyzmptCurses.pyzmemoryUsage.pyztest/treeYield.pyztest/toggleDebug.pyzmusicxml/testPrimitive.pyzmusicxml/testFiles.pyz)musedata/testPrimitive/test01/__init__.pyz"musedata/testPrimitive/__init__.pyzmei/test_base.pyzhumdrum/questions.pyzdocumentation/upload.pyzdocumentation/source/conf.pyzdocumentation/extensions.pyzcorpus/testCorpus.pyzaudioSearch/scoreFollower.pyzaudioSearch/repetitionGame.pyzabcFormat/testFiles.py)zmetadata/bundleszmetadata/cachingÚfeaturesÚgraphz
graph/plotz
graph/axiszgraph/primitivesÚ
freezeThawzfiguredBass/realizerzfeatures/jSymboliczfeatures/nativezfiguredBass/exampleszbraille/testzstream/testszanalysis/windowedzconverter/__init__zmusicxml/test_m21ToXmlzmusicxml/test_xmlToM21zromanText/translatezcorpus/testCorpuszcorpus/corporazaudioSearch/transcriberzaudioSearch/__init__z#alpha/theoryAnalysis/theoryAnalyzerc                óN   — g | ]"}|                      d t          j        ¦  «        ‘Œ#S ©ú/©ÚreplaceÚosÚsep©Ú.0Úxs     r$   ú
<listcomp>z)ModuleGather.__init__.<locals>.<listcomp>"  s(   € ÐKÐKÐK°a˜1Ÿ9š9 S­"¬&Ñ1Ô1ÐKÐKÐKr8   c                óN   — g | ]"}|                      d t          j        ¦  «        ‘Œ#S r‡   r‰   r�   s     r$   r�   z)ModuleGather.__init__.<locals>.<listcomp>#  s(   € Ð"[Ð"[Ð"[¸a 1§9¢9¨Sµ"´&Ñ#9Ô#9Ð"[Ð"[Ð"[r8   c                óN   — g | ]"}|                      d t          j        ¦  «        ‘Œ#S r‡   r‰   r�   s     r$   r�   z)ModuleGather.__init__.<locals>.<listcomp>$  s(   € ÐGÐGÐG°A˜Ÿš 3­¬Ñ/Ô/ÐGÐGÐGr8   c                óN   — g | ]"}|                      d t          j        ¦  «        ‘Œ#S r‡   r‰   r�   s     r$   r�   z)ModuleGather.__init__.<locals>.<listcomp>%  s(   € Ð WÐ WÐ W¸A §¢¨3µ´Ñ!7Ô!7Ð WÐ WÐ Wr8   c                óN   — g | ]"}|                      d t          j        ¦  «        ‘Œ#S r‡   r‰   r�   s     r$   r�   z)ModuleGather.__init__.<locals>.<listcomp>&  s(   € ÐMÐMÐM°q˜AŸIšI c­2¬6Ñ2Ô2ÐMÐMÐMr8   )r'   r   ÚgetSourceFilePathÚ	dirParentÚuseExtendedÚmodulePathsÚ
moduleSkipÚmoduleSkipExtendedÚslowModulesÚpathSkipÚpathSkipExtendedÚwalk)rt   r—   ÚautoWalks      r$   Ú__init__zModuleGather.__init__Ñ   s'  € Ý�VÔ5Ñ7Ô7Ñ8Ô8ˆŒØ&ˆÔØˆÔð
ð 
ð 
ˆŒð" #'¤/ð 5
ð 5
ð 5
ñ #
ˆÔð6ð ð ˆÔð: ˆŒØ $¤°Ñ 2ˆÔàKÐK¸4¼?ÐKÑKÔKˆŒØ"[Ð"[À4ÔCZÐ"[Ñ"[Ô"[ˆÔØGÐG¸¼ÐGÑGÔGˆŒØ WÐ WÀÔAVÐ WÑ WÔ WˆÔØMÐM¸DÔ<LÐMÑMÔMˆÔð ð 	Ø�IŠI‰KŒKˆKˆKˆKð	ð 	r8   c                óì   — |D ]p}|                      d¦  «        rYt          j                             ||¦  «        }t          j                             |¦  «        s| j                             |¦  «         ŒqdS )zz
        append all module paths from _walk() to self.modulePaths.
        Utility function called from os.walk()
        ÚpyN)r   r‹   r(   rr   Úisdirr˜   rq   )rt   ÚargsÚdirnameÚnamesÚfileNameÚfps         r$   Ú
_visitFunczModuleGather._visitFunc,  sv   € ð
 ð 	0ð 	0ˆHØ× Ò  Ñ&Ô&ð 0Ý”W—\’\ '¨8Ñ4Ô4�Ý”w—}’} RÑ(Ô(ð 0ØÔ$×+Ò+¨BÑ/Ô/Ð/øð		0ð 	0r8   c                óJ  ‡ — ˆ fd„}t          j        ‰ j        ¦  «        D ]\  }}}‰                      d||¦  «         Œt	          j        ¦   «         dk    r‰ j                             |¬¦  «         n‰ j                             ¦   «          ‰ j                             ¦   «          dS )zX
        Get all the modules in reverse order, storing them in self.modulePaths
        c                ó„   •— | t          ‰j        ¦  «        dz   d…         } |                      dd¦  «        } | ‰j        v | fS )z‘
            for many core systems, like the MacPro, running slowest modules first
            helps there be fewer idle cores later
            é   Nú.pyÚ )rg   r–   rŠ   r›   )r&   rt   s    €r$   ÚmanyCoreSortFuncz+ModuleGather.walk.<locals>.manyCoreSortFunc;  sJ   ø€ ð
 �˜DœNÑ+Ô+¨aÑ/Ð0Ð0Ô1ˆDØ—<’<  rÑ*Ô*ˆDØ˜DÔ,Ð,¨dÐ3Ð3r8   Né   )Úkey)	r‹   rž   r–   r©   r   Úcpusr˜   ÚsortÚreverse)rt   r¯   ÚdirPathÚunused_dirNamesÚ	filenamess   `    r$   rž   zModuleGather.walk7  sº   ø€ ð	4ð 	4ð 	4ð 	4ð 	4õ 46´7¸4¼>Ñ3JÔ3Jð 	6ð 	6Ñ/ˆG�_ iØ�OŠO˜D '¨9Ñ5Ô5Ð5Ð5åŒ;‰=Œ=˜1ÒÐØÔ×!Ò!Ð&6Ð!Ñ7Ô7Ð7Ð7àÔ×!Ò!Ñ#Ô#Ð#ð
 	Ô× Ò Ñ"Ô"Ð"Ð"Ð"r8   c                ó&  — |                      t          | j        ¦  «        d¦  «        }|                     t          j        ¦  «        r
|dd…         }|                      t          j        d¦  «        }|                     d¦  «        r
|dd…         }|S )a#  
        Given full file pathlib.Path, find a name for the module with _ as the separator.

        >>> from music21.test import commonTest
        >>> mg = commonTest.ModuleGather()
        >>> #_DOCS_SHOW mg._getName(r'D:\Web\eclipse\music21base\music21\chord.py')
        'chord'
        r®   r¬   Nr   r­   éýÿÿÿ)rŠ   r'   r–   r   r‹   rŒ   r   )rt   r¨   Úfns      r$   Ú_getNamezModuleGather._getNameR  s   € ð �ZŠZ�˜DœNÑ+Ô+¨RÑ0Ô0ˆØ�=Š=�œÑ Ô ð 	Ø�A�B�B”ˆBØ�ZŠZ�œ Ñ$Ô$ˆØ�;Š;�uÑÔð 	Ø�C�R�C”ˆBØˆ	r8   ©ÚaddM21c               óp  — |                      | j        d¦  «        }d„ |                     t          j        ¦  «        D ¦   «         }|d                              d¦  «        r|d         dd…         |d<   |d         dk    r|                     ¦   «          d                     |¦  «        }|r|rd	|z   }n|rd
}|S )aQ  
        Given full file path, find a name for the module with . as the separator.

        >>> from music21.test import commonTest
        >>> mg = commonTest.ModuleGather()
        >>> name = '/Users/cuthbert/git/music21base/music21/features/native.py'
        >>> #_DOCS_SHOW mg._getNamePeriod(name)
        'features.native'
        r®   c                ó   — g | ]}|¯|‘ŒS rF   rF   r�   s     r$   r�   z/ModuleGather._getNamePeriod.<locals>.<listcomp>n  s   € Ð2Ð2Ð2�q°Ð2�Ð2Ð2Ð2r8   éÿÿÿÿr­   Nr¹   r    ú.zmusic21.rC   )rŠ   r–   Úsplitr‹   rŒ   r   Úpoprr   )rt   r¨   r½   rº   Úpartss        r$   Ú_getNamePeriodzModuleGather._getNamePeriodc  sÀ   € ð �ZŠZ˜œ¨Ñ+Ô+ˆØ2Ð2˜BŸHšH¥R¤VÑ,Ô,Ð2Ñ2Ô2ˆØ�Œ9×Ò˜eÑ$Ô$ð 	'Ø˜bœ	 # 2 #œˆE�"‰IØ�Œ9˜
Ò"Ð"Ø�IŠI‰KŒKˆKØ�XŠX�e‰_Œ_ˆØð 	�bð 	Ø˜b‘ˆBˆBØð 	ØˆBàˆ	r8   c                óx   — g }| j         D ]/}|                      ||¦  «        }|�|                     |¦  «         Œ0|S )zº
        Return a list of module objects that are not in the skip list.

        N.B. the list is a list of actual module objects not names,
        therefore cannot be pickled.
        )r˜   Ú	getModulerq   )rt   ÚrestoreEnvironmentDefaultsr2   r¨   ÚmoduleObjects        r$   ÚloadzModuleGather.load{  sM   € ð ˆØÔ"ð 	-ð 	-ˆBØŸ>š>¨"Ð.HÑIÔIˆLØÐ'Ø—’˜|Ñ,Ô,Ð,øØˆr8   c                ór  — d}| j         }| j        r| j        }|D ]}|                     |¦  «        rd} nŒ|rdS | j        }| j        r| j        }|D ]
}||v rd} nŒ|rdS |                      |d¬¦  «        }	 t          j        ¦   «         5  t          ||¦  «        }	ddd¦  «         n# 1 swxY w Y   nX# t          $ rK}
t                               d|d|ddt          |
¦  «                             ¦   «         g¦  «         Y d}
~
dS d}
~
ww xY w|r)t          |	d	¦  «        r|	j                             ¦   «          |	S )
z;
        gets one module object from the file path
        FTNr¼   zfailed import:ú	ú
z	EXCEPTION:ÚenvironLocal)r™   r—   rš   r   rœ   r�   rÅ   rT   r`   r7   r   rÎ   Úwarnr'   Ústripr   ÚrestoreDefaults)rt   r¨   rÈ   r!   ÚmsÚfnSkipÚpsÚdirSkipr&   ÚmodÚexcps              r$   rÇ   zModuleGather.getModule‰  sè  € ð ˆØŒ_ˆØÔð 	)ØÔ(ˆBàð 	ð 	ˆFØ�{Š{˜6Ñ"Ô"ð Ø�Ø�ðð ð 	Ø�4àŒ]ˆØÔð 	'ØÔ&ˆBàð 	ð 	ˆGØ˜"ˆ}ˆ}Ø�Ø�ð ð ð 	Ø�4à×"Ò" 2¨eÐ"Ñ4Ô4ˆð	ÝÔ(Ñ*Ô*ð ,ð ,Ý! $¨Ñ+Ô+�ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,øøåð 	ð 	ð 	Ý×ÒÐ/°°t¸RÀØ-­s°4©y¬y¯ªÑ/@Ô/@ðBñ Cô Cð Cà�4�4�4�4�4øøøøð	øøøð
 &ð 	3Ý�s˜NÑ+Ô+ð 3ØÔ ×0Ò0Ñ2Ô2Ð2Øˆ
s=   Á8B4 ÂB(ÂB4 Â(B,Â,B4 Â/B,Â0B4 Â4
D	Â>A DÄD	c                óö  — d}| j         D ]}|                     |¦  «        rd} nŒ|rdS | j        D ]&}t          j        |z   t          j        z   }||v rd} nŒ'|rdS |                      |¦  «        }|                     d¦  «        }t          }	|D ]ª}
t          |	|
¦  «        r9t           
                    |	|
¦  «        }	t          |	t          j        ¦  «        s dS ŒKd|
v rY|	j        }t          j        d|
z   |¦  «        }t#          |	|
|¦  «         t$                               d|
›d|	›d	|›d
|›�¦  «         |}	Œ¨ dS |	}|r)t          |d¦  «        r|j                             ¦   «          t+          d|z   ¦  «         |S )zM
        gets one module object from the file path without using Imp
        FTr!   rÁ   Ú	notInTreeru   zImported thisName=z from currentModule=z, fp=z, packageName=rÎ   z	starting )r™   r   rœ   r‹   rŒ   rÅ   rÂ   rC   r   ÚobjectÚ__getattribute__r   r   Ú
ModuleTyper~   r,   Úimport_moduleÚsetattrrÎ   Ú
printDebugrÑ   Úprint)rt   r¨   rÈ   r!   rÓ   rÕ   ÚdirSkipSlashÚ
moduleNameÚmoduleNamesÚcurrentModuleÚthisNameÚpackageNameÚnewModrÖ   s                 r$   ÚgetModuleWithoutImpz ModuleGather.getModuleWithoutImp³  sï  € ð ˆØ”oð 	ð 	ˆFØ�{Š{˜6Ñ"Ô"ð Ø�Ø�ðð ð 	Ø�6Ø”}ð 	ð 	ˆGÝœ6 GÑ+­b¬fÑ4ˆLØ˜rÐ!Ð!Ø�Ø�ð "ð ð 	Ø�6Ø×(Ò(¨Ñ,Ô,ˆ
Ø ×&Ò& sÑ+Ô+ˆÝˆð $ð 	#ð 	#ˆHÝ�} hÑ/Ô/ð #Ý &× 7Ò 7¸ÀxÑ PÔ P�Ý! -µÔ1AÑBÔBð 'Ø&˜;˜;ð'à˜8Ð#Ð#à+Ô4�Ý"Ô0°°x±ÀÑMÔM�Ý˜ x°Ñ8Ô8Ð8Ý×'Ò'ØX ÐXÐX°ÐXÐXÀ2ÐXÐXÈ+ÐXÐXñô ð ð !'��à"�{�{Øˆà%ð 	3Ý�s˜NÑ+Ô+ð 3ØÔ ×0Ò0Ñ2Ô2Ð2Ýˆk˜JÑ&Ñ'Ô'Ð'Øˆ
r8   N)FT)F)r~   r   r   Ú__doc__r    r©   rž   r»   rÅ   rÊ   rÇ   rè   rF   r8   r$   r�   r�   Æ   s¿   € € € € € ðð ðYð Yð Yð Yðv	0ð 	0ð 	0ð#ð #ð #ð6ð ð ð" ,1ð ð ð ð ð ð0ð ð ð ð(ð (ð (ð (ðT-ð -ð -ð -ð -ð -r8   r�   Ú__main__)r   r   r	   r
   )r&   r'   r(   r'   r)   r*   )N)ré   Ú
__future__r   r   rI   r,   Úimportlib.utilr‹   r1   Útypingr   Úunittest.runnerÚunittestÚunittest.signalsr   rT   rC   r   r   ÚEnvironmentrÎ   r%   r7   rA   rP   ÚrunnerÚTextTestRunnerrR   r�   r~   ÚmainTestrF   r8   r$   ú<module>rõ      s¿  ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø €€€à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à&ˆ{Ô&Ð'8Ñ9Ô9€ðEð Eð Eð Eð<ð ð ð ð.Rð Rð Rð*ð ð ð ð$Cð Cð Cð Cð C˜œÔ6ñ Cô Cð CðPZð Zð Zð Zð Zñ Zô Zð Zðz ˆzÒÐØ€GÔÑÔÐÐÐð Ðr8   