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):
https://testflight.apple.com/join/qDkBu2ur
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 Features
-
New scriptable keyboard extension and associated
keyboard
module:- 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.
- The
keyboard
module 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.
- The
shortcuts
module provides useful utilities for shortcut scripts, but you can also just use theprint
function and e.g.ui.Image.show
to 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. -
Revamped
notification
module 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).
Built-in Modules
-
Added
location.render_map_snapshot
function to thelocation
module for generating map images (using Apple Maps data). -
Improved
photos.capture_image
function with the option to use the selfie camera by default. -
Added
cb.Peripheral.manufacturer_data
incb
(CoreBluetooth) module. -
Added
ui.Label.scales_font
andui.Label.min_font_scale
attributes toui.Label
. -
Added
reminders.Reminder.priority
andreminders.Reminder.url
attributes in thereminders
module. -
Changed the default file type for
dialogs.pick_document
to'public.item'
(instead of'public.data'
, this works better for unknown file types). -
Added (third-party)
emoji
module. -
Added documentation for
ui.TextField.begin_editing
,ui.TextField.end_editing
, andui.TextField.secure
.
Bugfixes
-
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.
-
Fixed broken
turtle.pen
function.
Miscellaneous
- 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!
-
-
@orsharir said:
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.
Unfortunately, there are no APIs from Apple for that, so it's not possible. You can use the clipboard as a crutch though (at least for text-based stuff).
-
@lpl said:
The modules are very very old. Will you update them?
I'm aware of that. I'll look into updating some of the more important ones.
-
@robnee said:
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.
I'll consider it, thanks for your feedback!
-
@caddtec said:
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.
Yeah, it's difficult to make it work well in combination with physical keyboards to be honest.
I had a solution that worked better than the current beta, but it was auto-rejected by Apple's App Store validation mechanism because it relied on the keyboard having an "emoji" language, and while that works fine on the device, it's apparently not standard-compliant or whatever.
In general, you can work around this by showing the keyboard manually. You can do this by holding the
^
button in the toolbar above the hidden keyboard (bottom-right corner).
-
This post is deleted!last edited by
-
@omz Openssl 1.0.2f has a serious bug. Please have a checkout and update it. https://bz.apache.org/bugzilla/show_bug.cgi?id=58956
And python3.6.8 is coming out soon. I think 3.6.1 is old. So is 2.7.12.
"To get a newer version of the typing module in Python 3.5 or later, you have to upgrade to a newer Python (bugfix) version. For example, typing in Python 3.6.0 is missing the definition of ‘Type’ – upgrading to 3.6.2 will fix this." https://pypi.org/project/typing/#description
-
@omz Yeah I thought so (about the fact it is difficult with physical keyboard). I’ll just have to make do, it is not so problematic so no worries ;o). However, could be a good idea to do like the emoji keyboard however: when we select the PyKeys, it shows the keyboard by default (on screen) and then when we select another keyboard, let’s say English, then the on-screen keyboard disappear and you can then continue using the physical keyboard as always. IMHO I think I would prefer to show the on-screen keyboard by default instead of having to press the button in the toolbar above the hidden keyboard.
As for the App Store validation, I abandoned a long time ago the idea of understanding! ;o)And thanks for the feedback!
-
This post is deleted!last edited by
-
@omz, whether a side effect or an intentional improvement, maybe include a note that ARKit now works in the release notes?
-
Apple Shortcuts app tries to open Pythonista 2 instead of 3.3 beta. Worked before with 3.2. Using a url with ”pythonista3://” does not seem to be an option.
General problem or a personal problem? Will be fixed when 3.3 goes mainstream?
-
Great job on the beta!
A few small things:
Could it be possible to edit a shortcut to allow it to run in the background after it was created (if someone forgets to enable “background” when they create the shortcut)? I see that right now only the voice command can be changed after creation.Also, I noticed that the keyboard stays light in the UI editor properties fields although it is dark in the rest of the app.
Thanks, and keep up the great work!
-
@omz - is there any way I can contribute or help?
ie updating modules etc?
I've been playing with some OSS python stuff on iOS here just to figure it all out.
I really don't care to get paid or that Pythonista is a commercial app, it's about the community.
Outside of testing the beta, of course!
-
@omz If I correctly understand, the new beta version allows to run a Pythonista script, in background (without starting the full app), when it is launched,
either via a notification
either via a siri shortcut
Could it be possible to launch such a script by a home screen icon?
-
@mikael I try in the shortcuts app “pythonista3://“ and it works well, it open the app, do you have installed Pythonista2?, can be that a reason for the error? I only have installed pythonista3 beta. In the shortcuts apps I use some kind of url wrapper and a url opener so the complete shortcut open itself Pythonista 3
-
@omz
iPhone XS Max Pythonista keyboard never appears.Hi @omz about two days I upgrade my phone 6 to the xs max. In my iPhone 6 I have the actual beta of Pythonista and the keyboard words well, it appears and it let me ran my scripts, but now in the xs max the keyboard never appears or it appears but it looks like the standard iPhone keyboard and don’t show me any of the shortcuts, I have it enabled and I also try use it with the allow full access functionality but nothing.
The specifications
-iPhone XS Max 256gb
-iOS 12.1.2
-Pythonista 3.3 (330005) beta
-PyKeys enabled
-Full acces enabled (I turn it on to see if them works)
-I also restart my device two times
-
@omz If a Pythonista script is launched by Siri as background, it is executed even if Pythonista app is not in the apps list, but when the same script is launched by a notification, with foreground=False, it is only executed when I start Pythonista...
Is this difference normal?
-
@cvp said:
Could it be possible to launch such a script by a home screen icon?
That's not possible, I'm afraid. Home screen icons always launch the full app.
@sulcud said:
iPhone XS Max Pythonista keyboard never appears.
That's weird, did you do a fresh install of the Pythonista beta on the XS Max, or did you restore a backup? Have you tried disabling the 'PyKeys' keyboard, and then enabling it again? Sorry, I don't have a good explanation right now.
-
@omz I install Pythonista 3 from the backup them I install the beta, I try enabling and disabling pykeys
-
@omz i solve it, i re install the app them i open it and them a install the beta
-
last edited by