Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mergesplit #1261

Closed
wants to merge 44 commits into from
Closed

Mergesplit #1261

wants to merge 44 commits into from

Conversation

ellisonbg
Copy link
Member

I have implemented cell merging and splitting. Overall it works pretty well, but I have not implemented this feature for cell types other than code cells. I will do that after some refactoring of the underlying cell objects.

Some questions before merging:

  • Do we want keyboard shortcuts for these operations.
  • The Edit menu is getting long. We could create a sub-menu for Paste (Paste Over Selected, Paste Above, Paste Below)? Also for Merge (Merge Above, Merge Below)?

ellisonbg and others added 27 commits January 12, 2012 13:58
* QuickHelp button has been removed in favor of a Help menu item.
* Keyboard shortcuts are now in the menus.
* Numerous fixes to subtle aspects of the wijmenu implementation.
There is not a rename dialog that is available in the File menu and
when you click on the notebook name.
* Added last saved with time/date display.
* Reimplemented save widget status updates.
Fix display of SyntaxError in Python 3, plus various cleanups to exception-handling machinery.

Closes ipython#1225.
@fperez
Copy link
Member

fperez commented Jan 13, 2012

Great job!!! Functionality works great, and I think we can move forward even if it's only for code cells now. In any case, those are the ones where it matters most (I don't think there are nearly as many reasons for wanting to merge/split text cells). A few questions:

  • From looking at the code, I wonder if we couldn't make the text cells reuse the same code by having all cells have a get_content method. Because ultimately, the logic should be the same, regardless of whether the content is code or text.
  • Though we don't have it implemented right now, we should think about what to do regarding cell metadata, which we know we'll have soon. On split, it should just be copied to both children, but how to go about it on merge? Something to keep in mind when we tackle exactly what/how much cell metadata to allow and how it will be stored.

Regarding the edit menu, I think it's still OK but I agree we're about at the limit. We could do what LyX uses, they have plain 'paste', but submenus for 'paste special' and 'paste recent', which have a few options each. That is: keep the most common option available at the top-level, and create sub-menus for the others.

This prevents the heartbeat from ever waiting for the GIL, which
could cause erroneous heartbeat failures.
@ellisonbg
Copy link
Member Author

About the get_content idea: I am planning on refactoring the abstract Cell API when I add heading cells. We need a more uniform interface for these things. That will also simplify the code for switching between cell types. I will wait to implement text cell splitting once that happens.

On the menu and shortcut issues, I think we should leave it as is and see how it goes.

On the cell level metadata, let's cross that bridge when we get there. But how this will be handled in a merge operation is good to keep in the back of ours heads for latter.

minrk and others added 13 commits January 13, 2012 19:36
Heartbeat no longer shares the app's Context

Fixes in both the single and parallel kernels, preventing the heartbeat thread from sharing the zmq Context with the rest of the process.  Non-copying sends require grabbing the GIL from the zmq io-thread in order to free memory, which could let Python get in the way of the heartbeat.

Test script and notebook added to examples directory.

closes ipython#1260
When used, this disables database-based actions in the Hub.

Useful for minimizing Hub memory consumption.
set auto_create flag for notebook apps

Fixes first use of bundled profiles when used with the notebook (e.g. ipython --profile=sympy).
use self.kernel_manager_class in qtconsoleapp

Subclasses of QtConsoleApp can now override kernel_manager_class with their own version.
allow Reference as callable in map/apply

This allows behaviors like:

    rf = parallel.Reference('f')
    ar = view.map(rf, *sequences)

where the function 'f' is defined on the engines, and can even be different.
add `--nodb` option for non-recording Hub

This allows simple use cases to avoid needing to call `purge_results` to prevent memory growth of the Hub.
Fix minor typo in history_console_widget.py
@ellisonbg
Copy link
Member Author

For some reason this is showing up as not merged, But it has been merged.

@ellisonbg ellisonbg closed this Jan 18, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants