Skip to content

Instantly share code, notes, and snippets.

omz / CoreML Image
Created July 8, 2018 10:36
CoreML Image
This is a demo of how you can use the CoreML framework (via objc_util) to classify images in Pythonista. It downloads the trained 'MobileNet' CoreML model from the Internet, and uses it to classify images that are either taken with the camera, or picked from the photo library.
import requests
import os
import io
import photos
import dialogs
omz /
Created April 4, 2018 15:45
# Quick workaround for photos module (Pythonista) not downloading photos from iCloud
import photos
from objc_util import ObjCClass, ObjCInstance, ObjCBlock
def download_cloud_asset(asset):
PHImageManager = ObjCClass('PHImageManager')
PHImageRequestOptions = ObjCClass('PHImageRequestOptions')
ph_asset = ObjCInstance(asset)
ph_image_mgr = PHImageManager.defaultManager()
omz /
Last active January 6, 2024 05:42
This module provides a Python wrapper around CIImage and CIFilter for using CoreImage filters from Pythonista more easily.
How to use:
1) Create a CImage object. The constructor accepts either a file path, a ui.Image, PIL.Image.Image, or photos.Asset object. Example:
>>> # From a photo:
>>> img = CImage(photos.pick_asset())
>>> # From a ui.Image:
omz / Geotag
Last active January 6, 2024 05:42
This is a proof-of-concept script for tagging photos with location data on iOS.
* First, it shows all photos that have no location data *and* are editable.
* Then, a grid of photos in temporal proximity is shown. You can pick multiple photos here.
* When you tap Done, the photo you selected first will get tagged with the average location of the photos you picked in the second step.
import photos
omz / UI Debugging
Last active January 6, 2024 05:44
UI Debugging
# Pythonista script to show the UI Debugging overlay (private API) described in this blog post:
from objc_util import ObjCClass, on_main_thread
UIDebuggingInformationOverlay = ObjCClass('UIDebuggingInformationOverlay')
def toggle_overlay():
omz /
Created January 27, 2017 05:14
# `motion` module from Pythonista
# This is missing in the current App Store versions (in Pythonista 3.x, it's only missing in Python 2 mode).
# As a temporary workaround, you can put this file in the "site-packages" folder (under "Modules" or "Modules & Templates").
import _motion
shared_manager = _motion.MotionManager()
def start_updates():
omz / Add Playground
Created June 17, 2016 00:27
Add Playground
#! python3
# Share sheet extension script for adding new pages to Swift Playgrounds (experimental)
# 1. Add this script as a shortcut to the Pythonista extension (either from Pythonista's settings or the share sheet extension itself)
# 2. Tap the "Share" button in the Playground app's library.
# 3. Select the playground that you want to add a page to
# 4. Select "Run Pythonista Script" in the share sheet
# 5. Run this script, to select the chapter and page title.
import scene, ui
shadercode_text = '''
// Modified Mandelbrot code from
// used make_color function from ccc (pythonista forum)
precision highp float;
varying vec2 v_tex_coord;
omz /
Created May 6, 2016 11:19
# Experimental photo picker using the Photos framework via objc_util. Compared to the photos module, this has the advantage of showing all photos, including iCloud photo library. Not very well tested!
from objc_util import *
import threading
from io import BytesIO
from PIL import Image
import sys
import ui
import ctypes
omz / Spellcheck
Created March 10, 2016 20:01
# coding: utf-8
from objc_util import ObjCClass
UITextChecker = ObjCClass('UITextChecker')
def check_word(word, lang='en_US'):
c =
check = c.rangeOfMisspelledWordInString_range_startingAt_wrap_language_
misspelled_range = check(word, (0, len(word)), 0, False, lang)
return (misspelled_range.location != 0)