code: def protect_libraries_from_patching():
      
      patched = ['threading', 'thread', '_thread', 'time', 'socket', 'Queue', 'queue', 'select',
                 'xmlrpclib', 'SimpleXMLRPCServer', 'BaseHTTPServer', 'SocketServer',
                 'xmlrpc.client', 'xmlrpc.server', 'http.server', 'socketserver']
  
      for name in patched:
          try:
              __import__(name)
          except:
              pass
  
      patched_modules = dict([(k, v) for k, v in sys.modules.items()
                              if k in patched])
  
      for name in patched_modules:
          del sys.modules[name]
  
      # import for side effects
      import _pydev_imps._pydev_saved_modules
  
      for name in patched_modules:
          sys.modules[name] = patched_modules[name]
docs: In this function we delete some modules from `sys.modules` dictionary and import them again inside
        `_pydev_saved_modules` in order to save their original copies there. After that we can use these
        saved modules within the debugger to protect them from patching by external libraries (e.g. gevent).