move the strictness to our release script
this means others can build personal wheels without less, invoke,
but IPython releases still cannot be made without them,
which is the real goal.
- Adds a `GenericCheckpointMixin` as a helper for implementing the two
boundary-traversing Checkpoint API methods, `create_checkpoint` and
`restore_checkpoint`.
- `GenericFileCheckpointManager` is implemented as a subclass of
`FileCheckpointManager` using `GenericCheckpointMixin`. Note that
this is the safe subtyping relationship because of method
signature *contra*variance: `FileCheckpointManager` accepts
`FileContentsManager` in its method signatures type, whereas
`GenericFileCheckpointManager` accepts any `ContentsManager`.
- Moved Checkpoint-related classes to their own files.
js test are the longer ~8 minutes vs ~3 for Python, and fails the more often.
Hopefully this will speedup the build and have less test relaunched when we
have a random faillure. Splitting should make the js test a bit faster
On `create_checkpoint` and `restore_checkpoint`, pass a path and a
`ContentsManager` to `CheckpointManager` instead of an already-loaded
model.
The `CheckpointManager` base class provides a correct implementation of
these methods that's generic across any ContentsManager, but subclasses
are free to specialize when the storage backend of `ContentsManager` is
shared.
multiplex on a 'channel' key in message,
rather than separate websockets.
Unlike zmq, there aren't different message patterns that require the channels to be separate.
Reduces FD count by factor of 3 and connection complexity in js.
rather than in a dict, which doesn't work without reserializing *all* stored widget states (of all notebooks), since localStorage only supports storing strings.
When a users uses the rename dialog in the text editor, we call
_set_mode_for_model on the returned model. The expected model to be
returned from rename has no value for mimetype, which causes us to pass
`undefined` to `CodeMirror.findModeByMIME`, which returns `undefined`
back. We then try access an attribute of the (undefined) return value,
causing an error.
This now properly checks whether the `mimetype` attribute is set on the
input model.