Ejemplo n.º 1
0
 def withWorksheetFile(webViewController, filename, server=None):
     if not server:
         server = ServerConfigurations.getDefault()
     wsc = WorksheetController(webViewController)
     wsc.server_configuration = server
     ws = wsc.notebook.import_worksheet(filename, wsc.notebook_username)
     SageProcessManager.setWorksheetProcessServer(ws, server)
     wsc.setWorksheet(ws)
     return wsc
Ejemplo n.º 2
0
 def withNewWorksheet(webViewController, server=None):
     # server is a Sage server configuration that will determine the Sage process this
     # worksheet will use.
     if not server:
         server = ServerConfigurations.getDefault()
     wsc = WorksheetController(webViewController)
     wsc.server_configuration = server
     ws = guru_notebook.create_new_worksheet('Untitled', wsc.notebook_username)
     SageProcessManager.setWorksheetProcessServer(ws, server)
     wsc.setWorksheet(ws)
     return wsc
Ejemplo n.º 3
0
def restartSageProcess(worksheet):
    # The code to restart the Sage process in sagenb.notebook.worksheet.Worksheet makes assumptions
    # that may not hold for us.

    if ManagedWorksheets.has_key(worksheet):
        server_config = ManagedWorksheets[worksheet]
    else:
        # We're not managing this worksheet.
        server_config = ServerConfigurations.getDefault()

    #Turns out, the following is equivalent to restarting the process.
    setWorksheetProcessServer(worksheet, server_config)
Ejemplo n.º 4
0
def setWorksheetProcessServer(worksheet, server_config=None):
    # sagenb.notebook.worksheet.Worksheet was designed to get it's sage process
    # from its associated notebook, so we have to do some stuff that isn't
    # necessarily how one would normally design it if one were starting
    # from scratch.

    #We will need the worksheet to have it's _notebook property set.
    if (not hasattr(worksheet, "_notebook")) or (worksheet._notebook is None):
        worksheet._notebook = guru_notebook

    #If we aren't given a server config, use the default.
    if not server_config:
        server_config = ServerConfigurations.getDefault()

    # Note that some Sage interfaces do not require worksheet.initialize_sage().
    # Seems to me initialize_sage() doesn't belong in Worksheet at all, but in
    # sagenb.interfaces.worksheet_process.WorksheetProcess, but I didn't write it.

    if server_config["type"]=="local":
        #For local servers, it's easy.
        worksheet = stopSageProcess(worksheet)
        worksheet._Worksheet__sage = getLocalProcess(server_config)
        worksheet.initialize_sage()

    elif server_config["type"]=="notebook server":
        worksheet = setNotebookProcessServer(worksheet, server_config)

    elif server_config["type"]=="cell server":
        pass

    elif server_config["type"]=="remote":
        pass

    else:
        #This should never execute. It just restarts sage using whatever the notebook gives it.
        worksheet.restart_sage()

    return worksheet
Ejemplo n.º 5
0
 def newWorksheetFile(self, server=None):
     if not server:
         server = ServerConfigurations.getDefault()
     #Create a new worksheet.
     self.clear()
     self.worksheet_controller = WorksheetController.withNewWorksheet(self, server=server)
Ejemplo n.º 6
0
 def openWorksheetFile(self, file_name, server=None):
     if not server:
         server = ServerConfigurations.getDefault()
     self.clear()
     self.worksheet_controller = WorksheetController.withWorksheetFile(self, file_name, server=server)