docs: def build_module(self):
          """Builds a temporary module from the script file
  
          :raises exceptions.IOError: if the compilation of the script module failed
          """
          try:
              imp.acquire_lock()
              module_name = os.path.splitext(self.filename)[0] + str(self._script_id)
  
              # load module
              tmp_module = imp.new_module(module_name)
  
              code = compile(self.script, '%s (%s)' % (self.filename, self._script_id), 'exec')
  
              try:
                  exec(code, tmp_module.__dict__)
              except RuntimeError as e:
                  raise IOError("The compilation of the script module failed - error message: %s" % str(e))
  
              # return the module
              self.compiled_module = tmp_module
          finally:
              imp.release_lock()