Beta Status Update
Unfortunately, I've recently been unable to provide a new beta version of Pythonista 1.6. This is partly my own fault, and partly due to unexpected difficulties with TestFlight.
First off, I've been working on two different branches of Pythonista for quite some time, one being the current (expired) 1.6 beta, a relatively minor update with new Python modules but not much else, the other a more significant update with a major UI refresh and quite a few other new features that I'm pretty excited about (more on that soon).
This approach has sometimes made it difficult to keep both versions in a working state. When I changed something in version B, I sometimes ended up accidentally breaking stuff in version A... So a couple of weeks ago, I decided to ditch the current beta branch, and exclusively focus on the new version instead, but I have to admit that I vastly underestimated the amount of work that this would take – a lot of basic things were still missing in the new branch, and even though it had some nice new features, it would have been a step down in terms of stability and basic functionality that you'd expect, even if you were coming from 1.5.
Right now, it's still a bit rough around the edges, but definitely usable and an improvement over the current version. Unfortunately, I haven't been able to get TestFlight to work with it yet. I continue running into server-side issues with builds not processing properly after I upload them. In order to make some new features work, I had to change the App ID (for code-signing), and it seems that this is a scenario that just doesn't work very well with TestFlight – it's difficult to go back now because that would mean sacrificing new functionality that I spent quite a lot of time on... At first, the only reason for the new App ID requirement was the document picker support in the new
dialogsmodule (requires iCloud entitlements), but the new version also contains an app extension (for running scripts from the share sheet in other apps), and I've realized now that this also doesn't work with the old App ID, and while the document picker support wasn't that important to me, the app extension is a major feature that I really want to ship.
If you do have the current (expired) beta installed and would like to get your data out of it, here are two options you can use:
Option 1 (if you have a Mac with Xcode):
- Connect your device via USB
- Start Xcode and select Devices from the Window menu, then select the connected device in the sidebar
- Under Installed Apps, select Pythonista
- Click on the "Gear" icon and select Download Container...
The downloaded container is a package (i.e. folder), so you can view the individual files in Finder by selecting Show Package Contents from the context menu.
Option 2 (if you're on a PC or don't want to install Xcode):
- Make an unencrypted(!) backup of your device using iTunes
- Download the iBackup Viewer tool (Mac or Windows) – (the free version will do, if you have the paid version, you could also encrypt your backup)
- Go to "(your device)/Applications" (this may take a while to load)
- Select Pythonista in the list of apps, then click the "gear" button and select Save all Files.... I would recommend that you create a new folder for this because the app will create multiple folders while extracting the backup files.
Edit: You can also try downgrading by downloading 1.5 from the App Store. Apparently, this didn't result in data loss for some people, but I'm not quite sure if this always works.
That's all I have for now. I'm very sorry this took so long. When I know more, I'll post it here.
It is looking amazing @omz, keep up the great work.
What do I need to do or what should I do to get access to the Test Flight Beta Version.
@omz You have been busy! Thank you for your continued support in pythonista, Please give us a way to donate to you or an optional in app. With as much time that I have spent in pythonista, I feel guilty buying the app on sale and would like to support your continued development.
Looking forward to playing with the new beta!
Installing the new beta was... fun. I still had the previous "dead" beta version installed, so I tried updating that directly, as all the warnings were just about the app store version and said nothing about the old beta. It never got past the start of the installation process though. I wasn't allowed to delete the app from the home screen anymore, and cancelling the installation from TestFlight didn't do anything either, so I deleted Pythonista from the "Usage" section of the system preferences.
After doing that the app was in some odd state where it was at the same time installed, downloading, and not usable in any way. After a few reboots and cancelled installations I installed the app store version, deleting my data, then uninstalled that, and then I installed the new beta again. The install process again took forever, but I just let it run, and now I have a running Pythonista again. Now I need to figure out how to pack my backup data into an archive that stash can actually read...
Anyway, I've done some experimenting without my previous data, so here's my usual feedback list:
- Editor and console tabs are great to have. It would be nice though to have an "Open in New Tab" option for links in webbrowser and documentation tabs.
- I personally like to be able to close the last open tab, even if it just opens a new blank tab in its place. An option to always show the tab bar would be nice.
- The new file creation dialog is nice. Could that kind of collapsible folder list also be used for the move menu?
- Custom templates for the file creation menu?
- Where exactly are the "File Actions" meant to appear?
- The IDLE theme is gone :(
- Hard tab width only works correctly for Menlo on size 15.
- Block indent/dedent (from selection popup menu) always uses hard tabs, even if soft tabs are enabled.
- Auto-pairing characters cannot be disabled. (They also don't work well with triple-quoted strings, though that isn't the main reason why I keep them disabled.)
- The option to not "reset" the global environment is gone. I got used to having a number of modules and functions always in my globals for interactive use, and there are many cases where it's useful to keep the globals between script runs for convenience.
- The Cmd+J shortcut to switch between editor and console is gone.
@omz Thanks for your excellent work! Yet I just have a question: Is it possible to import/export files regardless of their types from/to other apps in the new version?
@omz How do you close pythonista when ran in safari? The x is grayed out for me and I have to clear safari from memory to remove the pythonista popup.
On the new scenekit, I haven't been able to get gravity to work. I tried to modify the Physics Clock demo to add gravity from motion, but using self.physics_gravity = motion.get_gravity()[:2] doesn't seem to work; in fact self.physics_gravity = (5,-5) or something similar does not work either. Numbers still fall straight down. Am I missing something?
@omz Thanks for the new beta. Lots of fun toys to play with.
I haven't run any of my code yet (figuring out how to restore from dropbox when my sync script is only on dropbox ;-) but here are some issues running through the examples. I'm running on iPhone.
CB isn't mentioned in the release notes. I hope it is still there. I see it in the doc so it probably is.
I can't figure out how to add an image. The file menu (now under "+" instead of the select menu) doesn't seem to have the user image choice with the "add" button anymore.
There used to be a png file in the files menu but it went away. Did I delete this by accident or was this a bug? I don't know how to delete things in the files menu. It is not in the trash. I hope it wasn't needed for an example or something. Now the files menu seems pretty useless. Nothing to select, no obvious add functionality. It seems like some user interface element is missing.
Random MIDI example doesn't work. The home screen pops up and no sound happens. The Pythionista app is still there but seems to have restarted because the editor state (open files) reverts to an older state.
@omz Low priority issue: I had never heard of a share sheet until I saw the comment in the release notes. I'll figure it out with Google's help but it might be worth updating the doc on editor/file actions for users who might not know about the functionality.
@omz - I was able to install over the previous beta with no issues or loss of data. The install took quite some time on my iPad4 - probably 10 minutes. I was beginning to think it had hung. Nothing like the issues @dgelessus was having.
How do you close pythonista when ran in safari? The x is grayed out for me and I have to clear safari from memory to remove the pythonista popup.
The x is for stopping scripts (grayed out if nothing is running), tap Done to close the extension. If the console output is visible, swipe right first (a Done button in the console will probably be in one of the next builds)
I was able to update from the previous beta without a loss of data as well.
Maybe I was just impatient then, the long wait at the start of the update made me think that something was wrong. My attempts to cancel the installation probably just made things worse.
@dgelessus I loaded the beta last night. After backing out to 1.5. It took a long time (hours) but it eventually worked. It failed once so I just restarted. I assume the problem was with testflight and moving in and out of wifi range, unrelated to Pythonista. I've had similar issues with testflight before. I don't think testflight is very robust and it is certainly slow. It used to be worse.
The midi example crashes on my iPad 2 air. Kills the interpretor w/oany tracebeck when executing the line
player = sound.MIDIPlayer('output.mid')
Midi file is there 144 bytes and is recognized by external midi programs.
Traceback (most recent call last): File "/var/mobile/Containers/Data/Application/9C6CA438-893C-4AD6-BB3C-62437E69416C/Documents/chordcalc/chordCalc/Spinner.py", line 188, in <module> spinner1.position = (110,150) File "/var/mobile/Containers/Data/Application/9C6CA438-893C-4AD6-BB3C-62437E69416C/Documents/chordcalc/chordCalc/Spinner.py", line 110, in position self.frame = value + tuple(self.frame[2:]) TypeError: sequence index must be integer, not 'slice'
ui.View.frameobject is now type Rect and not a list. Need to read the new ui docs.
There was a new version of
TestFlightreleased a few daze after the Beta. Perhaps that new TF release helped with the issue of installing of one beta on top of another.
@polymerchm, try converting to a tuple before slicing:
@ccc, if I were to guess TestFlight is only the front-end to the beta app system, similar to the App Store app. Both of those don't actually need to be running during the installation of apps, they are just necessary to start the installation. I'd imagine that TestFlight gets the app package from somewhere else, but installs it like any normal app, so I doubt the TestFlight update would have any direct effect on the installation process.
MIDIPlayercrash: I made a last-minute change there that I didn't test properly. Here's a quick workaround – just replace the last two lines with this:
import os soundbank_path = os.path.abspath(os.path.join(os.__file__, '../../merlin_silver.sf2')) player = sound.MIDIPlayer('output.mid', soundbank_path) player.play()