class_docstr: Context manager to force import to return a new module reference.
  
  This is useful for testing module-level behaviours, such as
  the emission of a DeprecationWarning on import.
  
  Use like this:
  
      with CleanImport("foo"):
          importlib.import_module("foo") # new reference
  
  If "usefrozen" is False (the default) then the frozen importer is
  disabled (except for essential modules like importlib._bootstrap).
class_docstr_tok: ["Context","manager","to","force","import","to","return","a","new","module","reference",".","This","is","useful","for","testing","module-level","behaviours",",","such","as","the","emission","of","a","DeprecationWarning","on","import",".","Use","like","this",":","with","CleanImport","(","``","foo","''",")",":","importlib.import_module","(","``","foo","''",")","#","new","reference","If","``","usefrozen","''","is","False","(","the","default",")","then","the","frozen","importer","is","disabled","(","except","for","essential","modules","like","importlib._bootstrap",")","."]
code: def __enter__(self):
      self._frozen_modules.__enter__()
      return self
  
imports: import contextlib
  import _imp
  import importlib
  import importlib.util
  import os
  import shutil
  import sys
  import unittest
  import warnings
  from .os_helper import unlink, temp_dir
label_desc: Use image node_id 2 for calling the CleanImport obj's underlying member method code with example usage: obj.__enter__() and returns: self