Pythonista Adds Smarter Code Completion, New Modules And More
by Joe White
June 16, 2014
Ole Zorn, the developer behind Editorial for iOS, has published an update for Pythonista that brings the popular application up to version 1.5. The update arrives, however, following a complaint from the App Store approval team that has resulted in the removal of one of the app's features.
Zorn has explained the matter in detail at his personal website, but essentially after submitting a minor update for Editorial the developer was informed by Apple that the update would be rejected, and that his other app, Pythonista, would be removed from the App Store because it didn't comply with Cupertino's guidelines.
The problem, which has been discussed in-depth elsewhere, was Pythonista's "Open In" feature; this allowed users to "import executable code from external sources," according to Zorn, and it arrived in Pythonista 1.4 (which itself launched on the App Store last November).
The feature has been removed in Pythonista 1.5, but fortunately for users a slew of improvements have also been added in the update (which Zorn was looking to release later in the year). As outlined in Pythonista's release notes, these include:
There are also a bunch of new Python enhancements and modules which have appeared in Pythonista 1.5:
- Xcode export is currently not available from within the app. I’m working on a way to create Xcode projects from Pythonista scripts on a Mac instead; details will be available on the Pythonista website soon.
- Smarter code completion – in situations that the old completion system couldn’t handle, Pythonista is now using the jedi library. This applies to things like instance members, where the type of the object can be inferred. The extended code completion can be somewhat slow, depending on your device generation and the size of modules you’re working with. It should get faster over time, as caches are built, and the old completion system continues to work while you’re waiting for jedi results, but in case you find this impacting the overall performance of the app and your scripts, you can disable extended completion separately in the settings.
- The documentation is now shown in the same panel as the console (this also applies to the built-in web browser used by the webbrowser module).
- The keyboard shortcut for switching between editor and console is now Cmd+J instead of Cmd+ (the previous shortcut conflicted with switching the keyboard language).
- The integrated documentation has a new look.
- User-created modules are now reloaded automatically when running a script.
- New site-packages folder that is included in the default sys.path (this is a good location for shared modules that you want to import in scripts across different folders). Please note that the aforementioned automatic reloading doesn’t apply to modules in this folder (in order to improve performance).
Zorn has warned users that since the update was rushed to the App Store (Apple gave him 48 hours to update Pythonista, otherwise it'd have been removed), there may be some bugs lurking in the release. Despite this, however, a series of bugs discovered in version 1.4 of the application have also been squashed in today's update. You can download Pythonista 1.5 on the App Store for $6.99, and it's optimized for the iPhone, iPad, and iPod touch. For more information on the app, including a full breakdown of the aforementioned recent drama, head over to Ole Zorn's website. See also: Rovio And Hasbro Introduce Autobirds And Deceptihogs In Angry Birds Transformers, Mousee Launches Free-To-Play Elementals: The Magic Key On The App Store, and Jay Z’s New ‘Jungle’ Remix Is Only Available On Beats Music.
- Integrated numpy and matplotlib.
- New ui module for creating native user interfaces on iOS, including an integrated UI editor.
- New motion module for accessing the device’s motion sensors (accelerometer, gyroscope, magnetometer).
- The notification module has a new notification.set_badge() method.
- Various improvements in the photos module, especially the photos.pick_image() function (new keyword arguments for multiple selection, including metadata, and returning raw data instead of decoded images)
- Updated various modules to the latest PyPI versions (bottle: 0.11.4 → 0.12.5, bs4: 4.1.3 → 4.3.2, feedparser: 5.1.2 → 5.1.3, html5lib: 0.95-dev → 0.999, markdown2: 2.1.0 → 2.2.1, paramiko: 1.7.7.1 → 1.13.0, pygments: 1.5 → 1.6, pyparsing: 1.5.7 → 2.0.1, requests: 1.2.2 → 2.2.1)