Welcome!
This is the community forum for my apps Pythonista and Editorial.
For individual support questions, you can also send an email. If you have a very short question or just want to say hello — I'm @olemoritz on Twitter.
Beta Status Update
-
I'm sorry if those screenshots gave you the wrong impression about MIDI support. There's a tiny bit of that, but probably not what you actually want. There's very basic playback support for .mid files (with a built-in soundbank), and I've included the pure-Python
midiutil
module for creating MIDI files (which actually works in 1.5 as well if you'd download it manually), and that's it, nothing related to CoreMIDI, really, and I don't think I'll get to that for this update, just too much other stuff I'll need to get done still, and this is an area I know very little about.It can still be fun to generate melodies algorithmically this way, and you might be able to do more with the results by exporting a .mid file to another app, but you won't be able to use Pythonista as some sort of MIDI controller or anything like that.
-
@omz - no worries. The MIDI file playback support should still be quite useful. If there is a way to install or supply your own soundbank via soundfonts it would be even more interesting.
-
@omz thanks for the update. As usual I'm just waiting to get BLE. It sounds like there is a lot of work left to get a release done so I shouldn't expect anything soon. Should I switch to the updated snapshot? Someone said In a different thread that there was a 1.6 snapshot but I haven't tried it. Will that give me back Pythonista BLE?
-
@omz Awesome as always! Congratulations and good luck in your efforts with TestFlight and App IDs.
Above you wrote:
You can also try downgrading by downloading 1.5 from the App Store.
That will only work for those who have not yet upgraded to iOS 8.3. On iOS 8.3 devices the workarounds that you mention above should allow folks downgrade from Pythonista v1.6 beta to v1.5 without losing their existing scripts.
-
Wow, this is freaking amazing. Tabs in the editor?! Drag-and-drop scene builder??!! iOS 8 extension???!!!!! I don’t know what to say. I personally don’t really care how long it takes for a new beta, it’s already obvious the wait will be well worth it. I don’t know about anyone else, but I say @omz take your time and do whatever is needed because what you’ve just shown us is fantastic beyond words.
-
When will release 1.6 on App Store?
Function wonderful, I want out of use, but suffer from the beta is not desirable. -
&Omz I vote with @gerzer. The beta is really to help you by letting us help test. The goal is your standard high quality release. Only work on the beta if it helps you get there.
-
omz: Beautiful work! I can't wait to play with it, it looks pretty amazing!
-
Hi omz,
Option 1 to get my data out of the device isn't working. With iOS 8.3 and Xcode 6.3.1 I got following error:
mobile_house_arrest[5688] <Error>: handle_vending: Only containers for xcode-installed apps (apps with validated profiles) can be queried
-
Could someone on this list please clarify how the downgrade from 1.6 beta to 1.5 is accomplished specifically? Going to the AppStore and selecting Pythonista only shows the "Open" option and not "Update". TestFlight only shows an option to Unsubscribe. What's the trick to getting an "Update" to 1.5 accomplished?
-
@wradcliffe, You have done the iOS upgrade to v8.3? If so, then the App Store downgrade is not longer an option for you. Look at the last paragraph om OMZ's post at the very top of this thread for options.
-
@OMZ: I "downgraded" before 8.3 so I lost nothing. the xcode trick does not wok in that situaton. I will try the DropBox solution.
-
I've made some progress... A new beta should be up on TestFlight now. As I've mentioned in the release notes, it is NOT possible to install it on top of the App Store version, and I recommend that you make a backup of your files first and delete the old version before starting the download. I've made a simple backup script in case you don't have your own way of doing this: PythonistaBackup.py
Here are the release notes (also contained in the app):
New Features
-
Refreshed look and feel with new and improved color themes, refined toolbar icons, additional editor font choices, and a new app icon.
Selecting a different theme in the settings changes the look of the app much more profoundly than before, especially with one of the new dark themes.
-
App extension +
appex
module: This is basically a mini version of Pythonista that you can use in many system and third-party apps via the standard iOS share sheet. With theappex
module, you can get the data that was passed to the share sheet (e.g. text, images, URLs) and use it in your scripts. The extension contains a basic editor (not all features of the main app, but good enough for minor changes) and an interactive console for ad-hoc experimentation. Please note that if you want to make a script (or other file) accessible from the app extension, it has to be in the special Extension folder. There are a couple of templates for extension scripts and the Extension folder also contains a few sample scripts by default. -
Tabbed editor: You can now have multiple files open at once and quickly switch between them. On the iPad, there's a traditional tab bar interface (only shown when there are at least two tabs), on the iPhone, tabs are shown in a thumbnail grid when you tap the "tabs" button in the toolbar. If you have an iPhone 6 or 6 Plus, there's an option in the settings to use a tab bar instead (this doesn't work well on smaller screens, so the option isn't available on other iPhones or the iPod touch).
-
Significantly improved support for non-Python files: All files are now opened in a tab, so that all types of files can be renamed (it's also possible to change the file extension for all file types, which can be useful e.g. if you want to view a .pyui file as text). Apart from that, you can show a QuickLook preview for lots of files, open them in another app, extract zip archives, and play audio files.
-
The editor has basic syntax highlighting support for HTML, CSS, JavaScript (useful for
bottle
,Flask
etc.), Markdown (which you see right now), and TaskPaper (if you want to keep a todo list next to your script). -
New
sk
(SpriteKit) module: This is basically a wrapper around Apple's SpriteKit framework for creating 2D games. The API is very close to the original, but function names are often shorter than the 'original' (making it less tedious to write code with the on-screen keyboard) and I've simplified a couple of things to make it more suitable for short scripts (e.g. a few things that require setting up delegates in SpriteKit can be done by just overriding a method insk.Scene
).While I don't plan to remove the
scene
module, this is intended to be a replacement for it, featuring significantly better performance, a more consistent, object-oriented API, support for advanced particle effects, filters, custom shaders and more.There's also a new visual editor for setting up scenes without writing code. Like with the UI editor, these files are just JSON under the hood (you can rename a
.pysk
file to.json
or.txt
if you like). Thesk.load()
function for loading these scenes doesn't do any magic, and it's actually written in pure Python. While the scene editor doesn't do anything you couldn't do in code, it can often be easier to set things up when you see the results directly, especially for particle systems (sk.EmitterNode
). -
Commands in the console are syntax-highlighted now. The history UI has also changed a little and works better with Bluetooth keyboards (up/down arrow keys), and the code completion is a little smarter about when to add a space after you select a suggestion.
-
New setting to show the standard library in the file browser (you can't edit these files, but it can be quite interesting to read the source code nevertheless)
-
New "traceback navigator": When an exception occurs, you can tap on the error marker in the title bar to view the traceback in a much more readable format than before. You can also tap on individual lines to view them in the editor (even if they're in different files)
-
Improved sharing in the editor and file browser – instead of the custom 'Actions' menu, the editor now uses the standard iOS share sheet. You can still add custom scripts to this sheet in the settings (Editor Actions). You can also invoke a share sheet in the file browser (Edit mode), and customize this sheet via the File Actions setting. This is useful for scripts that operate on a list of files (e.g. to create a zip archive, upload them somewhere...) because the selected files are passed to the script (as part of
sys.argv
) automatically. -
Improved asset/color picker and new built-in images and sound effects for games (mostly Public Domain, thanks to Kenney)
-
Improved in-editor search, including find/replace (currently only on iPad)
-
New setting to use "true" division in the console (this is basically equivalent to
from __future__ import division
in a script, you might want to turn this on if you often use the console as a calculator) -
New setting for using a more compact keyboard (one row instead of two, iPad only)
-
New Indent/dedent menu items in the editor (copy/paste menu) – note: dedenting currently doesn't work very well if you use soft tabs/spaces
-
New "Highlight all" menu item in the editor (copy/paste menu) – this can be very useful for highlighting all occurrences of a variable/function name etc.
-
Improved "new file" menu with more templates and the ability to import photos and other saved images from the camera roll
-
New sound.MIDIPlayer class (plus
midiutil
module, currently both undocumented, but there's a "Random MIDI Melody" sample script) -
Color and image previews in the code editor (when the cursor is inside a string that contains a built-in image asset name or a hex color, a preview is shown as an overlay)
-
Lots of new sample code (now contained in a dedicated Examples folder, so you have more room for your own scripts in the main library folder) – I've also made some minor changes to existing sample scripts. A lot of this is still very much work-in-progress (especially the larger
sk
examples "Platformer Game", "Word Game").
Notes and Known Issues
-
iOS 8.0 or later is required now
-
This version is built as a 64-bit app. Not only is this a requirement for submitting to the App Store very soon (starting in June), but app extensions require a 64-bit slice to work at all. Hopefully you won't notice this much, but it's possible that there are bugs related to this that I haven't caught yet. Unfortunately, as I've already discussed in the forum, this also means that a few things in the
ctypes
module cause crashes. I still haven't found a way around this, but all thectypes
-related sample code I've shared so far continues to work in this version. -
Built-in images and sounds are currently not available in the app extension
-
The editor and console sometimes don't adjust their sizes correctly after the keyboard is hidden
-
The title of the editor and the error indicator are often positioned incorrectly after a view without status bar (e.g. an
sk.View
) was presented -
The
'sidebar'
presentation style (ui
module) is currently not supported -
The
dialogs.import/export_file
functions (from previous betas) are not available in this build (might come back, but I can't promise anything right now) -
The console currently doesn't have its own Run button
-
Renaming a file that is open in multiple tabs may result in duplicates
-
On iOS 8.3, the extended keyboard doesn't respond to touches if they occur too quickly after a regular key was pressed. This appears to be an intentional change by Apple (probably to avoid mistakes when typing quickly), and it doesn't look like there's anything I can do about it.
-
Automatic indentation doesn't work in some cases (e.g. when splitting a line)
-
Cmd+left/right-arrow (Bluetooth keyboard) doesn't work correctly in some cases (workaround: press the arrow key without Cmd once before using the shortcut)
-
When selecting from the outline popup the editor sometimes scrolls too far
-
Selecting text in non-editable (i.e. standard library) files doesn't work very well
-
The new color picker doesn't support alpha values yet
-
Setting the
target_node
attribute of ansk.EmitterNode
can lead to crashes (usually not immediately because this happens during garbage collection) -
The keyboard is sometimes dismissed when it shouldn't be (usually after a popover is dismissed when any kind of modal view was presented before)
-
The documentation is incomplete (especially for the new
sk
module) -
The
modal
andstop_when_done
parameters forwebbrowser.open()
are currently ignored -
The zoom setting in the
sk
scene editor doesn't work very well -
Changing the editor font size can be slow
-
-
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:
General UI:
- 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 :(
Editor/Console:
- 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.
-