ó
    Ö›‘h  ã                   óP   • S r SSKrSSKJr  SSKJrJrJr  SSKJ	r	   " S S5      r
g)z\
Facilities for helping test code which interacts with Python's module system
to load code.
é    N)Ú
ModuleType)ÚIterableÚListÚTuple)ÚFilePathc                   ón   • \ rS rSrSrS\\   SS4S jrS\\	\\
4      SS4S jrSS	\S\\   4S
 jjrSrg)ÚTwistedModulesMixiné   z}
A mixin for C{twisted.trial.unittest.SynchronousTestCase} providing useful
methods for manipulating Python's module system.
ÚsysPathÚreturnNc                 ó„   ^• [         R                  SS mSU4S jjnU R                  U5        U[         R                  SS& g)zG
Replace sys.path, for the duration of the test, with the given value.
Nc                  ó,   >• T [         R                  S S & g ©N)ÚsysÚpath)ÚoriginalSysPaths   €ÚgC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/python/test/modules_helpers.pyÚcleanUpSysPathÚ:TwistedModulesMixin.replaceSysPath.<locals>.cleanUpSysPath   s   ø€ Ø)ŒC�H‰H‘Q‰Kó    ©r   N)r   r   Ú
addCleanup)Úselfr   r   r   s      @r   ÚreplaceSysPathÚ"TwistedModulesMixin.replaceSysPath   s2   ø€ ô Ÿ(™(¡1˜+ˆ÷	*ð 	�‰˜Ô'ØŒ�‰‘‰r   Ú
sysModulesc                 óî   ^• [         R                  R                  5       mSU4S jjnU R                  U5        [         R                  R	                  5         [         R                  R                  U5        g)zJ
Replace sys.modules, for the duration of the test, with the given value.
Nc                  ó€   >• [         R                  R                  5         [         R                  R                  T 5        g r   )r   ÚmodulesÚclearÚupdate)ÚoriginalSysModuless   €r   ÚcleanUpSysModulesÚ@TwistedModulesMixin.replaceSysModules.<locals>.cleanUpSysModules(   s&   ø€ Ü�K‰K×ÑÔÜ�K‰K×ÑÐ1Õ2r   r   )r   r   Úcopyr   r    r!   )r   r   r#   r"   s      @r   ÚreplaceSysModulesÚ%TwistedModulesMixin.replaceSysModules"   sN   ø€ ô !Ÿ[™[×-Ñ-Ó/Ð÷	3ð 	�‰Ð)Ô*Ü�‰×ÑÔÜ�‰×Ñ˜:Õ&r   Úpkgnamec                 óº   • [        U R                  5       5      nUR                  S5      nUR                  5         UR                  S5      R	                  S5        U$ )zq
Generate a L{FilePath} with one package, named C{pkgname}, on it, and
return the L{FilePath} of the path entry.
Útest_packagez__init__.pyr   )r   ÚmktempÚchildÚmakedirsÚ
setContent)r   r(   ÚentryÚpkgs       r   ÚpathEntryWithOnePackageÚ+TwistedModulesMixin.pathEntryWithOnePackage0   sG   € ô
 ˜Ÿ™›Ó'ˆØ�k‰k˜.Ó)ˆØ�‰ŒØ�	‰	�-Ó ×+Ñ+¨CÔ0Øˆr   © )r*   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ústrr   r   r   r   r&   r   r1   Ú__static_attributes__r3   r   r   r	   r	      s]   † ñð

 d¨3¡ið 
°Dô 
ð'¨H°U¸3À
¸?Ñ5KÑ,Lð 'ÐQUô 'ñ	¨sð 	ÈÐQTÉ÷ 	ð 	r   r	   )r8   r   Útypesr   Útypingr   r   r   Útwisted.python.filepathr   r	   r3   r   r   Ú<module>r>      s%   ðñó
 Ý ß (Ñ (å ,÷)ò )r   