New Beta for Pythonista 3.3
There's now a public beta for the upcoming Pythonista 3.3. If you signed up for a Pythonista 3 beta previously, you should have received a notification from TestFlight. If you're not a beta tester yet, but would be interested in testing, you can just use this link to sign up (I no longer need to collect your email address for this):
It's a beta, and I wanted to have it out before the holidays, so some things aren't quite done yet, others aren't polished yet, but it should overall be quite usable and not worse than the App Store version in any significant way. If you're new to this: If you install the beta, it replaces the App Store version on your device, but you won't lose data. It works like a regular App Store update in that regard.
I'm really curious what you'll create with the custom keyboard extension!
Full release notes below:
New scriptable keyboard extension and associated
- First off, this is not intended to replace the system keyboard or your preferred third-party keyboard for most of your typing. It's much more like the emoji picker, i.e. you'd typically switch to it just for specific tasks. The keyboard does not support any kind of AutoCorrect or QuickType suggestions. Just switch to the system keyboard if you need those (hold the 'globe' key).
- You can enable the keyboard in the Settings app (General > Keyboard > Keyboards > Add New Keyboard). It already includes various script shortcuts from the examples folder that you can try right away. If you want to add your own scripts, use the new "Shortcuts..." option from the 'wrench' menu.
- You can use the keyboard for simple things, like quickly inserting the current date/time in your favorite format, or even show a custom UI, like a calculator, in the keyboard view (or above a standard QWERTY keyboard). Have a look at the included examples to get an idea of what's possible.
keyboardmodule includes keyboard-specific functionality for inserting text, modifying the cursor position, showing user interfaces in the keyboard, and more.
- Generally, the Pythonista keyboard does not require that you enable 'Full Access', but you can't use some functionality in your scripts then (e.g. clipboard or network access).
- Note: If you have a hardware keyboard connected to your iPad, and the Pythonista keyboard does not show up on screen when you select it, please tap and hold the
˅button in the bottom-right corner of the screen. This should normally not happen when you set the Pythonista keyboard's primary language to 'Emoji'.
Support for Siri & Search shortcuts:
- This allows you to integrate Python scripts in various places on iOS. You can invoke shortcuts using Siri with custom voice commands, run them from Spotlight Search, or add them to larger automation workflows in the iOS 12 Shortcuts app.
- Please note that "background" shortcuts (i.e. those that don't launch the Pythonista app) have very limited resources (RAM) available to them, so you're somewhat limited in what you can do without launching the full app. Also, you cannot implement any interaction within Siri, except for reacting to a tap on the Siri result.
shortcutsmodule provides useful utilities for shortcut scripts, but you can also just use the
ui.Image.showto produce simple output, as you would in a script that runs in the app.
Improved and unified UI for creating shortcuts and Pythonista URLs -- This allows you to create script shortcuts for Siri & Search, the new Pythonista keyboard, the share sheet extension, editor actions, and home screen icons, all from one place: The new "Shortcuts..." option in the 'wrench' menu. This also contains a new Pythonista URL generator for creating various kinds of
pythonista3://...URLs more easily.
notificationmodule with support for custom actions (buttons), location-based and repeating notifications, and more. The module also works in Pythonista's app extensions now (it was previously main app only).
The console's history is now persistent (i.e. saved when you quit the app). You can also delete the console history by tapping and holding the '^' button now.
Scripts stored in iCloud are now compatible with the built-in "Run Script" and "Edit Script" actions of the (Apple) Shortcuts app. Just prefix the script name/path with "iCloud/", e.g. use "iCloud/MyScript.py" (without quotes).
location.render_map_snapshotfunction to the
locationmodule for generating map images (using Apple Maps data).
photos.capture_imagefunction with the option to use the selfie camera by default.
reminders.Reminder.urlattributes in the
Changed the default file type for
'public.data', this works better for unknown file types).
Added documentation for
Fixed a crash when saving images from the console when access to the photo library has not been granted yet.
Fixed an issue with the extra key row hiding console input on 2018 iPad Pros.
Fixed a crash when using arrow keys on an external keyboard while the on-screen keyboard is visible.
Fixed problems with using iCloud scripts in the share sheet extension.
Fixed triple-quoted byte strings and f-strings not being syntax-highlighted correctly.
Fixed 'wrench' actions not being saved when invoked from the script library.
- Selecting Python 2.7 as the default interpreter shows an "end of life" warning now (Python 2.7 will cease to be officially supported by the Python Software Foundation in 2020).
Have fun testing!
@omz Very good news, and one more time, thanks for your marvelous app.
Just one question: is what you call "background" shortcut a new mode supplementary to
- full app
@cvp A background shortcut is a Siri shortcuts that runs directly in Siri, without launching the app. Does that make things clearer? Sorry if the terminology is a bit confusing in parts, there are just a lot of different kinds of shortcuts now...
@omz Ok, understood and just tested with success. I already love your new version. thanks
@omz On previous version, when I launched an home screen shortcut, apps list shows two apps: Pythonista and my script. I hoped we could start a script without starting the full app, like now with Siri or like via appex or via widget...but without Siri, that's the reason of my question
@omz Will you update many old modules? https://github.com/cclauss/pythonista-module-versions They are very very old.
Thanks for the hard work. I will give it a try.
@omz Alas... crashes ios 9.3.5. I take it older device support has ended now.
Very good news, I will be entering the beta today.
Some packages seem to be in need of an update, maybe the final version may include something with respect to that.
I still have an old iPad 2 (iOS 9) that I use together with my iPhone 7, I also wish that this iPad doesn't get unsupported right now...
Soooooo great to have a new version! Thanks @omz for the beta! Just tried out most of my apps, scripts ans unit tests. Everything seems to work perfectly!
Will continue testing and report any error I find.
I was just trying the new keyboard PyKeys and notice what seems to be a problem... that whenever I enable it, I see only the small upper part of every buttons unless I show the whole keyboard (I use a physical keyboard by the way). I am on iOS 12 with the new iPad Pro 12.9.
Is it suppose to work that way? Am I the only one that it happens?
Any plans to include newer version of Python, i.e 3.6.7/8 or 3.7.1/2?
Any plans to support Pandas?
@caddtec You can tap and hold the
^button (bottom-right corner) to make the keyboard visible when an external keyboard is connected.
@caddtec I had the problem on iOS 11 but not on iOS 12.
@omz Thank you for the beta. I am enjoying the testing
Any chance on addin a theme element for the stderr console text? The dark red is hard to read with some of the dark themes.
The modules are very very old. Will you update them?
Thanks for the update! I've been looking forward to the Siri integration.
Is there any way to pass input to the script, or return an output from it? The potential for Pythonista as a glue between other shortcuts, and the possibility of creating a programmable voice interface is huge -- but it depends on the ability of Pythonista to process input and generate output.
Edit: I've just realized that the apparent lack (unless I missed this option) of native input / output could be mitigated by using the clipboard. I still think it would be better to have native support (less boilerplate steps in the shortcut app), but now I can finally start experimenting with the above ideas. Thanks again for the update!
I tested the new Beta on my current projects. It run most of the time fine. I had some methods where I had to additionally annotate with @on_main_thread to make it run, which I must not in pythonista 3.2 . But I think this is more correct and I guess v3.2 was just a bit more forgiving in that regard and v3.3. a bit more strict which is fine.
I had an issue though with pythonista-gestures from @mikael :
it gives an key error upon accessing a dictionary each time you trigger a gesture
I opened an issue for this at https://github.com/mikaelho/pythonista-gestures
Due to some restructuring in the new pythonista v3.3, in the end I think it has to be repaired in Gestures.
EDIT: it has been repaired. ;-)
I hope @mikael has also access to the beta :-)
How many seats are there free ?
Now I will have a look at the funny keyboard thing ... ;-)