Thonny and MicroPython

Thonny 2.1 had a plug-in called thonny-microbit, which added possibility to program BBC micro:bit.

Thonny 2.2 has plug-ins which add more general support for various MicroPython devices – see https://bitbucket.org/plas/thonny-micropython for more info.

NB! You need at least Thonny 2.2b3 to test it!

Version 2.2.0 beta

Version 2.2 contains several new features and some bug-fixes (listed below). This post will be updated during the beta phase to let you know about the progress.

See Thonnys Bitbucket downloads page for download links.

Stepping back in time

One of the new features in 2.2 is possibility to step back in time during debugging. This comes in handy when you are debugging with big steps (step over) and accidentally step over an interesting part in code. Instead of starting from scratch again, you can now issue the command “Run -> Step back” which brings the visual represetation of the program back to the state as it was before last debugger command. From there you can choose to continue with small steps (step into). You can make as many steps back as required and you can go back and forward as many times as you wish.

Stepping back was implemented by Alar Leemet as part of his Bachelor thesis. Please give him feedback about this feature!

2.2.0b4 (2018-06-05)

  • FIXED: Couldn’t open menus with None backend

2.2.0b3 (2018-06-05)

  • FIXED #425: Too big automatic scaling
  • FIXED #427: Can’t run files with spaces in filename
  • FIXED: Fixed a bug when debugging and encountering an exception (by Alar Leemet)
  • ENHANCEMENT: Show indicator about stepping in the past in the text of editor tabs
  • ENHANCEMENT: Added Thonny version guards for installing plug-ins
  • EXPERIMENTAL: Preliminary support for running system commands in Thonny shell (eg. !ls or !dir)
  • TECHNICAL: thonny.exe in Windows bundle is now signed
  • TECHNICAL: Delay starting of Runner until UI is shown
  • TECHNICAL: Various enhancements to support MicroPython plug-ins (https://bitbucket.org/plas/thonny-micropython)

2.2.0b2 (2018-05-04)

  • FIXED: Options dialog crashes when Variables view hasn’t been created yet

2.2.0b1 (2018-05-04)

  • NEW: Added support for stepping back in time during debugging (Run => Step back) by Alar Leemet. If you accidentally stepped over an interesting part of code, then now you can step back and step into.
  • NEW: Added support for UI and syntax theming (https://bitbucket.org/plas/thonny/wiki/Theming)
  • NEW: Added several built-in dark themes
  • NEW: Added support for display scaling / high-DPI screens (Tools => Options => General)
  • NEW: Added closing buttons to the tabs of all views
  • NEW: Added support for (CPython) back-end plug-ins (https://bitbucket.org/plas/thonny/wiki/Plugins)
  • NEW: Current editor line can be highlighted (Tools => Options => Editor)
  • NEW: Thonny can be started in simple mode (https://bitbucket.org/plas/thonny/wiki/Modes)
  • NEW: Variables view now allows viewing variables from other modules beside __main__ (Tools => Options => General)
  • CHANGED: Dropped support for Python 3.4 (both for front-end and back-end)
  • CHANGED: Reorganized back-end configuration (“Tools => Options => Back-end” instead of “Tools => Options => Interpreter”)
  • CHANGED: The roles of Interrupt and Stop commands are now more clear: Stop always restarts the backend and Interrupt only tries to interrupt
  • CHANGED: Editing the running program doesn’t interrupt it anymore.
  • CHANGED: Object inspector now shows attributes and object overview on different tabs
  • CHANGED: Can’t set thonny.THONNY_USER_DIR directly in customize.py anymore (https://bitbucket.org/plas/thonny/wiki/DeploymentOptions)
  • CHANGED: For plug-in writers: Unified early and late plug-ins (load_early_plugin should be renamed to load_plugin)
  • CHANGED: For plug-in writers: get_workbench and get_runner moved from thonny.globals to thonny
  • FIXED #358: Hide the stacktrace of SystemExit
  • FIXED #368: “Open system shell” doesn’t work in Xfce (fix by Miro Hrončok)
  • FIXED #370: Made zooming with Ctrl++ / Ctrl+- work on the numpad on Linux
  • FIXED #372: Now it’s possible to specify a link as backend interpreter (fix by Miro Hrončok)
  • FIXED #396: exec causes range marker to crash
  • FIXED #403: Window width may become negative
  • TECHNICAL: Changed the location and sharing of backend.py, common.py, ast_utils.py
  • TECHNICAL: Cleaner approach for sharing jedi with the back-end
  • TECHNICAL: Package manager now uses pypi.org instead of pypi.python.org
  • TECHNICAL: Several changes in Runner and BackendProxy interface
  • TECHNICAL: Saving an editor now forces writing to disk (see https://learn.adafruit.com/adafruit-circuit-playground-express/creating-and-editing-code#1-use-an-editor-that-writes-out-the-file-completely-when-you-save-it)

Version 2.1.17

This version fixes a bug in package manager (triggered by the release of pip 9.0.2).

See the homepage for download links, and wiki for installation instructions.

Version 2.1.16

Versions 2.1.14 - 2.1.16 were created to support Thonny packaging on Linux and don’t introduce anything new in the main code.

2.1.16 was actually released in November, but today we are releasing Thonny+Python bundles for it.

Changes:

  • Bundled Python has been upgraded to 3.6.4
  • Bundled OpenSSL for Linux bundles been upgraded to 1.1.0g
  • Windows installer has new signer (University of Tartu Institute of Computer Science). This means Windows Smart Screen filter may present warnings about its trustworthiness for some time.

NB! The certificate for older Windows installers (2.1.13 and older) will expire on 26th January.

See the homepage for download links, and wiki for installation instructions.

Version 2.1.13

Version 2.1.13 introduces a workaround for an intermittent issue (#351). Because of this, features “Highlight local variables” and “Highlight matching names” are off by default. You can turn them on from Tools => Options => Editor.

See the homepage for download links, and wiki for installation instructions.

Version 2.1.12

Version 2.1.12 fixes following bugs / enhancement requests:

  • FIXED #303: Allow specifying same interpreter for backend as frontend uses
  • FIXED #304: Allow specifying backend interpreter by relative path
  • FIXED #312: Closing unsaved tab causes error
  • FIXED #319: Linux install script needs quoting around the path(s)
  • FIXED #320: Install gets recursive if trying to install within extracted tarball
  • FIXED #321: Linux installer fails if invoked with relative, local user path
  • FIXED #334: init.tcl not found (Better control over back-end environment variables)
  • FIXED #343: Thonny now also works with jedi 0.11

Some of these fixes allow for more flexible deployment options (eg. central installation for the classroom).

See the homepage for download links, and wiki for installation instructions.

Version 2.1.11

Version 2.1.11 fixes following bugs:

  • FIXED #31: Infinite print loop freezes Thonny
  • FIXED #285: Previous used interpreters are not shown in options dialog
  • FIXED #296: Make it more explicit that pip GUI search box needs exact package name (shown in bold after failed “search”)
  • FIXED #298: Python crashes keep backend hanging
  • FIXED #305: Variables table doesn’t get updated, if it’s blocked by another view

See the homepage for download links.

Version 2.1.10

Version 2.1.10 fixes some smaller annoyances and provides more flexibility in classroom settings.

  • NEW: More flexibility for classroom setups (see https://bitbucket.org/plas/thonny/wiki/ClassroomSetup)
  • FIXED #276: Copy with Ctrl+C causes bell
  • FIXED #277: Triple-quoted strings keep keyword coloring
  • FIXED #278: Paste in shell causes bell
  • FIXED #281: Wrong unindentation with SHIFT+TAB when last line does not end with linebreak
  • FIXED #283: backend.log path doesn’t take THONNY_USER_DIR into account
  • FIXED #284: Internal error when saving to a read-only folder/file (now proposes to choose another name)

See the homepage for download links.

Version 2.1.9

Version 2.1.9 fixes couple of bugs including a nasty memory leak. Upgrade is recommended!

  • FIXED #273: Memory leak in editor margin because of undo log
  • FIXED #275: Updating line numbers is very inefficient
  • FIXED: Pasted text occasionally was hidden below bottom edge of the editor
  • FIXED: sys.exit() didn’t really close the backend

See the homepage for download links.

Version 2.1.8

Version 2.1.8 is mostly a bugfix release with some enhancements.

See the changelog for more details.