Matthias Bussonnier
de52775797
Merge pull request #7078 from takluyver/kernelpath
...
Rework get_kernel_path logic
11 years ago
Thomas Kluyver
3cad1f4b4d
Expose ConfigManager one level up the hierarchy
...
Because `from IPython.html.services.config import ConfigManager` is long
enough.
11 years ago
Kyle Kelley
a6d3d6a93e
Log warning directly.
11 years ago
Kyle Kelley
7a48687929
Update CSP tests for new default.
11 years ago
Kyle Kelley
17d1c2d488
Report CSP violations as warnings.
11 years ago
Kyle Kelley
0c22c140c3
Turn x-frame-options tests into CSP tests
11 years ago
Kyle Kelley
392118d536
One unified CSP report URI
11 years ago
Kyle Kelley
cb19f07c9a
csp_report_uri caused a cyclic dependency
11 years ago
Kyle Kelley
23b9f09177
Log CSP violations via report
11 years ago
Kyle Kelley
1f03954dd8
Handle CSP Reports
11 years ago
Thomas Kluyver
d273b56044
Clean up get_kernel_path logic
11 years ago
Matthias Bussonnier
fd2588612a
return API path instead of filesystem
11 years ago
Thomas Kluyver
f1295c6b8d
Add default for profile_dir
...
So ConfigManager is useful outside an IPython application
11 years ago
Thomas Kluyver
febd670716
First stab at ConfigManager class
11 years ago
Thomas Kluyver
25ee73a554
Loading a file works
11 years ago
Min RK
837ef7f122
s/open_w/atomic_writing/
11 years ago
Min RK
c9a4e5b00d
handle various permission failures
...
- turn various EPERM, EACCES errors into 403
- add `writable` bool field to contents models
- if a notebook is not `writable`, save is disabled
11 years ago
Thomas Kluyver
8252f56b00
Allow FileContentsManager and MappingKernelManager to be used outside NotebookApp
11 years ago
Thomas Kluyver
6d776a5292
Allow starting the server with both file_to_run and notebook_dir
...
file_to_run and notebook_dir would collide, with possible dictionary
ordering randomness depending on how they were passed.
With this change, the default value of notebook_dir is pulled from
file_to_run, instead of pushing the value when file_to_run is changed.
This makes it possible to specify both and have the server behave as
expected.
11 years ago
Min RK
a62a9abdef
update MappingKernelManager module docstring
11 years ago
Min RK
1914e27cff
Don't pass IPython-specific args to non-IPython kernels
...
add a few FIXME notes that the IPython-kernel special treatment
will probably want to be removed in the Jupyter explosion.
11 years ago
Thomas Kluyver
d04e41251d
Merge pull request #6915 from minrk/contents-no-0
...
use Untitled instead of Untitled0
11 years ago
Min RK
0a22217f7e
Merge pull request #6900 from takluyver/contents-api-get-as-type
...
Contents API get as type
11 years ago
Min RK
e4e1d47203
Merge pull request #6694 from takluyver/config-rest-api
...
Add REST API for retrieving, storing and updating config
11 years ago
Min RK
456e65b1f3
adjustments to filename increment
...
- start with no number (Untitled0 -> Untitled.ipynb)
- copy of copy increments instead of adding another `-Copy` (copy Foo-Copy1.ipynb gives Foo-Copy2.ipynb, not Foo-Copy1-Copy1.ipynb)
- copy file to new folder starts with the original filename, instead of unconditional `-Copy0`
11 years ago
Thomas Kluyver
0f44eced72
Put frontend config files in profile_foo/nbconfig/ subdir
11 years ago
Thomas Kluyver
c9b6e30526
Actually pass URL params with API request
11 years ago
Thomas Kluyver
f1f81e2efa
Rename get_model() to get()
11 years ago
Thomas Kluyver
6f48b58b18
Fix various review comments
11 years ago
Thomas Kluyver
b5a6cb7da1
Allow specifying format when getting files from contents API
11 years ago
Thomas Kluyver
ce6dd40c5c
Add type parameter for contents GET requests
11 years ago
Min RK
da832ef59f
split ContentsManager.new, add ContentsManager.new_untitled
11 years ago
Min RK
39041a9f03
address review in contents service
...
- various docstrings, comments clarified and updated
- misc typos
- fix and test creating an untitled directory via POST
- only define `message` if there's something to say
11 years ago
Min RK
74c897cc0b
unicode!
11 years ago
Min RK
bc4f0b32bb
rename ContentsManager.create_file->new
...
consistent with js API
11 years ago
Min RK
62dedf921b
remove notebook['name'] from sessions
11 years ago
Min RK
b6c4baa2fb
remove copy via PUT
...
only copy via POST to directories
11 years ago
MinRK
3ada0c2c27
Remove separate 'path', 'name' in Contents API
...
- path is full path (including name)
- name is only used for read-only convenience, and plays no role in any API
- remove 'untitled upload' (POST with content and no path)
11 years ago
Thomas Kluyver
ae6ae8f7b0
Return updated config from PATCH requests
11 years ago
Thomas Kluyver
c26b0f6961
Fix writing JSON on Python 2
11 years ago
Thomas Kluyver
425d5a1c02
Apply JSON config updates recursively
11 years ago
Thomas Kluyver
6786f86c63
Fix docstring, validate JSON on PUT
11 years ago
Thomas Kluyver
a76a546627
Add REST API for retrieving, storing and updating config
11 years ago
Thomas Kluyver
963921c4ff
Merge pull request #6832 from minrk/request-only-once
...
actually send only one kernel_info request
11 years ago
Min RK
525f6a7561
fix backward `f, nb` args for nbformat.write
11 years ago
MinRK
7cf53c998c
restore ability to sign v3 notebooks
11 years ago
MinRK
af735018f3
don't use nbformat.current in IPython.html
...
use top-level nbformat.read/write, v4 directly for compose
11 years ago
MinRK
12f94ae2a2
use from_dict for dict->notebook
...
not confusing to_notebook_json
11 years ago
MinRK
dd95b1ef5f
remove heading cells in v4
11 years ago
MinRK
07079095a8
update html/js to nbformat 4
11 years ago
Min RK
3e82ea8319
actually send only one kernel_info request
...
store the Future for the initial request,
allowing subsequent requests to wait on the same pending reply.
Previously, any incoming requests that arrived while waiting for the first reply would send their own request.
11 years ago
Min RK
e329a79bc8
language is removed from kernel specs
...
don't use it when testing kernel spec API
11 years ago
Min RK
a2575af6a7
log kernel specs that fail to load
11 years ago
Min RK
e5b135a905
debugging websocket connections
...
- add debug statement at the very beginning of a web socket request
- add debug statement in open, indicating that the connection has been accepted
- add timeout, so failed or slow kernel_info doesn't cause the request to never get a response
- don't send kernel_info_request before authenticating the request
The last one required some icky coroutine shenanigans,
because of our subclass structure, but it should work fine.
11 years ago
MinRK
a5a43e2746
Don't resend kernel info requests if a bad reply is received
11 years ago
MinRK
94d6196ef9
add websocket workarounds for tornado 3
...
WebSocketHandler.get is new in tornado 4
11 years ago
MinRK
769fe38789
cache kernel_info reply for protocol adaptation
...
WebSocket connections will not open until kernel_info is retrieved,
removing a race condition waiting for the reply to indicate adaptation,
which could result in a v5 message being sent to a v4 kernel.
The reply is cached, so that it need not be requested on each new connection.
11 years ago
MinRK
3693ac83ae
support binary message from javascript
11 years ago
MinRK
c9c131ebf9
s/unserialize/deserialize
11 years ago
MinRK
7da61bfc13
use default kernel name in kernels service
...
matches sessions API
11 years ago
MinRK
624f0071a2
remove on_first_message authentication
...
in ZMQStreams. No need for weird, special first message.
- use regular cookie auth
- use url param for session id
11 years ago
Matthias Bussonnier
b2a0798fdf
Merge pull request #6598 from minrk/nbformat-backport
...
nbformat validation
11 years ago
Matthias Bussonnier
7d7b85a043
Merge pull request #6649 from minrk/302-notebooks
...
redirect /api/notebooks to /api/contents
11 years ago
MinRK
b87fee048c
redirect /api/notebooks to /api/contents
...
eases 2.x-3.x transition for consumers such as emacs-ipython-notebook
11 years ago
MinRK
b2d946d44e
don't convert notebooks on upload
11 years ago
MinRK
8392c7ac9e
don't check_and_sign old notebooks on upload
11 years ago
MinRK
4ae05c729c
trust is stored in code_cell.metadata
...
not top-level code_cell
11 years ago
MinRK
ddd3aa2a5a
add dialogs for failed save/load
...
- failed validation doesn't prevent save/load,
but the user is now warned about it.
- there is now a warning dialog if fromJSON fails,
rather than the usual silent failure.
11 years ago
Jessica B. Hamrick
d606d53b4e
More informative error messages
11 years ago
Matthias Bussonnier
e808d23594
Merge pull request #6607 from minrk/cluster-load-remove
...
remove deleted profiles from cluster list
11 years ago
MinRK
ee1d9d65f3
stop using deprecated DelayedCallback
...
in favor of simpler IOLoop.add_timeout
It was added in pyzmq, but deprecated in pyzmq-13.
11 years ago
MinRK
1f231f7b5a
remove deleted profiles from cluster list
11 years ago
Jessica B. Hamrick
6bc5702398
More descriptive short message
11 years ago
Jessica B. Hamrick
46e40e5ea1
Return a proper JSON object
11 years ago
Jessica B. Hamrick
5e1e8a116c
Use 501 error code instead of 400
11 years ago
Jessica B. Hamrick
c4a89cd54d
Better user experience when kernel isn't found
11 years ago
Jessica B. Hamrick
cfc234dc89
Handle NoSuchKernel errors more gracefully
11 years ago
MinRK
974d45343e
allow kernel_name to be undefined in requests
...
fallback to KM.default_kernel_name in that case
11 years ago
MinRK
5bc118fb6c
handle system-wide kernelspecs
...
in html tets_kernelspecs_api, which can cause counts to be greater than 2
12 years ago
Matthias Bussonnier
97e99d0661
Merge pull request #6412 from takluyver/sessions-rest-api-fix
...
Sessions rest api fix
12 years ago
Thomas Kluyver
fa6056e9ed
Sort directory contents in test before assertion
...
Should fix recent test failures, but I can't replicate failure on my
computer, so it's not clear that it's fixed.
12 years ago
Thomas Kluyver
b2737e668e
Add tests and fix some issues
...
Tests taken from #6360
12 years ago
Thomas Kluyver
0e109ee4be
Correct comment
12 years ago
Thomas Kluyver
ca8dabf705
Fix 404 error when accessing nonexistant session
12 years ago
Thomas Kluyver
76b05b24af
Handle sessions where the kernel has been killed
12 years ago
Thomas Kluyver
81b06d81a1
Merge pull request #6358 from minrk/contents-missing
...
fix directory listing with broken symlinks
12 years ago
Min RK
fbae96f9cb
Merge pull request #6269 from takluyver/atomic-save
...
Implement atomic save
12 years ago
MinRK
819c3c326c
fix directory listing with broken symlinks
...
directory listing would 404 if any listed file doesn't exist
(e.g. symlink to missing target).
Previously-failing test included.
12 years ago
MinRK
bd5a88e954
handle undefined or closed zmq_stream in on_message
...
can happen if a message is waiting in a pipe and the web socket is closed before the message is handled.
And give ZMQChannels a nice repr with their kernel ID
12 years ago
Thomas Kluyver
8b7d4c1c2f
Rework atomic_writing with tests & docstring
12 years ago
Thomas Kluyver
04cbce2a14
Implement atomic save
...
Ping @fperez, this should avoid issues with corrupted/lost notebooks
when the disk is full, though I haven't worked out how to test it just
yet.
Closes gh-6254
12 years ago
MinRK
3e79eea46b
update contents per further review
...
- fix is_hidden always returning True on nonexistent files
- create hidden dir fails with 400
- don't read binary files twice
- logging improvements
- dialog on invalid notebook upload
- warn about disabled `--save`
12 years ago
MinRK
3c26b079f0
updates per review
...
- clarified docstrings and errors
- still more notebook/file renames
- configurable untitled names
- copy_from can be full path
- fix running, upload, new-tab behaviors in dashboard
Yay, review!
12 years ago
MinRK
bec995aa63
updates per review
...
a few more notebook mentions in docstrings,
and inappropriate use of setdefault.
12 years ago
MinRK
93b300adda
support deleting empty directories
...
can’t copy directories
12 years ago
MinRK
260afd76ae
contents service review
...
- missed some s/notebook/file/ in docstrings
- manager doesn’t sort contents
12 years ago
MinRK
accf0878ae
test creating a directory with PUT
12 years ago
MinRK
8c4069cc00
add support and tests for uploading and saving regular files
12 years ago
MinRK
0c0eb43719
teach contents service about non-notebook files
12 years ago
MinRK
6cce477e07
rename notebooks service to contents service
...
minimal functional changes, committing because tests are passing.
12 years ago
MinRK
b73aa2b9f9
mv services/notebooks services/contents
12 years ago
Thomas Kluyver
0e3d27c841
Deterministic order for kernels in notebook UI
12 years ago
rgbkrk
88e52b2746
Only allow iframe embedding on same origin.
12 years ago
Thomas Kluyver
806432072a
Add kernel name to sessions REST API
...
Also, some refactoring so that the relationship between session, kernels
and notebooks is managed in the SessionManager, not in the HTTP
handlers.
12 years ago
Thomas Kluyver
ae6309c122
Add support for different kernel specs to kernels REST API
12 years ago
MinRK
e64f689374
don’t import IPython.parallel until it’s used
...
in IPython.html.notebookapp
12 years ago
Thomas Kluyver
3b92c7c24f
Merge pull request #6011 from minrk/no-jsonapi
...
only use zmq.jsonapi when talking to zmq sockets
12 years ago
Min RK
99f52dee68
Merge pull request #5827 from takluyver/kernelspec-rest-api
...
Kernel specs REST API
12 years ago
MinRK
44d2a5b62a
only use zmq.jsonapi when talking to zmq sockets
...
use stdlib json otherwise
12 years ago
Thomas Kluyver
ebf0ea32ef
Use stdlib json, not zmq jsonapi
12 years ago
Thomas Kluyver
76fdfe9eb7
Put full kernel info in REST API response for all kernels
12 years ago
Thomas Kluyver
f6628b7006
Refactor kernelspec resource handler to separate URL prefix
12 years ago
MinRK
336f47c126
update message spec adapter per review
...
- docs and comments
- adapt complete_reply with `end=null`, `start=-len(matched_text)`
- remove some incorrect `status` fields
- add `handle_reply_status_error` for handling `status=error` replies (no-op, currently)
12 years ago
MinRK
b06f382e9b
interrogate kernel_info to get protocol version for adaptation
12 years ago
Thomas Kluyver
1dabf3c547
Test kernel specs REST API
...
And fix kernel not found producing a 404 code.
12 years ago
Thomas Kluyver
02fa348c69
Create REST API for kernel specs
12 years ago
Thomas Kluyver
c4e0ef142b
Merge pull request #5759 from minrk/travis-3.4
...
test with Python 3.4 on Travis
12 years ago
MinRK
191cd44c4d
cleanup socket cleanup
...
- set linger on sockets (avoid hang on exit)
- actually close sockets, not just zmq streams (blame pyzmq, aka me)
seems to be necessary for js/notebook/shutdown test to avoid hanging on Python 3.4.
12 years ago
Spencer Nelson
925a58c0b4
Remove unused imports
12 years ago
MinRK
934e731237
add utils.path.ensure_dir_exists
...
Ensures that a directory exists,
and protects against a common race condition when multiple
processes try to create the same directory.
12 years ago
MinRK
df335decff
create checkpoints dir in notebook subdirectories
12 years ago
MinRK
bf871b020d
test notebook checkpoints in subdirectories
12 years ago
Min RK
dec6fb7260
Merge pull request #5469 from dalejung/nbm_kernel_path
...
API: Allow NotebookManagers to specify kernel startup dir.
closes #5468
12 years ago
Pankaj Pandey
195ca091c5
FileNotebookManager: Use shutil.move() instead of os.rename()
...
`os.rename()` fails in case the new path is on a different
filesystem. For example if a file in `/tmp` is tried to save
to home, it causes following error:
[Errno 18] Invalid cross-device link using os.rename
12 years ago
Dale Jung
27a77dedbd
API: Allow NotebookManagers to control kernel startup dir. #5468
12 years ago
MinRK
62061f0294
only catch errors in copystat
12 years ago
MinRK
caee63f413
fallback on copy, copyfile if copy2 fails
...
in notebook manager
12 years ago
MinRK
3588fe40a9
Merge Security Pull Request: google-caja
...
Adds HTML sanitization.
The basics:
- untrusted HTML is always sanitized, with no warning
(there is console logging for changes made)
- markdown is always treated as untrusted
- no warnings for simply excluded output (e.g. Javascript)
- CSS tags and attributes are always stripped from untrusted HTML
- never check whether HTML is "safe," only sanitize
- add 'Trust notebook' to File menu
12 years ago
Brian E. Granger
8d38e042df
Merge pull request #5158 from ivanov/fix-5157
...
log refusal to serve hidden directories
12 years ago
MinRK
d8f2e320f2
trust method docstrings
12 years ago
MinRK
d5b0026cf1
trust via mark cells and save, rather than trust API request
12 years ago
MinRK
c9c23cd71c
cleanup test_nbmanager
...
use class setUp / teardown instead of the same context manager in every test
12 years ago
MinRK
1ae689f30c
Add Trust Notebook to File menu
12 years ago
Paul Ivanov
6c8cccf9e3
fix test suite
...
is_hidden expects the file to actually exist, so I've rearranged the
logic such that is_hidden is called only after it's clear that the file
exists.
12 years ago
MinRK
052955a84a
normalize unicode in notebook API tests
...
was failing comparison on OS X
12 years ago
Paul Ivanov
d6f2dfefea
log refusal to serve hidden files dirs
12 years ago
Thomas Kluyver
8c1c18461c
Fix a couple of static analysis warnings
12 years ago
Thomas Kluyver
3698563794
Make hidden directories configurable
12 years ago
Thomas Kluyver
c75d4e9962
Don't attempt locale-aware sorting for now.
...
On Python 2, locale.strxfrm() can't handle unicode.
12 years ago
Thomas Kluyver
4fe9f8d057
Case insensitive sorting in the dashboard.
...
Closes gh-5151
12 years ago
Thomas Kluyver
c1e8ddc64e
Hide directories beginning with _ from the dashboard.
...
Closes gh-5152
12 years ago
MinRK
d37780c6a6
use config instead of App.instance to propagate notebook_dir
...
Should behave more logically (I hope).
12 years ago
MinRK
cb25736a24
reorganize who knows what about paths
...
- add NotebookApp.notebook_dir
- add KernelManager.root_dir
- remove NotebookManager.notebook_dir, move to FileNBM.notebook_dir
Default value for KM.root_dir and fNBM.notebook_dir is NotebookApp.notebook_dir, but they can be configured separately.
SessionManager passes the API path to KernelManager,
which is responsible for turning it into the kernel's cwd.
12 years ago
MinRK
37cb0fbdee
remove websocket url
...
websockets should follow the kernel URL
(normal behavior is unchanged, only unused configurability is removed)
12 years ago
Brian E. Granger
db4960769b
Merge pull request #5100 from minrk/base_kernel_url
...
remove base_kernel_url
12 years ago
MinRK
a184724bdb
remove base_kernel_url
12 years ago
Konrad Hinsen
fdb8ab37ae
Rearrange the NotebookManager methods for clarity
...
Methods are organized into three categories:
- Methods that must be implemented in subclasses
- Methods that have default implementations, but can
be overridden if required.
- Support methods meant to be called by methods in subclasses
12 years ago
Konrad Hinsen
b1c6ba2c97
Move method increment_filename from FileNotebookManager to NotebookManager
...
The implementation requires only a minor change (call notebook_exists
rather than checking for file existence) to be universally usable
in other notebook managers.
12 years ago
Konrad Hinsen
0a430f5840
Add method notebook_exists to NotebookManager.
...
It is called by IPython.html.notebook.NotebookHandler.get,
so it must be implemented by every notebook handler.
12 years ago
Konrad Hinsen
26e3e31ad8
NotebookManager API: rename *notebook_model methods to *notebook
12 years ago