<Purpose>
    Imports a seash module with the specified modulename.
    The seash module is treated as a python package  
    
  <Arguments>
    modulefn:
      The name of the main modules file.
      
  <Side Effects>
    The commands found in modulename, alongside the helptext for the module
    will be imported and returned.
    
  <Exceptions>
    ImportError
    
  <Return>
    A dictionary containing the command_dict and the helptext.

    An example: {
      'command_dict': {'command1': ...,'command2':...},
      'help_text': 'This is the module helpstring'
    }

def import_module(modulefn):
  """
  <Purpose>
    Imports a seash module with the specified modulename.
    The seash module is treated as a python package  
    
  <Arguments>
    modulefn:
      The name of the main modules file.
      
  <Side Effects>
    The commands found in modulename, alongside the helptext for the module
    will be imported and returned.
    
  <Exceptions>
    ImportError
    
  <Return>
    A dictionary containing the command_dict and the helptext.

    An example: {
      'command_dict': {'command1': ...,'command2':...},
      'help_text': 'This is the module helpstring'
    }

  """
  # We can't import python modules by specifying the full path to the module
  # Temporarily add the module path to the pythonpath
  sys.path = [MODULES_FOLDER_PATH] + sys.path
  moduleobj = __import__(modulefn)
  try:
    _attach_module_identifier(moduleobj.moduledata['command_dict'], modulefn)
    return moduleobj.moduledata
  except (NameError, KeyError):
    raise seash_exceptions.ModuleImportError("Module '" + modulefn + "' is not well defined")
  finally:
    # Remove the module path from the pythonpath because we don't need it anymore
    sys.path = sys.path[1:]