PyDev Changelog

What's new in PyDev 10.1.1

Jan 10, 2023
  • Critical bugfix: Analysis preferences are now properly initialized again.

New in PyDev 10.1.0 (Jan 10, 2023)

  • All analysis settings are now loaded and saved from the org.python.pydev scope.
  • Contents from .settings/org.python.pydev.analysis.yaml must now be moved to the .settings/org.python.pydev.yaml file.
  • Fixes issue where the configurations from PyLint weren't being picked up.
  • pydevd updated to 2.9.5
  • Handle OSError when listing to get path with real case
  • More information is shown if formatting with black fails.
  • If conda lists the same env more than once, show it only once.
  • When configuring interpreter, detect if it's a conda env and mark to activate by default.

New in PyDev 10.0.2 (Jan 10, 2023)

  • Fixed KeyAssistDialog (activated on Ctrl+2) which was using deprecated construct no longer available in 4.26 (2022-12).
  • pydevd updated to 2.9.3
  • Properly allow setting locals to None when evaluating.
  • Allow using globals() when evaluating.
  • If gevent tries to disable the tracing prevent it.
  • On Python 3.11 _fork_exec is now properly monkey-patched for subprocesses.
  • Strings inside containers are no longer shown as special variables.

New in PyDev 10.0.1 (Jan 10, 2023)

  • Fixed issue parsing exception groups on Python 3.11.
  • Fixed issue which prevented JDT (Java) files from being opened in the Project Explorer.
  • A better error message is shown when using an unsupported Python version.

New in PyDev 10.0.0 (Jan 10, 2023)

  • Only Python 3.6 onwards is now supported:
  • Python 3.11 is now supported
  • Python 2.7 support is now dropped (please use PyDev 9.3.0 if you need Python 2.7).
  • Type inference:
  • PyDev will now use typeshed by default.
  • It will still fallback to builtins introspection when needed.
  • Many improvements were done in the area which should result in better code-completion and find definition in general.
  • Debugging:
  • When evaluating slow repr a note is shown related to the environment variable which should be used to customize it.
  • Silence warning given when debugging gevent.
  • It's now possible to use pydevd in DAP mode directly.
  • All the items in tuples and lists can now be seen when expanding.
  • Chained exception frames are shown in the in stack.
  • The cause message on chained exceptions is properly shown.
  • ctypes arrays are properly enumerated when debugging.
  • The debugger is cleared after fork in non-python process.
  • Top-level async is supported when evaluating in debugger/console.
  • Step in/step over support for IPython.
  • "PYDEVD_IPYTHON_COMPATIBLE_DEBUGGING" = "1" needs to be set in the environment when debugging IPython.
  • Properly stop at line 1 in frame eval mode.
  • Properly consider that argv[0] may be None.
  • Use tokenize.open to open file stream (to avoid EncodingWarnings with PYTHONWARNDEFAULTENCODING).
  • Protect against exception in linecache.getline.
  • Auto-attach to subprocess with .zip targets.
  • It's now possible to resolve symlinks when sending paths to the client.
  • Warnings when evaluating in repl are shown.
  • Errors with conditional breakpoints are clearer.
  • Breakpoint log messages are now printed when stepping too.
  • frame.f_locals is no longer called multiple times when assigning locals after evaluation.
  • If pandas has lower defaults for repr, use them.
  • Handle case where client may send files with different casing.
  • Fixed segfault attaching debugger to a running process.

New in PyDev 9.3.0 (Jan 10, 2023)

  • Debugging:
  • Fixed issue where the variable children wouldn't expand correctly.
  • Fixed some case where automatic connection to subprocesses wouldn't work.
  • Debugging with Pandas is much improved with the addition of some custom converters.
  • Opt-in support to show paused greenlets by setting GEVENT_SHOW_PAUSED_GREENLETS=1.
  • Support for newer versions of gevent.
  • Information on user settings paths is cached to fix issue with slow debugging using pipenv project.
  • A warning is shown if getting some attribute / getting its repr is slow.
  • Interactively inspect matplotlib plots when the QtAgg backend is used.
  • Support for PySide2.
  • Better error messages in case Python 3.11 frozen modules are being used.
  • Note: this will be the last debugger version supporting Python 2.7.
  • Newer releases will target only Python 3.6 onwards.
  • Others:
  • Fix for case where indexing could fail to account for namespace folders.

