1896
Comment: Added Cell Evaluation section
|
1935
the Sage notebook belongs to Sage development, so put this page under devel/
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
## page was renamed from SageNotebook |
The Sage Notebook Server: A Technical Overview
This document gives a technical overview of the new Sage Notebook server, including how it responds to user requests, delegates tasks, etc. See #6983 for instructions on trying out the new server.
Serving up pages
All access goes through guard.py.
locateChild checks authentication.
If the user is authenticated, locateResource is called to get the appropriate page.
locateResource, in turn, uses the LoginSystem class in avatars.py to get the appropriate resource.
LoginSystem calls the appropriate function in twist.py.
Which would be AdminTopLevel, UserTopLevel, FailedTopLevel, or AnonymousTopLevel, depending on the user type.
The *TopLevel resources generate child resources based on their childFactory methods.
- Each resource represents a segment of the URL.
Thus '/' is the TopLevel resource, and '/home/' is mapped to the Worksheets resource, etc.
The tree is traversed until a leaf is reached, then the leaf's render method is called.
Cell Evaluation
Evaluation occurs when Worksheet_eval is called.
- Evaluation only happens if the user has permissions to evaluate the cell.
The cell's evaluate method is called.
evaluate adds itself to the worksheet's job queue using Worksheet#enqueue, which also calls Worksheet#start_next_comp.
If the cell is marked for introspection, set input to be evaluated to the part before introspection is requested. Otherwise, set input to the whole cell.
Get a reference to an instance of Sage for computation using Worksheet#sage. Currently, WorksheetProcess_ExpectImplementation from interfaces/expect.py is used.
Executes input with that instance.
- Updates cell content.