Hi all,
On behalf of the Spyder Project Contributors, I'm pleased to announce the fourth alpha of our next minor version: Spyder 6.1.
We've been working on this version for around half a year now and it's working relatively well. We encourage all people who like the bleeding edge to give it a try.
Spyder 6.1 comes with the following interesting new features and fixes:
New features
- Add support to work with multiple cursors in the Editor. Options to configure them are available in Preferences > Editor > Advanced settings.
- Add a graphical interface to the update process of our standalone installers.
- Plot histograms from the dataframe viewer.
- Add support for Polars dataframes, frozen sets, Numpy string arrays and pathlib.Path objects to the Variable Explorer.
- Show the remote file system in the Files pane when a remote console has focus.
- Add support to connect to JupyterHub servers.
- Add support to use Pixi environments in the IPython console.
- Paths can be added to the front of sys.path in the Pythonpath manager.
- Copy/cut the current line if nothing is selected in the Editor with Ctrl+C/Ctrl+X, respectively.
- Add option to show/hide the Editor's file name toolbar to Preferences > Editor > Interface.
- Select full floating point numbers by double-clicking them on the Editor and the IPython console.
Important fixes
- Much better support for PyQt6 and PySide6.
- Make shortcuts to move to different panes work when they are undocked.
- Remove blank lines around cells when copying their contents to the console.
- Automatically kill kernels when Spyder crashes.
- Disable magics and commands to call Python package managers in the IPython console because they don't work reliably there.
- Drop support for Python 3.8
UX/UI improvements
- Reorganize most menus to make them easier to navigate.
- Add shortcut Ctrl+W to close Variable Explorer viewers.
- Add option to hide all messages displayed in panes that are empty to Preferences > Application > Interface.
- Fix plots looking blurred when scaling is enabled in high DPI screens.
API changes
- Editor
- Breaking - The NewFile, OpenFile, OpenLastClosed, MaxRecentFiles, ClearRecentFiles, SaveFile, SaveAll, SaveAs, SaveCopyAs, RevertFile, CloseFile and CloseAll actions were moved to the ApplicationActions class in the Application plugin.
- Breaking - The shortcuts "new file", "open file", "open last closed", "save file", "save all", "save as", "close file 1", "close file 2" and "close all" were moved to the "main" section.
- Add open_last_closed, current_file_is_temporary, save_all, save_as, save_copy_as and revert_file methods.
- Add set_default_kernel_spec to remoteclient plugin, in order to set default kernel spec used to open default consoles.
- IPython console
- Breaking - The sig_current_directory_changed signal now emits two strings instead of a single one.
- Breaking - Remove set_working_directory method. You can use set_current_client_working_directory instead, which does the same.
- Breaking - The save_working_directory method was made private because it's only used internally.
- Add sender_plugin kwarg to the set_current_client_working_directory method.
- Add server_id kwarg to the set_current_client_working_directory method.
- Working Directory
- Breaking - The sig_current_directory_changed signal now emits three strings instead of a single one.
- Breaking - The sender_plugin kwarg of the chdir method now expects a string instead of a SpyderPluginV2 object.
- Add server_id kwarg to the chdir method.
- Remote Client
- Breaking - The create_ipyclient_for_server and get_kernels methods were removed.
- Add sig_server_changed signal to report when a server was added or removed.
- Add get_server_name method to get a server name given its id.
- Add register_api and get_api methods in order to get and register new rest API modules for the remote client.
- Add get_jupyter_api method to get the Jupyter API to interact with a remote Jupyter server.
- Add get_file_api method to get the rest API module to manage remote file systems.
- Add get_environ_api method to get the rest API module to work with environment variables in the remote machine.
- Pythonpath manager
- Breaking - The sig_pythonpath_changed signal now emits a list of strings and a bool, instead of two dictionaries.
- Application plugin
- Add create_new_file, open_file_using_dialog, open_file_in_plugin, open_last_closed_file, add_recent_file, save_file, save_file_as, save_copy_as, revert_file, close_file, close_all and enable_file_action methods to perform file operations in the appropriate plugin.
- Add focused_plugin attribute.
- File Explorer
- Breaking - ExplorerTreeWidgetActions renamed to ExplorerWidgetActions.
- Breaking - The sig_dir_opened signal now emits two strings instead of a single one.
- Add server_id kwarg to the chdir method.
- Main menu
- Breaking - From SourceMenuSections, move the Formatting section to EditMenuSections and Cursor to SearchMenuSections, remove the CodeAnalysis section and add the Autofix section.
- Breaking - Replace the Tools, External and Extras sections in ToolsMenuSections with Managers and Preferences.
- SpyderPluginV2
- Add CAN_HANDLE_FILE_ACTIONS and FILE_EXTENSIONS attributes and create_new_file, open_file, get_current_filename, current_file_is_temporary, open_last_closed_file, save_file, save_all, save_file_as, save_copy_as, revert_file, close_file and close all methods to allow other plugins to hook into file actions.
- Add sig_focused_plugin_changed signal to signal that the plugin with focus has changed.
- PluginMainWidget
- Add SHOW_MESSAGE_WHEN_EMPTY, MESSAGE_WHEN_EMPTY, IMAGE_WHEN_EMPTY, DESCRIPTION_WHEN_EMPTY and SET_LAYOUT_WHEN_EMPTY class attributes, and set_content_widget, show_content_widget and show_empty_message methods to display a message when it's empty (like the one shown in the Variable Explorer).
- Shellconnect
- Breaking - Rename is_current_widget_empty to is_current_widget_error_message in ShellConnectMainWidget.
- Add switch_empty_message to ShellConnectMainWidget to switch between the empty message widget and the one with content.
- Add ShellConnectWidgetForStackMixin class for widgets that will be added to the stacked widget part of ShellConnectMainWidget.
- AsyncDispatcher
- Breaking - Remove dispatch method to use it directly as decorator.
- Add class DispatcherFuture to spyder.api.asyncdispatcher and QtSlot method to AsyncDispatcher so that connected methods can be run inside the main Qt event loop.
- Add early_return and return_awaitable kwargs its constructor.
For a more complete list of changes, please see our changelog
You can easily install this release candidate if you use conda by running:
conda install -c conda-forge/label/spyder_dev -c conda-forge/label/spyder_kernels_rc -c conda-forge spyder=6.1.0a3
Or you can use pip with this command:
pip install --pre -U spyder
Enjoy!
Daniel