Import an sws format worksheet into this notebook as a new worksheet.
INPUT:
OUTPUT: a new worksheet
EXAMPLES: We create a notebook, then make a worksheet from a plain text file first.
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: name = tmp_filename() + '.txt'
sage: open(name,'w').write('foo\n{{{\n2+3\n}}}')
sage: W = nb.import_worksheet(name, 'admin')
sage: W.filename()
'admin/0'
We then export the worksheet to an sws file.
sage: nb.export_worksheet(W.filename(), 'tmp.sws', verbose=False)
Now we import the sws.
sage: nb._import_worksheet_sws('tmp.sws', 'admin', verbose=False)
[Cell 0; in=2+3, out=]
Yep, it’s there now (as admin/2):
sage: nb.worksheet_names()
['admin/0', 'admin/2']
Import a plain text file as a new worksheet.
INPUT:
OUTPUT: a new worksheet
EXAMPLES: We write a plain text worksheet to a file and import it using this function.
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: name = tmp_filename() + '.txt'
sage: open(name,'w').write('foo\n{{{\na = 10\n}}}')
sage: W = nb._import_worksheet_txt(name, 'admin'); W
[Cell 0; in=a = 10, out=]
INPUT:
If the method get_accounts return False then user can only be added if force=True
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.add_user('Mark', 'password', ", force=True)sage:
nb.user('Mark')
Mark
sage: nb.add_user('Sarah', 'password', ")
Traceback (most recent call last):
ValueError: creating new accounts disabled.
sage: nb.set_accounts(True)
sage: nb.add_user('Sarah', 'password', ")sage:
nb.user('Sarah')
Sarah
INPUT:
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.add_user('Mark', 'password', ", force=True)sage:
nb.user('Mark').password()
'aajfMKNH1hTm2'
sage: nb.change_password('Mark', 'different_password')
sage: nb.user('Mark').password()
'aaTlXok5npQME'
Create the default users for a notebook.
INPUT:
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.create_default_users('password')
Creating default users.
sage: list(sorted(nb.users().iteritems()))
[('_sage_', _sage_), ('admin', admin), ('guest', guest), ('pub', pub)]
sage: list(sorted(nb.passwords().iteritems()))
[('_sage_', 'aaQSqAReePlq6'), ('admin', 'aajfMKNH1hTm2'), ('guest', 'aaQSqAReePlq6'), ('pub', 'aaQSqAReePlq6')]
sage: nb.create_default_users('newpassword')
Creating default users.
WARNING: User 'pub' already exists -- and is now being replaced.
WARNING: User '_sage_' already exists -- and is now being replaced.
WARNING: User 'guest' already exists -- and is now being replaced.
WARNING: User 'admin' already exists -- and is now being replaced.
sage: list(sorted(nb.passwords().iteritems()))
[('_sage_', 'aaQSqAReePlq6'), ('admin', 'aajH86zjeUSDY'), ('guest', 'aaQSqAReePlq6'), ('pub', 'aaQSqAReePlq6')]
INPUT:
OUTPUT: Changes password of user to that of other_user.
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.add_user('bob', 'an**d', 'bob@gmail.com', force=True)
sage: nb.user('bob').password()
'aa4Q6Jbx/MiUs'
sage: nb.add_user('mary', 'ccd', 'mary@gmail.com', force=True)
sage: nb.user('mary').password()
'aaxr0gcWJMXKU'
sage: nb.create_user_with_same_password('bob', 'mary')
sage: nb.user('bob').password() == nb.user('mary').password()
True
Return a default login name that the user will see when confronted with the Sage notebook login page.
OUTPUT: string
Currently this returns ‘admin’ if that is the only user. Otherwise it returns the string “.
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.create_default_users('password')
Creating default users.
sage: nb.default_user()
'admin'
sage: nb.add_user('AnotherUser', 'password', ", force=True)sage:
nb.default_user()
''
Deletes the given user
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.add_user('Mark', 'password', ", force=True)sage:
nb.user('Mark')
Mark
sage: nb.del_user('Mark')
sage: nb.user('Mark')
Traceback (most recent call last):
KeyError: "no user 'Mark'"
Delete all files related to this notebook.
This is used for doctesting mainly. This command is obviously VERY dangerous to use on a notebook you actually care about. You could easily lose all data.
EXAMPLES:
sage: tmp = tmp_dir()
sage: nb = sage.server.notebook.notebook.Notebook(tmp)
sage: sorted(os.listdir(tmp))
['backups', 'nb.sobj', 'objects', 'worksheets']
sage: nb.delete()
Now the directory is gone.
sage: os.listdir(tmp)
...
OSError: [Errno 2] No such file or directory: '...
Empty the trash for the given user.
INPUT:
This empties the trash for the given user and cleans up all files associated with the worksheets that are in the trash.
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.add_user('sage','sage','sage@sagemath.org',force=True)
sage: W = nb.new_worksheet_with_title_from_text('Sage', owner='sage')
sage: W.move_to_trash('sage')
sage: nb.worksheet_names()
['sage/0']
sage: nb.empty_trash('sage')
sage: nb.worksheet_names()
[]
Export a worksheet with given directory filenmae to output_filename.
INPUT:
OUTPUT: creates a file on the filesystem
Return __accounts
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.get_accounts()
False
sage: nb.set_accounts(True)
sage: nb.get_accounts()
True
Get the worksheet with given filename. If there is no such worksheet, raise a KeyError.
INPUT: string OUTPUT: a worksheet or KeyError
Return the html code for a page dedicated to worksheet publishing after the publication of the given worksheet.
INPUT: worksheet - instance of Worksheet username - string addr - string dtime - instance of time.struct_time
Return the html code for a page dedicated to worksheet publishing prior to the publication of the given worksheet.
INPUT: worksheet - instance of Worksheet username - string
Return a window for editing worksheet.
INPUT:
Return a window that displays a plain text version of the worksheet
INPUT:
Upload the worksheet with name filename and make it have the given owner.
INPUT:
OUTPUT:
EXAMPLES: We create a notebook and import a plain text worksheet into it.
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: name = tmp_filename() + '.txt'
sage: open(name,'w').write('foo\n{{{\n2+3\n}}}')
sage: W = nb.import_worksheet(name, 'admin')
W is our newly-created worksheet, with the 2+3 cell in it:
sage: W.name()
'foo'
sage: W.cell_list()
[Cell 0; in=2+3, out=]
Return the username:password dictionary.
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.create_default_users('password')
Creating default users.
sage: nb.add_user('Mark', 'password', ", force=True)sage:
list(sorted(nb.passwords().iteritems()))
[('Mark', 'aajfMKNH1hTm2'), ('_sage_', 'aaQSqAReePlq6'), ('admin', 'aajfMKNH1hTm2'), ('guest', 'aaQSqAReePlq6'), ('pub', 'aaQSqAReePlq6')]
Publish the given worksheet.
This creates a new worksheet in the pub directory with the same contents as worksheet.
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.add_user('Mark','password',",force=True)sage:
W = nb.new_worksheet_with_title_from_text('First steps', owner='Mark')
sage: nb.worksheet_names()
['Mark/0']
sage: nb.publish_worksheet(nb.get_worksheet_with_filename('Mark/0'), 'Mark')
<BLANKLINE>
[Cell 0; in=, out=]
sage: sorted(nb.worksheet_names())
['Mark/0', 'pub/0']
Changes __accounts to value
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.get_accounts()
False
sage: nb.set_accounts(True)
sage: nb.get_accounts()
True
sage: nb.set_accounts(False)
sage: nb.get_accounts()
False
Return an instance of the User class given the username of a user in a notebook.
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.create_default_users('password')
Creating default users.
sage: nb.user('admin')
admin
sage: nb.user('admin')._User__email
''
sage: nb.user('admin')._User__password
'aajfMKNH1hTm2'
Return a user’s configuration.
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.create_default_users('password')
Creating default users.
sage: config = nb.user_conf('admin')
sage: config['max_history_length']
1000
sage: config['default_system']
'sage'
sage: config['autosave_interval']
3600
sage: config['default_pretty_print']
False
Return whether or not a user exists given a username.
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.create_default_users('password')
Creating default users.
sage: nb.user_exists('admin')
True
sage: nb.user_exists('pub')
True
sage: nb.user_exists('mark')
False
sage: nb.user_exists('guest')
True
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.add_user('Administrator', 'password', ", 'admin', True)sage:
nb.add_user('RegularUser', 'password', ", 'user', True)sage:
nb.user_is_admin('Administrator')
True
sage: nb.user_is_admin('RegularUser')
False
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.create_default_users('password')
Creating default users.
sage: nb.user_is_guest('guest')
True
sage: nb.user_is_guest('admin')
False
Return list of user objects.
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.create_default_users('password')
Creating default users.
sage: sorted(nb.user_list(), key=lambda k: k.username())
[_sage_, admin, guest, pub]
Return list of usernames.
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.create_default_users('password')
Creating default users.
sage: sorted(nb.usernames())
['_sage_', 'admin', 'guest', 'pub']
Return dictionary of users in a notebook.
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.create_default_users('password')
Creating default users.
sage: list(sorted(nb.users().iteritems()))
[('_sage_', _sage_), ('admin', admin), ('guest', guest), ('pub', pub)]
Return list of users that can be signed in.
EXAMPLES:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.create_default_users('password')
Creating default users.
sage: nb.valid_login_names()
['admin']
sage: nb.add_user('Mark', 'password', ", force=True)sage:
nb.add_user('Sarah', 'password', ", force=True)sage:
nb.add_user('David', 'password', ", force=True)sage:
sorted(nb.valid_login_names())
['David', 'Mark', 'Sarah', 'admin']
Return a list of all the names of worksheets in this notebook.
OUTPUT: list of strings.
EXAMPLES: We make a new notebook with two users and two worksheets, then list their names:
sage: nb = sage.server.notebook.notebook.Notebook(tmp_dir())
sage: nb.add_user('sage','sage','sage@sagemath.org',force=True)
sage: W = nb.new_worksheet_with_title_from_text('Sage', owner='sage')
sage: nb.add_user('wstein','sage','wstein@sagemath.org',force=True)
sage: W2 = nb.new_worksheet_with_title_from_text('Elliptic Curves', owner='wstein')
sage: nb.worksheet_names()
['sage/0', 'wstein/0']
Load the notebook from the given directory, or create one in that directory if one isn’t already there.
INPUT:
INPUT: