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