New in PyDev 9.2.0 (Nov 1, 2021)

  • Code completion:
  • Code-completion is provided for TypedDict (when requested inside of string -- i.e.: dct['|']). (#PyDev-1167)
  • super completion on method with classmethod properly adds cls instead of self. (#PyDev-201)
  • Assigns after class definition are added to completions. (#PyDev-326)
  • Debugging:
  • Terminate remote debugger without any process attached no longer throws an exception.
  • PyDev debugger threads are hidden in the threading module.
  • Line validation is made for django/jinja2 templates.
  • Others:
  • Fixed regression from 9.1.0 so that Jython works properly again (start_new not available in threading). (#PyDev-1182)
  • Don't complain if self is not in parameters for zope.Interface. (#PyDev-646)
  • Fix issue loading test unit run.
  • Validation in new project wizard no longer takes too much time if a folder with lots of contents is set.
  • Add #noqa: <error_code> as quickfix for flake8 errors. (#PyDev-1146)
  • flake8 error code is shown in message description. (#PyDev-1146)

New in PyDev 9.1.0 (Oct 4, 2021)

  • Python 3.10:
  • The debugger now provides cython and frame evaluation mode for Python 3.10.
  • Code completion:
  • Support for values returned by context manager. (#PyDev-1155)
  • Support for Union and | for Python 3.10. (#PyDev-1175)
  • Support for subclassing with generic types. (#PyDev-1174)
  • Others:
  • Fixed issue loading environment variables from conda. (#PyDev-1173)
  • Fixed issue which could lead to infinite recursion.
  • The code formatter page is properly updated when loading formatter info.
  • Assign to variables takes into account type declaration. (#PyDev-1172)

New in PyDev 9.0.1 (Aug 19, 2021)

  • Added missing binaries in debugger for Linux and Mac.

New in PyDev 9.0.0 (Aug 16, 2021)

  • Python 3.10:
  • Support for pattern matching.
  • Support for (multiple) parenthesized context managers.
  • Debugging.
  • Note: Python 3.10 support is still a work in progress, and is provided as an early release.
  • Java 16:
  • Java 16 can now be used to run PyDev
  • When using Java 16, this update is required as older versions don't run smoothly on it due to backward-incompatible changes.
  • Java 11 is still the minimun required version to run PyDev (and Java 15 is the recommended version).
  • Typeshed:
  • PyDev can now use typeshed (a collection of stubs for Python libraries) for type inference.
  • Albeit already usable, it's still considered experimental, so, it's opt-in.
  • To opt-in select "Use Typeshed for type inference (EXPERIMENTAL)" in "Preferences > PyDev > Interpreters".
  • Debugger:
  • Preliminary support for Python 3.10.
  • Debugger properly handles case where return value name has the same value as another variable.
  • wxPyton event loop activation works for newer versions of wxPython.
  • Notifies when a required stdlib module required by the debugger is shadowed by a user module.
  • Reload deals with relative imports.
  • Auto-attach to subprocess with a __future__ import with python -c works.
  • Other minor issues.
  • Others:
  • Performance improvement: traversing files to compute the PYTHONPATH contents is much faster.
  • It's now possible to use the Python installed from the Microsoft Store.
  • Updated Lucene.
  • Typing numbers and symbols in console properly moves cursor to edit position. (#PyDev-237)
  • format=default is always set for Flake8. (#PyDev-1143)
  • Traceback is properly shown after failing test with nosetest and Python3. (#PyDev-1160)
  • Invalid django project names are properly dealt with. (#PyDev-1162)
  • Transform is properly disposed (resource leakage reported by Eclipse 4.20).
  • Type inference now works with typing.cast. (#PyDev-1158)

New in PyDev 8.3.0 (Apr 11, 2021)

  • Java 11 is now required to run PyDev.
  • External linters:
  • Configurations of the linters can be saved to the project or user settings (#PyDev-1139)
  • Flake8 has a more flexible UI for configuration. (#PyDev-1144)
  • Others:
  • Option to add comments all at a single indent (note: this is now the default). (#PyDev-1141)
  • LRU for context-insensitive completion/quick fix. (#PyDev-1142)
  • Fixed some code-completion cases where self was wrongly added. (#PyDev-1134)
  • Environment variables are now supported in .pydevproject (expected format: ${env_var:VAR_NAME}). (#PyDev-1137)

New in PyDev 8.2.0 (Apr 1, 2021)

  • External linters:
  • Flake8 can now be used with PyDev (#PyDev-1127)
  • A single PyLint/Mypy/Flake8 call is done when code analysis for a folder. (#PyDev-1126)
  • Note: must be manually requested by right clicking a folder and selecting PyDev > Code analysis.
  • Comments are now added by default at the current indentation
  • Works better with code-formatters that change comments such as Black.
  • An option is still available to add # to the line start.
  • Code analysis:
  • Fix for duplicated signature with @overload. (patch by Vito De Tullio)
  • Fix for undefined variable in return type annotations for classes "in construction" with from __future__ import annotations. (#PyDev-1125)
  • A class recognizes internal references to itself. (#PyDev-401)
  • Improvements in interpreter configuration:
  • Various UI improvements.
  • It is now possible to add an interpreter from Conda. (#PyDev-1122)
  • Others:
  • New preferences page to configure Path Mappings (for remote debugging). (#PyDev-1119)
  • XXX was added as a default TODO tag.

New in PyDev 8.0.0 (Sep 6, 2020)

  • MyPy:
  • Make sure that only one MyPy is running at a given time (to prevent cache corruptions).
  • Properly report MyPy messages that only have a line number. (#PyDev-1091)
  • MyPy integration now also shows notes for a message. (#PyDev-1088)
  • Debugger (updated to pydevd 2.0.0):
  • The frame evaluation mode (which adds programmatic breakpoints by rewriting bytecode) was redone (it had a critical issue which could make it skip breakpoints).
  • Fixed issue collecting try..except information.
  • Fixed issue evaluating numpy array with unexpected dimension.
  • Type Inference:
  • Option to create method at a given class properly considers type-hinting. (#PyDev-1092)
  • Support code-completion for Optional[]. (#PyDev-1089)
  • Properly handle type inforamtion when given as a string. (#PyDev-1082, #PyDev-1087)
  • Fixed issue where line/col was not forwarded properly in go to definition. (#PyDev-1075)
  • Typing info should have priority when available. (#PyDev-1079)
  • Properly get completions considering function annotation. (#PyDev-1078)
  • Test running:
  • Fixed issue running tests which override address with nose. (#PYDev-1095)
  • Fixed issue where test import/export didn't deal well with binary chars that were collected from the test. (#PyDev-1067)
  • Others:
  • When finding a file in a project on Windows consider paths as case insensitive.
  • .mypy_cache and .pytest_cache contents are now marked as derived (so they can be filtered out in searches).
  • Fixed case where auto-import could be added to wrong location. (#PyDev-1085)
  • Occurrence was not found in type hint return. (#PyDev-1076)
  • Find references not working for constant depending how it's used. (#PyDev-1083)
  • Backported fix to properly parse raw f-string in Python 3.6. (#PyDev-991)
  • Code completion inside f-strings. (#PyDev-1081)

New in PyDev 7.7.0 (Aug 2, 2020)

  • MyPy integration improvements
  • New option to set project source folders as MYPYPATH.
  • --follow-imports=silent now set by default.
  • The cache dir set by default to project/.mypy_cache
  • Many improvements for dealing with typing information (in code-analysis and code-completion).
  • Debugger improvements (updated to pydevd 1.9.2)
  • Fix dealing with generator expressions with multiple breakpoints in frame eval mode.
  • Improvements to deal with blocking evaluate requests.
  • Support for pip installed namespace packages (#PyDev-151).
  • Fixes in the PyLint integration (#PyDev-729).
  • Updated to latest isort.
  • isort properly gets project level configuration (#PyDev-993).
  • Support for parsing using the latest version of cython (0.29).
  • Properly supporting the latest pytest version (6.0) (TerminalWriter API changed).
  • Fix when applying diffs from external tool (such as the black formatter).
  • Projects sorted by name even if project is also a source folder in the PyDev Package Explorer (#PyDev-959).
  • Fix in extract method refactoring with typing information (#PyDev-1034)
  • Auto-edit for __exit__ parameters (#PyDev-1068).
  • Nodes are no longer auto-expanded in quick outline if the outline is too big.
  • Properly computing local import target location on code completion with auto local import (#PyDev-1070).

New in PyDev 7.6.0 (Jun 4, 2020)

  • Debugger improvements (updated to pydevd 1.9.1).
  • Variables are now grouped (special/class/function/protected) -- note: it's possible to hide groups in the variables view menu dropdown.
  • When a launching a subprocess does not target a python executable, the original args are kept (so, quotes are no longer trimmed).
  • A step in which would skip code won't be reported in the return if it'd reach the same location.
  • The disassembled version of a frame may be shown if the sources are not available.
  • PySide2 is supported to recognize QThreads/event loop in interactive console.
  • Python 3.8 parsing fixes:
  • Properly parsing f-strings with named unicode character. i.e.: f"N{BULLET}". (#PyDev-989)
  • Properly parsing f-strings formats using colon. i.e.: f"{datetime.datetime.now():%Y-%m-%d %H:%M:%S}". (#PyDev-1061)
  • Properly parsing f-strings with vars ending in equals. i.e.: f'{y=}'. (#PyDev-1045)
  • Properly parsing raw f-strings such as rf"str". (#PyDev-1020)
  • Properly parsing iterable unpacking syntax. i.e.: return lastname.upper(), *members. (#PyDev-1048)
  • Support for the latest version of PyTest (which may resolve symlinks and changed the TerminalWriter import location).
  • PyDev package explorer is a bit faster (cache source project paths for a project).
  • Recognizing type comments for self attributes. i.e.: #: :type self.var: MyClass. (#PyDev-520)
  • Trailing commas properly recognized in automatic import. (#PyDev-542)

New in PyDev 7.5.0 (Jan 10, 2020)

  • Fixed support for the Python 3.8 (which wasn't properly added to 7.4.0).
  • Using Cython to generate AST for Cython files (so, Cython needs to be available in the default interpreter).

New in PyDev 7.4.0 (Oct 25, 2019)

  • Support for the Python 3.8.
  • Code analysis fix: default values properly marks variables as used (#PyDev-945).
  • On the context menu to analyze files, make sure that non-python files are not analyzed (#PyDev-1008).
  • Lucene indexes are not kept open (so, it's possible to delete the project metadata properly when a project is deleted).
  • Debugger improvements (updated to pydevd 1.8.0).
  • Support for PyPy.
  • Support for Python 3.8.
  • Properly show stack trace exception for unhandled exceptions with generator.
  • Handle binary data when redirecting output.
  • Properly evaluate unicode strings on Python 2.
  • Fix dlopen return type for gdb 8.3.1 (patch by Vladimir Dvorak).

New in PyDev 7.0.3 (Nov 9, 2018)

  • Mypy:
  • PyDev can now use Mypy when doing code analysis.
  • Black Formatter:
  • PyDev can now use black as the code formatting engine.
  • Virtual environments:
  • It's now possible to use pipenv for managing virtual environments.
  • It's possible to manage virtual environments from the editor.
  • Ctrl+2, pip <command>
  • Ctrl+2, pipenv <command>
  • Ctrl+2, conda <command>
  • Debugger:
  • Should be much faster for those on Python 3.6 onwards with cython extensions (using frame evaluation).
  • The Python 3.7 grammar is now available as an option (even though it's the same as 3.6).
  • Removed support for using the Python 2.4 grammar.
  • The 2to3 integration shows a better dialog.
  • It's possible to autogenerate docstring parameters using the Google Code format (patch by ghbcode).

New in PyDev 7.0.2 (Nov 8, 2018)

  • Mypy:
  • PyDev can now use Mypy when doing code analysis.
  • Black Formatter:
  • PyDev can now use black as the code formatting engine.
  • Virtual environments:
  • It's now possible to use pipenv for managing virtual environments.
  • It's possible to manage virtual environments from the editor.
  • Ctrl+2, pip <command>
  • Ctrl+2, conda <command>
  • Ctrl+2, pipenv <command>
  • Debugger:
  • Should be much faster for those on Python 3.6 onwards with cython extensions (using frame evaluation).
  • The Python 3.7 grammar is now available as an option (even though it's the same as 3.6).
  • Removed support for using the Python 2.4 grammar.
  • The 2to3 integration shows a better dialog.
  • It's possible to autogenerate docstring parameters using the Google Code format (patch by ghbcode).

New in PyDev 7.0.0 (Nov 8, 2018)

  • Mypy:
  • PyDev can now use Mypy when doing code analysis.
  • Black Formatter:
  • PyDev can now use black as the code formatting engine.
  • Virtual environments:
  • It's now possible to use pipenv for managing virtual environments.
  • It's possible to manage virtual environments from the editor.
  • Ctrl+2, pip <command>
  • Ctrl+2, pipenv <command>
  • Ctrl+2, conda <command>
  • Debugger
  • Should be much faster for those on Python 3.6 onwards with cython extensions (using frame evaluation).
  • The Python 3.7 grammar is now available as an option (even though it's the same as 3.6).
  • Removed support for using the Python 2.4 grammar.
  • The 2to3 integration shows a better dialog.
  • It's possible to autogenerate docstring parameters using the Google Code format (patch by ghbcode).

New in PyDev 6.5.0 (Sep 1, 2018)

  • Debugger:
  • Debugger is much more responsive (fixed bug in reader/writer on the PyDev side).
  • breakpoint() builtin is now supported to add a programmatic breakpoint (on any Python version).
  • Watch expression no longer giving error if evaluation is empty (patch by glhez).
  • Editor:
  • Code folding of #region/#endregion regions (patch by ghbcode).
  • There's a new action which allows creating local imports from a global import (use Ctrl+1 on top of global import name).

New in PyDev 6.4.4 (Jul 30, 2018)

  • Debugger:
  • Fixed issue where a unicode could be used where a string was expected.
  • Providing wheel for Python 3.7.
  • Fixed issue running Jython.
  • No longer showing pydevd internals in the stack.
  • Fixed issue with interactive console and debugger integration.
  • Editor:
  • Fixed issue parsing and analyzing f-strings.

New in PyDev 6.4.3 (Jul 5, 2018)

  • Fixed critical error on debugger (could deadlock when creating a new thread).

New in PyDev 6.4.2 (Jul 2, 2018)

  • Fixed critical error parsing f-strings.

New in PyDev 6.4.1 (Jun 23, 2018)

  • Debugger:
  • Fixed issue tracing lamda functions.
  • pydevd.settrace() could end up not stopping the debugger properly.
  • Grammar: fixed issue parsing f-strings.

New in PyDev 6.3.3 (Jun 18, 2018)

  • Important PyDev now requires Java 8 and Eclipse 4.6 (Neon) onwards.
  • PyDev 5.2.0 is the last release supporting Eclipse 4.5 (Mars).
  • Debugger
  • Command which evaluates selected text in debugger is now properly categorized.
  • Warning is no longer shown when a breakpoint is disabled and later removed.
  • Fixed issue evaluating conditional breakpoints.
  • Fixed racing condition when executing scripts which could make some scripts not be executed properly (which could break sending contents to the interactive console).
  • Autocomplete disabled when renaming symbols (#PyDev-766).
  • Interactive console exits properly when Eclipse is not properly closed (#PyDev-860).
  • Code-formatter properly dealing with matrix multiplication operator @= (#PyDev-904).
  • Fixed issue where the default preferences window had no focus (#PyDev-702).
  • Translations fixed for the interactive console view (patch by Mat Booth).

New in PyDev 6.2.0 (Nov 29, 2017)

  • Important PyDev now requires Java 8 and Eclipse 4.6 (Neon) onwards:
  • PyDev 5.2.0 is the last release supporting Eclipse 4.5 (Mars).
  • Interactive Console:
  • It's possible to use word-wrapping in the PyDev interactive console (#PyDev-862).
  • Code Completion:
  • Checking list unpacking with user specified types.
  • Code completion aware of variable typing from Python 3.6 (#PyDev-866).
  • Others:
  • Properly terminating child processes of launched python processes on Linux with Java 9 (#PyDev-871).
  • Comments with 3 dashes properly appear in outline in all cases (#PyDev-868).
  • Properly hyperlinking pytest output.
  • Accepting noqa as a way to skip errors (#PyDev-814).
  • If there's a flake8: noqa in the first 3 lines of the file, don't analyze it (#PyDev-814).
  • Fixed issue where a closing peer character was skiped when it was actually not a matching closing peer (#PyDev-869).
  • Fixed issue where line indentation was not correct on a new line with multiple open parenthesis.

New in PyDev 6.1.0 (Nov 6, 2017)

  • Important PyDev now requires Java 8 and Eclipse 4.6 (Neon) onwards
  • PyDev 5.2.0 is the last release supporting Eclipse 4.5 (Mars).
  • Code Formatter:
  • The PyDev code formatter can now add/remove blank lines to comply with pep-8.
  • Added preference to skip blank lines formatting.
  • Editor:
  • Editor now tolerant against errors in the definitions of style ranges.
  • When in link mode (after a code completion with params for instance), properly skip closing parenthesis if already well balanced.
  • Fix logic error in editor preferences for disabling subword navigation (patch by Stuart Berg).
  • Others:
  • Using python -m 'pip' when unable to find pip executable in interpreter preferences (#PyDev-853).
  • PyDev set next statement action set no longer disables Debug action set (#PyDev-859).
  • It's possible to silence question about saving resources before a refactoring operation.
  • Add problem markers for python files that declare invalid encodings (patch by Mat Booth).
  • Other minor bugfixes.

New in PyDev 6.0.0 (Sep 19, 2017)

  • Important - PyDev now requires Java 8 and Eclipse 4.6 (Neon) onwards:
  • PyDev 5.2.0 is the last release supporting Eclipse 4.5 (Mars).
  • Interpreter configuration:
  • The list of packages installed in the interpreter is shown in the IDE (supports either pip or conda).
  • It's now possible to install/uninstall packages using either pip or conda directly from the IDE.
  • Provides a way to load variables if interpreter is from a conda environment (Load conda env vars before run configuration).
  • A default string substitution variable named PY is now created with the major and minor version of the created interpreter.
  • It's now possible to configure a project to always use a grammar compatible with the interpreter version (default for new projects -- #PyDev-846).
  • Editor:
  • Subword navigation is now available (and enabled by default -- can be customized at PyDev > Editor).
  • Changed default config for minimap (smaller and not showing elements -- can be customized at PyDev > Editor > Overview Ruler Minimap).
  • Code completion no longer active in comments in last line of editor (#PyDev-762).
  • Debugger:
  • Fix find_module signature (patch by James Blackburn).
  • Fix qt_loader to support PEP 302 correctly.
  • Fix in matplotlib_options from ipython (#PyDev-779).
  • When show all uppercase references is used as a filter, only digits shouldn't be filtered out in variables view (#PyDev-794).
  • PyLint:
  • Added setting to search PyLint installed in interpreter (#PyDev-811).
  • Unittest:
  • It's possible to edit a run configuration from dialog to select tests to run (Ctrl+F9) (patch by Robert Gomulka).
  • Test(s) name is shown in the run configuration (patch by Robert Gomulka -- #PyDev-840).
  • isort integration:
  • The modules that are known to be third party or system modules in the PyDev configuration are passed to isort.
  • Proper support for isort:skip and isort:skip_file.
  • Internal isort caches properly being cleared between invocations (fix for case where changes to config were not reflected in isort).
  • Others:
  • Fix to properly interrupt infinite loop in the Interactive Console (#PyDev-816).
  • Fix issue where user could do a drag n drop in system libs which could put an entry below another entry, which actually removed it from the config (#PyDev-821).
  • Fix where runfile was not available on interactive debugger when python-future is installed (#PyDev-845).
  • Fix NullPointerException on code-completion.
  • mutagen added to forced builtins by default (#PyDev-819).

New in PyDev 5.9.2 (Aug 17, 2017)

  • Important: PyDev now requires Java 8 and Eclipse 4.6 (Neon) onwards. PyDev 5.2.0 is the last release supporting Eclipse 4.5 (Mars)
  • Added support for having isort as the engine for import sorting
  • Fixed issue when parsing empty f-string
  • Debugger:
  • Some critical fixes related to issues in the latest debugger (#PyDev-837, #PyDev-838, #PyDev-817)

New in PyDev 5.9.0 (Aug 11, 2017)

  • Important: PyDev now requires Java 8 and Eclipse 4.6 (Neon) onwards. PyDev 5.2.0 is the last release supporting Eclipse 4.5 (Mars).
  • Fixed issue on text search with Lucene when the user had another plugin which also used lucene (#PyDev-826).
  • From this version onwards, PyDev is built with a proper certificate (previous versions used a self-signed certificate).
  • Google App Engine templates now working out of the box (patch by Mat Booth).
  • Optimization in editor highlighting when dealing with huge files.
  • Some bugfixes in pytest integration.
  • cv2 added to forced builtins by default for working with OpenCV.
  • Debugger:
  • Integrated speedups for Python 3.6 which use the new Python hook which allows the debugger to add breakpoints through bytecode manipulation.

New in PyDev 5.8.0 (Aug 7, 2017)

  • Important PyDev now requires Java 8 and Eclipse 4.6 (Neon) onwards.
  • PyDev 5.2.0 is the last release supporting Eclipse 4.5 (Mars).
  • Code Analysis:
  • Fixed issue getting existing PyLint markers.
  • There's now an Info and an Ignore level.
  • Debugger:
  • The debugger now provides hooks for clients and provides ways to extend the handling of custom types. See: https://github.com/fabioz/PyDev.Debugger/tree/master/pydevd_plugins/extensions (patch by Yuli Fiterman).
  • Fixed issue where the debugger could end up removing quotes on args. #PyDev-797
  • The debugger now works with IronPython again -- although note that IronPython 2.7.6 and 2.7.7 have a critical bug which prevents IronPython from working in PyDev: https://github.com/IronLanguages/main/issues/1663
  • Code Coverage:
  • Fixed issue getting code-coverage version. #PyDev-791
  • Properly works when running with pytest (provided that pytest-cov is installed).
  • Others:;
  • Update .yaml file for google app engine project templates (patch by JunjieW).
  • Upgraded Lucene to 6.1.0 (patch by Sopot Cela).
  • Update docstring from parameters (Ctrl+1 on def) properly considers sphinx with types. #PyDev-787
  • Code Completion: Properly finding __init__ from superclass in inherited classes. #PyDev-802
  • No longer showing icon to start interactive console in toolbar because Eclipse could end up creating multiple entries which were shown forever. #PyDev-708
  • Other minor bugfixes.

New in PyDev 5.7.0 (Aug 7, 2017)

  • Important PyDev now requires Java 8 and Eclipse 4.6 (Neon) onwards.
  • PyDev 5.2.0 is the last release supporting Eclipse 4.5 (Mars).
  • PyLint:
  • The PyLint integration is much improved.
  • Working along with the PyDev code-analysis.
  • If there's an equivalent code analysis error in PyLint and PyDev, the PyLint one is hidden.
  • Ctrl+1 on PyLint error line shows option to silent error in that line.
  • See: http://pydev.org/manual_adv_pylint.html for details.
  • Debugger:
  • Fixed issue when sorting which could lead to error comparing a value with None.
  • Fixed issue which prevented debugger from working with Jython due to the lack of sys._current_frames.
  • Testing Jython on CI.
  • Code Completion:
  • Properly unpacking assigns from a parameter to an instance with type documented in docstring. #PyDev-778
  • Others:
  • When assigning parameters to attributes (Ctrl+1 on function def), skip adding duplicate assignments.
  • When adding parameters to docstrings (Ctrl+1 on function def), it will now properly update an existing docstring, not only create one from scratch.
  • In Windows, when searching executables, priority is given to a python executable found in the PATH (as in Mac/Linux).
  • Fixed issue were space was wrongly removed in code formatter. #PyDev-784

New in PyDev 4.5.5 (Apr 9, 2016)

  • Code Completion:
  • namedtuple now recognized in code-completion.
  • Code completion now available for super() (#PyDev-592).
  • PyTest integration:
  • Files in tracebacks now clickable in latest pytest.
  • Skips not marked as errors in the latest pytest.
  • Parser:
  • async and await should also be valid as names in Python 3 grammar (#PyDev-593).
  • Additional Unpacking Generalizations from PEP 448 recognized (#PyDev-667).
  • Made clearer in the UI that Python 3 grammar should support Python 3.0 to Python 3.5.
  • Debugger:
  • tests package should no longer pollute name space (Removed tests directories from build: #PyDev-663).
  • Multiprocessing working properly under debugger (Celery Cannot Run in Debug Mode: #PyDev-662).
  • Others:
  • Introduce source features/plugins
  • Default test runner now works with Django >= 1.8 (#PyDev 614).

New in PyDev 4.5.4 (Feb 15, 2016)

  • Debugger:
  • Fixed critical issue, in which the main process was killed during the debugging when a subprocess exited when "Attach to subprocess automatically while debugging" was enabled (#PyDev 656).
  • Fixed issue which broke the action to get the referrers of some object in the debugger (right-click variable in debugger > get referrers).

New in PyDev 4.5.3 (Jan 26, 2016)

  • Debugger:
  • Fixed issue in set next statement (#PyDev 651).
  • pydevd.settrace was stopping inside the debugger and not in user code (#PyDev 648).
  • subprocess.Popen could crash when running non python executable (#PyDev 650).
  • PyUnit view:
  • The last pinned test suite appears as the first entry in the history.
  • More information is shown on the test run history.
  • A string representation of the test suite can be saved in the clipboard (last item in the test run history).
  • Indexing:
  • Fixed issue where the indexing and code-analysis could race with each other and one could become corrupt.

New in PyDev 4.5.1 (Jan 20, 2016)

  • Debugger:
  • Cython speedup modules are now available for the debugger (see performance improvements at: https://www.speedtin.com/reports/7_pydevd_cython).
  • It is considerably faster even without the speedup modules (see performance improvements at: https://www.speedtin.com/reports/8_pydevd_pure_python).
  • When debugging multiple processes the console wasn't being updated to the selected stack in the debug view.
  • Many bug-fixes.
  • Improved the search to always play safe and update the index so that the matches are always consistent (#PyDev-634).
  • Fixed issue renaming top-level module on refactoring.
  • Refactoring has option to rename variable to a standard case style.
  • Improved the parser that extracted the outline for global tokens to deal with async and consider declarations inside ifs.
  • Code completion of properties with @property no longer shows arguments parenthesis (#PyDev-453).
  • Preventing a freeze if some code-analysis takes too much time (#PyDev-636).
  • Ctrl+1 can be used to wrap/unwrap the contents of brackets (patch by yohell).

New in PyDev 4.0.0 (Apr 16, 2015)

  • Code Completion:
  • PyDev can now code-complete unpacking compound types (such as list(str), tuple(MyClass), dict(int:str), etc).
  • Code-completion now has a maximum amount of time to complete (which may be changed in the code-completion preferences).
  • Editor:
  • Bytes and Unicode literals now have different colors (note: by default the Unicode kept the same color used for the old 'Strings' configuration).
  • Mark occurrences is now also provided on some statements (such as return, continue, etc).
  • Others:
  • It's now possible to bind custom keybindings to help in passing custom commands to the interactive console (see: PyDev > Interactive Console > User Commands)
  • The bundled autopep8.py and pep8.py were upgraded.
  • Search for references (Ctrl+Shift+G) is faster (all processors available are used for the initial search).
  • Search page now has a 'whole word' option.
  • Improvements in the PyVmMonitor integration in MacOS and Linux to find the PyVmMonitor executable.
  • Fixed PyDev-Mylyn integration in the PyDev Package Explorer to work with the latest Mylyn.
  • Fixed issue doing code-completion for elements of a list (lst[0].) in the console. (PyDev-531)
  • py.test xfailed tests are no longer marked as 'Failed' in PyUnit view (PyDev-506)

New in PyDev 3.9.2 (Feb 6, 2015)

  • Debugger:
  • The debug view now has an interactive console (with history) attached to it by default (which may be toggled on/off). (PyDev-507)
  • Debugger no longer reopens a file when that file is already opened. (PyDev-456)
  • Handled issue when getting referrers for some object gave an error if it was found in a dict where the key is not a string.
  • When interactive console starts in debug session, a banner is no longer shown.
  • Stepping with #@DontTrace no longer returns through decorator call-site. (PyDev-526)
  • The default for tracing template render exceptions on Django is now false.
  • Interactive Console:
  • F2 to send contents from editor to console now considers backslash continuations. (PyDev-502)
  • Interactive Console interrupt now properly interrupts a sleep call (when possible). (PyDev-500)
  • PyDev interactive console now has a user-specified encoding (by default UTF-8). (PyDev-454)
  • Scroll the console on stdout / stderr output. (PyDev-504)
  • Moved interactive console initial commands to a separate preferences page.
  • Handling interrupted system call EINTR in the pydevconsole.py. (PyDev-534)
  • Fixed racing condition where the output of the console could appear as a user input. (PyDev-490)
  • Refactoring:
  • Fixed issue where indentation lost on rename module refactoring. (PyDev-498)
  • The rename modules refactoring wizard now provides a way to do a simple resource rename (to rename extensions).
  • Others
  • Converting filename from .pyx to .py doesn't loose indexing on the file anymore. (PyDev-525)
  • The Cython parser now properly scopes methods.
  • Pasting contents directly in the PyDev package explorer to create a file uses the proper delimiter.
  • Fixed deadlock in ImageCache when rendering debug completions from console. (PyDev-527)
  • Fixed deadlock on racing condition when rendering PyTextHover. (PyDev-523)
  • Tab settings were separated from the editor color settings and may now be persisted in the project/user settings.
  • Fixed surround with try..finally/except indentation on Ctrl+1 when some line has a comment which has a different indentation.

New in PyDev 3.9.1 (Jan 9, 2015)

  • Preferences:
  • PyDev preferences may now be saved and persisted for each project or in the user settings (not just in the workspace).
  • Currently Save actions, Code Formatter, Typing and Imports are supported (more to come in upcoming releases).
  • The same pages in the preferences are used to save settings to (multiple) projects or user settings.
  • Configuration files are saved in Yaml format and are meant to be saved in version control.
  • Editor:
  • The option to apply auto-formating was changed to apply any save actions in non-workspace files.
  • Editor icon improved for dark theme
  • When running the pep8 code analysis, the markers shown are no longer 1 character off.
  • Django:
  • Improved Django 1.7 support
  • Profiling:
  • Integration with PyVmMonitor (currently only available for backers of the effort).
  • A profiling view was created where the location of PyVmMonitor should be specified.
  • Just turning the option on will make all runs from that point on run with the selected profile backend enabled.
  • Debugger:
  • Connecting to subprocesses working in Python 3.4.
  • Attach to running process is now supported on Mac OS.
  • Others:
  • Unset VIRTUAL_ENV before running external Python to protect the sys.path
  • pytest: Expected failure is no longer marked as a failure.
  • pytest: The working dir is changed so that conftests are loaded properly (to workaround issue in pytest).
  • Fixed issue where an unused import would not be properly removed if it was not a from import.
  • Fixed exception when drawing minimap overview ruler.

New in PyDev 3.9.0 (Nov 12, 2014)

  • Vertical Indent Guide is now available (may be customized in PyDev > Editor > Vertical Indent Guide. PyDev-359).
  • Minimap
  • The horizontal scrollbar is shown by default (again). It's still possible to hide it in the Preferences > PyDev > Editor > Overview Ruler Minimap.
  • Fixed critical issue where the minimap could lead to a repaint recursion on some Linux versions (reproduced on Ubuntu 12. LiClipse-120).
  • The PYTHONPATH is now properly passed to PyLint when using an external executable (PyDev-475).
  • Fixed issue where breakpoints in other editors (i.e.: CDT) where wrongly being handled by PyDev (patch by Danny Yoo. PyDev-482).
  • Fixed issue doing code-completion for builtins in Jython (PyDev-457).
  • Interactive Console
  • When doing a code-completion with Ctrl+Space, let tab change the focus instead of doing the tab-enabled completion.
  • Output given from the backend could end up being editable (PyDev-465).
  • input() was including the prompt in the input string (PyDev-465).
  • Debugger console was outputting greeting message when it shouldn't (PyDev-464).
  • pep8: --exclude can now be used in pep8 parameters (patch by Sebastian Elsner. PyDev-466).
  • autopep8: end line delimiter is now being kept (patch by Ben Blank. PyDev-461).
  • Unittest integration: Making sure we don't import the unittest module before executing pytest (PyDev-455).
  • Unittest integration: Fix to use the proper encoding when passing stdout/stderr to the java side.
  • Fixed issue when debugging file without extension (when there was no default editor associated to the file name).
  • Debugger: getpass properly working with additional arguments (PyDev-460).

New in PyDev 3.8.0 (Sep 26, 2014)

  • Debugger - It's now possible to attach debugger to running process in Windows and Linux (open debug perspective > PyDev > Attach to Process)
  • pep8 upgraded to 1.5.7
  • Fixed issue in dialog shown when PyDev editor is opened which could lead to closing the IDE.
  • Selecting PyQT API version using sip.setapi no longer fails in debug mode (PyDev-452).
  • Code completion tries to get docstring definition from class before evaluating property (PyDev-412).
  • Internal error error when parsing file with wrong syntax: java.lang.ClassCastException for invalid dict (PyDev-411).
  • runfile was restored in pydevconsole (Ctrl+Alt+Enter is working again).
  • Variables and Expressions views working again when debugging interactive console (PyDev-446).
  • Pressing Shift to debug with Ctrl+F9 test runner now properly works in Linux (PyDev-444).
  • Fixed interpreter configuration when the interpreter prints something before actually running interpreterInfo.py (PyDev-448).
  • Fixed NullPointerException when debugging file without extension.

New in PyDev 3.7.0 (Aug 27, 2014)

  • Minimap:
  • Minimap is enabled by default
  • The minimap now shows content based on the outline
  • It's possible to customize the minimap selection color
  • Fixed issue where the background in the minimap could have a part with a different color until the image was fully redrawn
  • Scrollbars hidden by default
  • Editor:
  • Auto code-completion on all letter chars is enabled by default
  • Debugger:
  • Merged debugger code with the PyCharm fork
  • Fix the wrong signature of stackless.get_schedule_callback
  • Breakpoints work in Django templates (requires the LiClipse html/django editor to work)
  • Gevent debugging (must be enabled in the debugger preferences page)
  • Faster debugging when dealing with huge dicts/sets/lists/tuples
  • QThreads can be debugged (for remote debugging, 'import pydevd' must be done before any user code is executed for it to work)
  • Interactive Console:
  • Output is gotten asynchronously
  • It's possible to interrupt the console
  • Others:
  • Autopep8 now works with non ascii sources
  • More than 20 levels of indentation no longer causes ArrayOutOfBoundsException
  • Fixed some NullPointerExceptions
  • A bunch of other bugfixes

New in PyDev 3.6.0 (Jun 24, 2014)

  • pep8:
  • pep8.py was upgraded to the latest version.
  • Code formatting:
  • autopep8.py can now be used to code-format Python files (must be enabled in the code formatter preferences -- use '-a -a' for really aggressive mode).
  • Moved auto-save from the code formatter page to the save actions page (and created links to each other).
  • Fixed issue where a space was placed before a unary operator on an empty line.
  • The internal Jython was upgraded to 2.7.beta2 (some manual shrinking was applied to make it smaller).
  • On a run as unit-test (Ctrl+F9), if Shift is pressed when doing the launch, the unit-test will be launched in debug mode.
  • Shift+F9 can now be used to launch the current editor in debug mode (so, no more running a module with F9 to run it again later on in debug mode with F11).
  • Issue where the modules manager would miss the bultin modules was fixed (i.e.: Ctrl+1 to fix 'sys' undefined variable will show the 'import sys' fix).
  • Fixed corner case where filtering global tokens could miss some entries.
  • Fixed issue where relative import with more levels would not be found (on dotted imports).
  • It's now possible to debug UTF-8 files with BOM on Python 3.
  • Code completion proposals order was tweaked so that locals/globals appear first.
  • Trailing commas are no longer left when auto-removing unused imports (if that option is enabled in the preferences).
  • The manual now has instructions on how to use the Find Referrers while debugging.
  • The PyDev editor supports the new dark theme in Eclipse 4.4 (so, when it's chosen the editor colors are properly updated).
  • Code analysis: when a package imports itself it's no longer warned as an import not found.

New in PyDev 3.5.0 (May 22, 2014)

  • Important: PyDev requires Eclipse 3.8 or 4.3 onwards and Java 7! For older versions, keep using PyDev 2.x (use LiClipse for a PyDev standalone with all requirements bundled).
  • Adding plead for the current crowdfunding at http://tiny.cc/pydev-2014.
  • PyDev now has a new logo.
  • py.test:
  • Improved py.test test runner preferences page.
  • py.test integration improved to be less intrusive and work with xdist.
  • py.test protocol invocation now allows for module/session scoped fixtures to work properly.
  • Add bookmark and add task actions are shown in the ruler context menu (Ctrl+F10).
  • Code completion was not properly recognizing variables assigned to self inside an elif statement.
  • Django 1.7: Model.objects is manually patched inside PyDev to give proper code-completion results.
  • Debugger: hovering over private ('__' prefixed) variables now shows proper value.
  • Thread.isAlive() is no longer called to workaround debugger issue on Python 3.4.
  • Hyperlinking should not happen on spacing characters (I.e.: Ctrl+click on spaces).
  • Fixed NPE when interpreter is created with JDT and loaded afterwards without it.
  • Fixed issue where tokens cached information could end up being null after I/O.
  • Manually creating new run configuration no longer gives an exception (i.e.: configuration without associated project).
  • Out-of-sync error on PYTHONPATH change (patch by Danny Yoo)
  • There's an extension point for clients to resolve modules (patch by Danny Yoo).
  • Ctrl+Shift+G (find references) is now properly categorized.
  • Rename refactoring now validates files (read only) prior to refactoring (patch by Danny Yoo).
  • Not checking preferred settings when the PyDev plugin is started, but rather when a PyDev editor is opened.
  • Setting remote debugger socket to be properly reused.
  • The PyDev stdout/stderr redirector now properly uses PYTHONIOENCODING.

New in PyDev 3.4.0 (Mar 19, 2014)

  • Important: PyDev requires Eclipse 3.8 or 4.3 onwards and Java 7! For older versions, keep using PyDev 2.x (use LiClipse for a PyDev standalone with all requirements bundled).
  • Interactive Console:
  • Send a single line to the interactive console with F2 (akin to Ctrl+Alt+Enter but only for the current line).
  • Debugger:
  • Added support for debugging spawned subprocesses.
  • New Django launches no longer have -noreload to take advantage of that (but existing launches have to be manually edited -- or removed and recreated).
  • When terminating a process its subprocesses are also killed (avoiding django zombie processes).
  • In the debugger, locals are now also properly saved on PyPy (requires a newer version of PyPy too).
  • Remote Debugger: when specifying items in PATHS_FROM_ECLIPSE_TO_PYTHON pathnames are normalized.
  • Fixes to work with Jython 2.1 and Jython 2.2.1
  • Always setting PYTHONUNBUFFERED environment variable to 1.
  • The python default encoding is no longer changed (only PYTHONIOENCODING is used now and not sys.setdefaultencoding).
  • Minor improvements on get referrers.
  • General:
  • Cython: .pxd and .pxi files are properly supported.
  • Interpreter configuration: It's possible to reorder PYTHONPATH entries with drag and drop.
  • Fixed django interactive shell to work with newer versions of Django.
  • Rename working properly for files without extensions.
  • Fixed issue where specifying the type of a variable with a comment was not detected in the code-completion.
  • Fixed issue where we'd open a file as if it was an external file when it was actually a file in the workspace or inside a source folder.
  • PyDev Package Explorer: fixed issue where some errors would remain showing when they didn't exist anymore.
  • PyDev Package Explorer: fixed issue where items could change its order depending on decorations.
  • On a double-click on spaces, all the spaces are selected.
  • Test Runner:
  • Improved py.test integration: it's now possible to select which tests to run with Ctrl+F9 (even if not under a class).
  • No longer breaks if a file which was in a launch config is removed (still runs other tests in the launch).
  • After a test run finishes, if there are non-daemon threads running they're printed to the output.
  • Fixed UnicodeDecodeError when running unit-tests under python 2.x
  • Fixed issue on test discovery on Linux.
  • Sorting Imports:
  • Sort of imports no longer adds spaces at end of imports.
  • Sort of imports no longer passes the number of available columns specified.
  • It's now also possible to keep the names of 'from' imports sorted.

New in PyDev 3.3.3 (Jan 28, 2014)

  • Important: PyDev requires Eclipse 3.8 or 4.3 onwards and Java 7! For older versions, keep using PyDev 2.x (use LiClipse for a PyDev standalone with all requirements bundled).
  • Code Completion:
  • Compiled modules are now indexed and shown in the context-insensitive code-completion.
  • In an empty file, a code-completion request will show options related to creating modules (press Ctrl+Space twice to show only those templates).
  • Performance:
  • Building (indexing) of Python files is much faster.
  • Code completion does not get slown down by other analysis done in the background due to shell synchronization.
  • Interactive Console:
  • The interactive console now has tab-completion (so, tab can be used to show completions such as in IPython).
  • Debugger:
  • Locals are now properly changed in the debugger -- along with set next statement and auto-reloading this can make a debug session much more enjoyable!
  • Added a way to skip functions on a step-in on functions with #@DontTrace comments:
  • Makes it possible to skip a lot of boilerplate code on a debug session!
  • Can be enabled/disabled in the debugger preferences;
  • Ctrl+1 in a line with a method shows option to add #@DontTrace comment (if enabled in the preferences).
  • Debugging Stackless is much improved, especially for versions of Stackless released from 2014 onwards
  • Reload during a debug session is improved and more stable:
  • Only updates what it can in-place or adds new attributes;
  • Shows what's being patched in the console output;
  • New hooks are provided for clients which may want to extend the reload;
  • See: Auto Reload in Debugger for more details.
  • General:
  • Compiled modules are now indexed, so, fix import with Ctrl+1 now works with itertools, PyQt and other 'forced builtins'.
  • When diffing a Python file, the PyDev comparison (with proper syntax highlighting) is now the default.
  • When finding a definition in a .pyd file, if there's a related .pyx in the same location, it's opened.
  • Running unit-tests will not try to import files that are in folders that don't have an __init__.py file.
  • Alt+Shift+O can be used to toggle mark occurrences.
  • Ctrl+3 not bound by default anymore on PyDev so that it does not conflict with the Eclipse Ctrl+3 (Ctrl+/ can be used instead).
  • Fixed recursion issue when finding file in pydev package explorer.
  • When configuring the interpreter, links are not followed when resolving entries for the PYTHONPATH.
  • It's possible to launch a directory containing a __main__.py file executable.
  • Fixed issues when creating django project without any existing project in the workspace.
  • Fixed deadlock on code-completion.
  • pycache__ folders are hidden by default.
  • Organize imports:
  • When saving a file, if automatically organizing imports, don't remove unused imports even if that option is checked.
  • When saving a file, if automatically organizing imports, and nothing changes, don't change the buffer (so, no undo command is created).
  • NoMove can be used in an import so that the import organizer doesn't mess with it.
  • Refactoring:
  • Fixed error when moving resource in PYTHONPATH to a dir out of the PYTHONPATH.
  • On a search make sure we search only python files, not dlls (which could give OutOfMemory errors and make the search considerably slower).
  • Multiple fixes on the rename module refactoring.

New in PyDev 3.2.0 (Dec 30, 2013)

  • Important: PyDev requires Eclipse 3.8 or 4.3 onwards and Java 7! For older versions, keep using PyDev 2.x.
  • General:
  • Added option to sort imports on save.
  • Showing dialog suggesting user to customize settings in Eclipse which are more suitable for PyDev.
  • Memory improvements on situations where an OutOfMemoryError could happen.
  • Search references (Ctrl+Shift+G) when initial is on external works (for matches in workspace).
  • Rename refactoring:
  • Added option to rename module without updating references.
  • Bugfixes.
  • Performance:
  • Code completion: Builtins gotten from a shell are now cached for subsequent requests.
  • Doing a full build (reindex) is faster.
  • Debugger:
  • Improvements on stackless integration.
  • Providing a view which shows the current caught exception.
  • Providing way to ignore current caught exception.
  • Providing option to show progress on taskbar when breakpoint is hit to get the users attention (windows 7).
  • Fixed issue in while getting referrers when getting __dict__ and having an exception.

New in PyDev 3.1.0 (Dec 13, 2013)

  • Important: PyDev requires Eclipse 3.8 or 4.3 onwards and Java 7! For older versions, keep using PyDev 2.x.
  • Refactoring:
  • It's now possible to rename a module (using F2 or drag and drop in the pydev package explorer).
  • Multiple improvements on the rename refactoring.
  • Debugger:
  • Automatic code reloading on the debugger (based on xreload).
  • When a file is changed and a debug session is on, PyDev will automatically reload it (based on xreload).
  • Get referrers on debug
  • Right-click expression or variable in debugger and select 'Get Referrers'
  • Note: may not work on some Python variants as it needs access to the gc module.
  • Stackless python is now supported in the debugger, showing all the suspended tasklets in the stack view.
  • Automatically force focus to Eclipse on breakpoint hit (Enable in prefereces > pydev > debug).
  • The remote debugger can be left 'always on' (Enable in prefereces > pydev > debug).
  • If there's an exception while evaluating a conditional breakpoint the thread is suspended and the issue reported.
  • Option to skip caught exceptions thrown and handled in the same context.
  • A comment with @IgnoreException can be added to lines where an exception is thrown to have that exception ignored by the debugger when caught exceptions support is turned on.
  • Improved visualization of frame objects.
  • Bug-fixes on Jython debugging.
  • Unittest:
  • Django: The default PyDev unittest runner can now run Django tests properly
  • Selecting a unit-test method in the editor and right-click > run as unit-test will run only the selected unit-test.
  • Ctrl+F9 with test selected will pre-select only that test to run in unit-test.
  • General:
  • Improvements on search for references (Ctrl+Shift+G).
  • Fixed some racing conditions related to the plugin startup.
  • Organize imports has option to add from imports before other imports.
  • Improved connection to shell that does code-completion.
  • Properly supporting creation of shell inside a Jython VM in Eclipse.

New in PyDev 3.0 (Nov 6, 2013)

  • From now on, PyDev requires Eclipse 3.7 or 4.3 onwards and Java 7! For older versions, keep using PyDev 2.x.
  • Interpreter is now kept up to date with changes to the interpreter, so, pip-installing packages will automatically update internal caches without requiring a manual step.
  • Fixed issue connecting to shell for code-completion (which could halt the IDE).
  • Interactive Console
  • IPython 1.0 is now supported:
  • Computational Crystallography Toolbox (CCTBX: http://cctbx.sourceforge.net/) can now be used with PyDev.
  • Debug support in interactive console (must be enabled in preferences).
  • User Module Deleter (UMD): forcefully reloads user-loaded modules when using runfile on interactive console (must be enabled in preferences).
  • GUI event loop integration: more backends are now supported and can be configured in the preferences.
  • gui provides customization for the gui event loop integration (i.e.: %gui wx enables wxPython integration).
  • edit on IPython will open the file in the PyDev editor.
  • History of commands is now saved to a persistent file.
  • Loading of history is faster.
  • Interpreter configuration:
  • Interpreter configuration quick auto-config: automatically finds a Python installed and configures it.
  • Interpreter configuration advanced auto-config: searches for multiple Python installations in the computer and allows selecting one to configure.
  • Source folders (PYTHONPATH) are kept updated on renames and moves in the PyDev package explorer.
  • Grammar 3.x accepts u'str':
  • Fixed project configuration ${PROJECT_DIR_NAME} variable to point to dir name inside Eclipse and not the folder name in filesystem (this could make PyDev miss folders in the project PYTHONPATH).
  • Debugger:
  • Breakpoints working on files with unicode chars.
  • patches:
  • Variables can be pretty-printed with right-click > pretty print.
  • Improved handling for numpy.ndarrays.
  • And as usual, many other bugfixes!

New in PyDev 2.8.1 (Jul 26, 2013)

  • This release was done just to back-up the change related to Gtk event loop which had some issues, so, the UI event loop will only work with PyQt4 for now.

New in PyDev 2.8.0 (Jul 26, 2013)

  • Type Inference now works with docstrings (Sphinx or Epydoc). See: Type hinting with docstrings
  • Fixed debugger to work on Google App Engine
  • Interactive console supports running with the Qt and Gtk event loops
  • Multiple main modules/packages may be selected in the unittest run configuration
  • Properly handling unittest errors caused by setUpClass/setUpModule exceptions
  • It's possible to select the Working Set configuration in the New PyDev Project wizard
  • It's possible to specify PyLint settings per project by passing --rcfile=.pylintrc (it's now run relative to the project directory)
  • PyLint now accepts an executable so that it does not have to rely on the configured interpreter.
  • Fixed OutOfMemoryError when large file was found in the workspace.
  • Editor startup is now faster due to improvements in Jython scripts.
  • Improved the way that the interpreter location is shown on the pydev package explorer.
  • PyDev Package Explorer icon no longer missing when top level elements is set to Working Sets
  • Other minor bugfixes

New in PyDev 2.4.0 (Jul 10, 2012)

  • PyDev is now faster and uses less memory (many performance and memory improvements were done)!
  • Others:
  • Organize imports: Fixed issue where other statements in a commit line got lost (now such a line is ignored).
  • PyDev Package Explorer: closed project no longer remains with old icons.
  • Fixed deadlock when setting project as Django.
  • Fixed issue in code formatting *args on lambda statement.
  • TODO tags: only searched now in a string/comment partition.
  • Fixed issue when saving empty document (bad location on code-formatter).
  • Fixed issue removing comments from document.
  • Applied patch for internal Jython 2.2.1 to fix list.sort (http://bugs.jython.org/issue1835099).
  • Fixed resolution of template variable prev_class_or_method and next_class_or_method.

New in PyDev 2.3.0 (Jul 10, 2012)

  • Pep8.py integrated (must be enabled in PyDev > Editor > Code Analysis > pep8.py).
  • Faster PyDev startup (internal Jython upgraded to version 2.2.1 -- and also optimized for PyDev).
  • Action to select/deselect scope (Shift+Alt+Up/Down).
  • Fix: cache issue where the PYTHONPATH in memory became different from the PYTHONPATH configured for a project.
  • Fix: OutOfMemoryError when dealing with PyOpenGL.
  • Fix: deadlock (could occur in a race condition when importing a project with an existing Python configuration).
  • Fix: code-completion integration issue with IPython 011 (patch from jonahkichwacoders).
  • Fix: annotation could remain in editor after removing a marker.
  • Fix: BadLocationException on extract local refactoring.

New in PyDev 2.2.4 (Jul 10, 2012)

  • Cython:
  • Cython is now supported in PyDev (.pyx files may be opened with the PyDev editor).
  • Globals Token Browser (Ctrl+Shift+T):
  • Packages/Modules can now be reached through the globals browser (so, __init__.py files can now be easily gotten through the package they represent)
  • Handling external files:
  • External libraries configured in a project appearing in the PyDev Package Explorer
  • Show in > PyDev Package Explorer working for files that are under the interpreter or external libraries.
  • Show in > PyDev Package Explorer working for files inside .zip archives.
  • External files that were opened when Eclipse is closed are properly reopened.
  • Editor:
  • New option in the code-formatter to only apply code-formatting on changed lines on save.
  • from __future__ import now properly appears as first even if grouping is enabled.
  • it's now possible to have a minimap of the code in the overview ruler (enable in preferences > PyDev > Editor > Overview Ruler Minimap).
  • Unittest runner:
  • exc_clear() no longer called if it's not available.
  • Fixed issue where class tearDown was executed twice.
  • Debugger:
  • It's now possible to enable/disable stepping into properties while in the debugger. Menu: Run > Disable step into properties (patch by Hussain Bohra)
  • Show in outline view activated in debug perspective (patch by Hussain Bohra)
  • Watch expressions can be properly expanded in the watch view (patch by Hussain Bohra)
  • Breakpoints in external files are properly shown.
  • Remote debugger: starting the remote debugger no longer shows a launch configuration
  • Remote debugger: when the server is stopped, the server socket is properly closed
  • Minors:
  • Fixed issue in rename (Alt+Shift+R) / find references (Ctrl+Shift+G) on top level module variables.
  • Fixed issue where create class/method/field action was not ok because of comment.
  • Fixed issue where doing create class/method/field action on file with tabs ended up adding spaces.

New in PyDev 2.2.3 (Jul 10, 2012)

  • Performance improvements
  • Major: Fixed critical issue when dealing with zip files.
  • Added option to create method whenever a field would be created in quick fixes (and vice-versa), to properly deal with functional programming styles.
  • Fixed issue where PyDev was changing the image from another plugin in the Project Explorer (i.e.: removing error decorations from JSP).
  • Fixed issue: if the django models was opened in PyDev, the 'objects' object was not found in the code analysis.
  • Test runner no longer leaves exception visible.
  • Fixed issue on Py3: Relative imports are only relative if they have a leading dot (otherwise it always goes to the absolute).
  • Default is now set to create project with the projects itself as the source folder.
  • Handling deletion of .class files.
  • Fixed issue where loading class InterpreterInfo in AdditionalSystemInterpreterInfo.getPersistingFolder ended up raising a BundleStatusException in the initialization.
  • Fixed some code formatting issues

New in PyDev 2.2.1 (Jul 15, 2011)

  • Quick-outline:
  • Parent methods may be shown with a 2nd Ctrl+O.
  • The initial node is selected with the current location in the file.
  • Extract local refactoring:
  • Option to replace duplicates.
  • Fixed issue where wrong grammar could be used.
  • Others:
  • Improved handling of Ctrl+Shift+T so that no keybinding conflict takes place (now it'll be only active on the PyDev views/editor).
  • PyLint markers always removed on a project clean.
  • If the standard library source files are not found, more options are presented.
  • If the completion popup is focused and shift is pressed on a context insensitive completion, a local import is done.
  • Fixed issue where a local import wasn't being added to the correct location.
  • Fixed error message in debugger when there was no caught/uncaught exception set in an empty workspace.
  • Performance improvements on hierarchy view.
  • Django commands may be deleted on dialog with backspace.

New in PyDev 2.2 (Jul 15, 2011)

  • Eclipse 3.7:
  • Eclipse 3.7 (Indigo) is now supported.
  • Break on Exceptions:
  • It's now possible to break on caught exceptions in the debugger.
  • There's an UI to break on caught or uncaught exceptions (menu: Run > Manage Python Exception Breakpoints).
  • Hierarchy view:
  • UI improved (now only uses SWT -- access through F4 with the cursor over a class).
  • PyPy:
  • PyDev now supports PyPy (can be configured as a regular Python interpreter).
  • Django:
  • Django configuration in project properties page (improved UI for configuration of the django manage.py and django settings module).
  • Improved support for debugging Django with autoreload. Details at: Django remote debugging with auto-reload.
  • Code analysis:
  • Fixed issue where a resolution of a token did not properly consider a try..except ImportError (always went for the first match).
  • Fixed issue with relative import with wildcards.
  • Fixed issue with relative import with alias.
  • Fixed issue where binary files would be wrongly parsed (ended up generating errors in the error log).
  • Code completion:
  • Improved sorting of proposals (__*__ come at last)
  • Others:
  • Improved ctrl+1 quick fix with local import.
  • Fixed issue running with py.test.
  • PyDev test runner working properly with unittest2.
  • Fixed compatibility issue with eclipse 3.2.
  • No longer sorting libraries when adding interpreter/added option to select all not in workspace.
  • Fixed deadlock in the debugger when dealing with multiple threads.
  • Fixed debugger issue (dictionary changing size during thread creation/removal on python 3.x).
  • Note: Java 1.4 is no longer supported (at least Java 5 is required now).

New in PyDev 2.1 (Jul 15, 2011)

  • Code Analysis:
  • By default, only the currently opened editor will be analyzed (much shorter build times).
  • Added action to force the analysis on a given folder or file.
  • Showing error markers for PyDev elements in the tree.
  • New option to remove error markers when the editor is closed (default).
  • Editor:
  • Override method completions (Ctrl+Space after a 'def ') .
  • Completions starting with '_' now have lower priority.
  • Fixed major issue when replacing markers which could make errors appear when they shouldn't appear anymore
  • Auto-linking on close parents is now optional (and disabled by default).
  • Code coverage:
  • No longer looses the selection on a refresh.
  • Fixed issue where coverage was not working properly when running with multiple processes.
  • Added orientation options
  • PyUnit:
  • Added feature to relaunch the last launch when file changes (with option to relaunch only errors).
  • setUpClass was not called when running with the pydev test runner
  • F12 makes the editor active even if there's a tooltip active in the PyUnit view.
  • The PyUnit tooltip is now properly restoring the focus of the previous active control.
  • Added orientation options
  • Others:
  • Upon starting up PyDev, the interpreter information is validated for changes.
  • Improved the django templates code-completion to better deal with the html/css counterparts.
  • When the interpreter is not configured, detect it and take the proper actions to ask the user to configure it.
  • No longer using StyleRange.data as it's not available for older versions of Eclipse.
  • Fixed issue where references to modules could become obsolete in memory.
  • When a source folder is added/removed, the package explorer will properly update to remove/add errors.
  • Fixed issue where code-formatting could be really slow on unbalanced parenthesis on a big file.
  • Fixed error accessing __builtins__.__import__ when running in the debugger.
  • Fixed issue with wrong code-formatting with numbers.
  • The assist to create a docstring will remove the pass right after it (if there's one).
  • The path of the file that holds the preferences no longer has the same number of chars as the path for the interpreter.
  • Fixed some TDD actions
  • Fixed issue where project references were not being gotten recursively as they should.
  • Fixed dedent issues on else and elif.
  • Fixed issue with __init__.py not showing the parent package name (when set in the preferences to do so).
  • sys._getframe shouldn't be needed when running unit-tests in IronPython.
  • Showing interpreter information when a given project is also a source folder.

New in PyDev 2.0 (Jul 15, 2011)

  • Major:
  • TDD actions on Ctrl+1
  • Improved code coverage support
  • PyUnit:
  • It's possible to pin a test run and restore it later.
  • Errors that occur while importing modules are properly shown.
  • It's possible to override the test runner configurations for a given launch.
  • The Nose test runner works properly when there's an error in a fixture.
  • Editor:
  • When there's some text selected and ' or " is entered, the content is converted to a string.
  • Handling literals with ui linking.
  • Creating ui link in the editor after entering (,[,{ when it is auto-closed.
  • On hover, when there's a name defined in another module, the statement containing the name is shown.
  • It's possible to launch an editor with a file not in the workspace (a project must be selected in this case)
  • If a line starts with __version__ no import is added above it.
  • When doing assign to attributes, if there's a pass in the line the assign will be added, it's removed.
  • When Ctrl+1 is used to add an import on an unresolved variable, if Ctrl is pressed on apply a local import is done.
  • Interactive console (options):
  • Focus on creation
  • When created the selection may be directly sent to the console
  • The DJANGO_SETTINGS_MODULE environment var is passed when making a launch.
  • The outline page now has a filter.
  • The input() method properly works in Python 3.2 (last "\r" no longer shown).
  • LOTS of other adjustments and bug fixes

New in PyDev 1.6.5 (Jul 15, 2011)

  • Syntax highlighting now has options to have {}, [] and () as well as operators in different colors
  • Code generation for classes and methods:
  • Note that this is an initial implementation of the idea, aimed as those that use a TDD (Test Driven Development) approach, so, one can create the test first and generate the classes/methods later on from using shortcuts or quick-fixes (which is something that those using JDT -- Java Development Tools -- in Eclipse should be already familiar with). This feature should be already usable on a number of situations but it's still far from being 100% complete.
  • Alt+Shift+S C can be used to create a class for the currently selected token
  • Alt+Shift+S M can be used to create a method for the currently selected token
  • Ctrl+1 has as a quick fix for creating a class or method
  • Debugger:
  • When discovering encoding on Python 3.x, the file is opened as binary
  • Remote debugger (pydevd.settrace()) properly synchronized
  • Fixed debugger issue on interpreter shutdown on Python 2.7
  • Bug fixes:
  • Fixed issue when doing code-completion on a line that started with some token that started with 'import'. e.g.: import_foo = a
  • Fixed import when running unittest with coverage
  • Fixed extract local (could extract to wrong location)
  • Fixed NPE when requesting print of arguments in the context-information tooltips
  • Fixed AttributeError with pydevconsole on Python 3.x

New in PyDev 1.6.4 (Jul 15, 2011)

  • Improved Unittest integration:
  • Created a PyUnit view (with a red/green bar) which can be used to see the results of tests and relaunching them
  • The default test runner now allows parallel execution (distributing tests by module or individually)
  • The nose and py.test test runners are also supported now
  • Major Bug Fixed: existing interpreters could be corrupted when adding a new one
  • Fixed AttributeError on console startup in Python 3.0
  • Added theming and automatic sash orientation to the PyDev code coverage view
  • Patch by frigo7: When creating a new remote debugger target, the terminated ones are removed
  • Patch by frigo7: compare editor properly showing the revision information and fixed broken shortcuts (e.g.: ctrl+z)
  • Read-only files no longer editable in PyDev actions
  • Fixed issue of remaining \r on python 3.0 on input()
  • The PyDev parser is now properly dealing with bom (utf-8)
  • Assign to local: if method starts with '_', the leading '_' is not added to the local

New in PyDev 1.6.3 (Jul 15, 2011)

  • Improved editor preferences page when using Aptana themes
  • Icons updated to work better with dark backgrounds
  • Handling code-completion for keywords (e.g.: a method definition with a parameter 'call' will have a 'call=' completion on the caller)
  • Showing a better tooltip for parameters
  • No longer marking the Django templates editor as the default editor for css nor html (it can be restored at window > preferences > general > editors > file associations)
  • Globals Browser:
  • Improved message in globals browser to better explan its features:
  • Exact match with a whitespace in the end
  • CamelCase matching (so, entering only TC would be enough to find a class named TestCase)
  • Dotted names may be used to filter through the packages (so, dj.ut.TC would find a TestCase class defined in the django.utils package)
  • Fix: When a space is added in the end, an exact match is done
  • Fix: No longer restoring items that don't exist anymore
  • Bug Fixes:
  • Fixed issue on dict and set comprehension code analysis
  • Syntax errors on hover in a debug session not shown
  • Block preferences page validation before save
  • Improved django wizard configuration a bit to cover cases where the user does not have django installed or tries to add 'django' as the project name
  • The example code in the PyDev editor preferences is no longer editable
  • 2to3 only added in the context menu of projects with the PyDev nature
  • If a debug session is terminated, no message saying that the variable can't be resolved in the hover is shown if the debug target is still selected
  • Fixed path issues in sqlite3 path in django project creation
  • Fixed issue where quotes could end up in the execfile when they should not be there
  • Fixed issue where shift right did not work properly because the indent prefixes were not properly set when the tab preference changed

New in PyDev 1.6.2 (Jul 15, 2011)

  • PyDev is now also distributed with Aptana Studio 3, so it can be gotten in a version that doesn't require installing it as a separate plugin. Get it at: http://aptana.com/products/studio3/download
  • Django templates editor (requires Aptana Studio 3)
  • Supports HTML files with HTML, CSS and Javascript
  • Supports CSS files
  • Outline page
  • Code-completion for Django templates based on templates (window > preferences > PyDev > django templates editor > templates)
  • Code-completion for HTML, CSS and Javascript
  • Syntax highlighting based on the templates with the 'Django tags' context
  • Colors based on the Aptana themes
  • Python 2.7 grammar supported
  • Fixed indexing issue on contents getting getting stale in the cache
  • Fixed issue where the partitioning became wrong when entering a multiline string
  • Colors in the compare editor are now correct when using the Aptana themes
  • Extract method refactoring now works with "import" and "from ... import" inside a method
  • Source folders now appear before other folders
  • Fixed False positive on code analysis when using the property decorator

New in PyDev 1.6.1 (Jul 15, 2011)

  • Debugger:
  • Critical Fix: issue that prevented the debugger from working with Python 3 solved
  • Improving socket connection handling
  • Launching:
  • Restart last launch and terminate all launches actions created
  • Restart last: Ctrl+Shift+F9 (in PyDev editor)
  • Terminate all: Ctrl+Alt+F9 (in PyDev editor)
  • Buttons were also added to PyDev consoles
  • Utilities:
  • 2to3: Right-clicking a folder or file will show an option in the PyDev menu to convert from python 2 to python 3 (note that lib2to3 must available in the python installation).
  • Defining execfile in a Python 3 interactive console so that Ctrl+Alt+Enter works.
  • Fixed issue in the code style preferences page (switched value shown).
  • com.ziclix.python.sql added to the forced builtins in a Jython install by default.
  • Improved some icons when on a dark theme

New in PyDev 1.6.0 (Jul 15, 2011)

  • Debugger:
  • Code-completion added to the debug console
  • Entries in the debug console are evaluated on a line-by-line basis (previously an empty line was needed)
  • Threads started with thread.start_new_thread are now properly traced in the debugger
  • Added method -- pydevd.set_pm_excepthook() -- which clients may use to debug uncaught exceptions
  • Printing exception when unable to connect in the debugger
  • General:
  • Interactive console may be created using the eclipse vm (which may be used for experimenting with Eclipse)
  • Apply patch working (Fixed NPE when opening compare editor in a dialog)
  • Added compatibility to Aptana Studio 3 (Beta) -- release from July 12th