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.
On iPhone 6 in the file edit view if the keyboard is not displayed the "+" icon doesn't do anything.
The Files section is supposed to show image and sound files in the folder of the current script (and subfolders). If there aren't any, it might be empty (though the whole section is actually supposed to be hidden then ... it looks like this isn't working properly right now).
This might not qualify as a bug but on the iPhone 6 in edit file view the gesture to make the keyboard go away is quite touchy to figure out. There is no longer an icon to make the keyboard go away. Apparently now you need to drag it down. However it is not clear what exactly needs to be dragged. Trying to drag the keyboard itself generally types something wiping out what is selected. (BTW: Thanks for undo now that I found it again.) Starting a drag in the content area usually works but is sometimes interpreted as a select or scroll. The old keyboard icon took valuable space but it was nice and reliable. Tap and the keyboard is gone.
Also the animation is unexpected. First the keyboard reduces to a single line (the top line) then after a short pause that line goes away.
The cb module , and your heart-rate monitor example is working great with the Wahoo TICKR heart monitor strap! Thank you!
Bug: I was adjusting the order of editor actions, moving the default ones to the bottom of the list. Suddenly only the last script in my list was available . I removed and readded mine (about 6) but still only the last one is available for selection. They still show up in the editor action list in settings though.
Still a bug: In one of my editor scripts I still get a row_height of -1 from a TableView. Now it actually seems to never be set. I'm manually setting it during init at the moment. I checked the value in did_load() and layout(). Btw my editor script presents a view. I get a -1 if run directly as well. I have reported this in previous versions of 1.6. The height worked in 1.5 but other issues prevented this script from working before.
I really think sk.Scene.update() should take a delta time parameter instead of assuming 16ms.
FYI - the new 1.6 beta gives back access to the Documents folder for programs like iFunbox and iExplorer.
perhaps not a "bug", but at least a source of incompatibility with some libraries: StdInCatcher/StdOutCatcher don't implement isatty(). This breaks some libraries.
Bug (maybe): I have been playing around with SpriteKit and doing some physics stuff. I noticed, though that the physics numeric attributes are not working (
linear dampening, etc). I am making a game that needs a bouncy ball and no matter how I tweak the
restitutionof the object, it doesn't seem to get any bouncier.
Note: I have also tried tweaking other attributes in case
restitutionwas not the thing I needed and none of them seemed to make it bouncy.
Restitution worked in the physics clock example. I adjusted the default (0.25) to differnt values. Setting it to 1.0 makes the numbers basically jump all the way back to where they started. Setting it to 2.0 made them shoot wildly across the screen. Setting to zero results in no bounce.
Perhaps you are changing it in the wrong place -- check out the physics clock in your examples folder (you might need to restore examples from the options menu)
Adding to the list. Platformer Game doesn't seem to work in iPhone 6. Display goes grey but nothing happens. After taping the screen music starts. Various gestures cause quick sound effects but the screen stays empty. Based on earlier reports in this thread this doesn't seem to be platform specific.
Is it possible in the beta to create image files from the clipboard. In 1.5 this functionality was available from the select/insert menu but I can't find it in the beta.
Am I the only one who is actually able to play the platformer game? I'm on an iPad mini (the old one) with iOS 8.3.
Platformer game works for me. (iPhone 5S and iPad mini Retina, both running 8.3)
Works on my iPad 2 Air and iPhone 6.
@JonB thanks for pointing that out. I played around with the Physics Clock and it did everything you said it would. I think that my problem comes from the sprite kit editor. If you set the physics from the editor (not programmatically) then it keeps the defaults that where in the editor. I can fix this by manually changing them from the program.
@omz the bug is that the default physics attributes from the sprite kit editor don't change if you change them from the editor.
Will Pythonista support pyd pyo pyx etc. in the future? Many useful modules require these formats.
pydfiles are dynamic libraries. As far as I know they don't have a specific format - on Windows for example they are just
dlls with a different extension, on other operating systems that's probably also the case. This means that most
pyds would not be compatible with the iOS kernel in the first place and would need to be recompiled from source code. Because Apple doesn't allow apps to dynamically link to custom libraries it wouldn't be possible to use those anyway.
pyofiles are optimized Python bytecode. (Optimized means that any
assertstatements, and sometimes docstrings, have been removed.) Their format is the same as for
pycfiles, which Pythonista already generates to improve module loading speed. These files are usable in Pythonista - IIRC someone has done this before - but there's little point in doing that, you might just as well use the Python source code for the files.
pyxfiles are Pyrex or Cython code. Both are languages that are syntactically similar to Python, but compile to C source code and can use C types and libraries. The problems with these are the same as with
pyds that I explained above.
I upgraded my iPhone 6 to iOS 8.3 and Platformer game works now. Unfortunately I don't remember the iOS version that failed.