Spyder, the Scientific Python Development Environment, includes the following key features:
Editor:
Customizable syntax highlighting themes
Debugging breakpoints and conditional breakpoints (through ipdb integration)
ipdb
Interactive execution: Run line/selection, run cell, run file, re-run and debug
Run configuration settings:
Working directory selection
Command line options
Run in Current/dedicated/external console choice
Automatically clear variables or enter debugging
Outline Explorer: Navigate cells, functions, classes, blocks, and more
Real-time code introspection features (powered by rope and jedi):
rope
jedi
On-demand (Tab) and “dot” automatic code completion
Automatic popup calltips showing function signatures
Go-to-definition for any symbol: Functions, classes, attributes, etc. (Ctrl-Click or Ctrl-G by default)
Occurrence highlighting: Select or double-click any word to show all other instances throughout the current document
On-the-fly automatic formatters (optional):
Automatic insertion of closing quotes parentheses, braces and brackets
Automatic indentation after ‘else’, ‘elif’, ‘finally’, etc.
Smart auto-indentation based on code structure
Automatic insertion of colons after for, if, def, etc.
Automatically fix mixed indentation, EOL characters and trailing spaces
Real-time code analysis: * Errors/warnings/problems (powered by pyflakes) * PEP 8 and code style (powered by pycodestyle) * Code annotation parsing and “Todo lists” (TODO, FIXME, XXX, etc.)
pyflakes
pycodestyle
TODO
FIXME
XXX
IPython Console:
Any number of individual consoles, each executed in a separate, isolated processes
Each console uses the full IPython kernel as a backend with a light GUI frontend
Supports all of the powerful IPython magic commands and functionality
Automatic code completion and calltips, and automatic link to Help
Range of code run options and interactivity
Debugging integration with enhanced ipdb debugger and the Editor
Inline display of Matplotlib graphics (optional)
The User Module Reloader, automatically re-importing modified source files
Variable Explorer:
Can list all global variables, functions, classes, and other objects, or filter them by several criteria
GUI-based editors for numerous data types (numeric, strings, collections, NumPy arrays, Pandas DataFrames, dates/times, images, and more)
Import/export data or an entire session from/to many formats (text, csv, NumPy files, MATLAB files)
Interactive data visualization options (plot, histogram, image…) using Matplotlib
Help:
Provides documentation or source code for any Python object (class, function, module…)
Can be triggered manually, on demand (Ctrl-I by default) or automatically on typing a left parenthesis after a function name (optional)
Real-time rendering and rich HTML display of the popular numpydoc docstring format (powered by Sphinx)
numpydoc
Sphinx
Static Code Analysis: Detects an array of style issues, bad practices, potential bugs, and other problems with your code (powered by pylint)
pylint
Profiler: Measures the performance impact of every function in a file to identify bottlenecks and aid optimization
Projects: Allows for easy saving and restoring of settings, sessions and setup for working on multiple development efforts simultaneously
File Explorer: Integrated filesystem viewing supporting many common operations
Find in Files: Find string occurrences in a file, directory, or entire project with full support for powerful regular expressions and excluded locations
Online Help: Search and browse rich HTML documentation on installed Python modules, packages, functions, classes, builtins and more, including your own
History Log: Chronologically records every command entered into any Spyder console with timestamps, syntax highlighting and de-duplication
Internal Console: Provides access to viewing, exploring and controlling Spyder’s own operation
Preferences:
Fully customizable keyboard shortcuts editor
Selection of a custom Python interpreter to use for consoles
Choice of 10 built-in syntax coloring theme, or create your own
Toggle automatic editor and console introspection, analysis and helper features
Options to use a variety of graphics backends and display preferences
Much more…
General Features:
MATLAB-like PYTHONPATH management dialog
PYTHONPATH
User environment variables viewer/editor (Windows-only)
Handy links to useful resources and documentation (Python, Matplotlib, NumPy, Scipy, Qt, IPython, etc.)
Interactive tour, tutorial and shortcut cheat sheet for new users
Beyond its many built-in features, Spyder’s abilities can be extended even further via its plugin system and API. Spyder can also be used as a PyQt5 extension library, allowing you to build upon its functionality and embed its components, such as the interactive console, in your own software.