I don't know if this has already been done, and no idea how useful this really is in practice, but I thought I'd give it a crack!
I wrote a real simple module for handling callbacks which allow you to decorate commands in a script as 'callback handlers' (basically, decorated Python functions taking any number of arguments), along with a URL generator for creating the callback URL to call the command in the current script or optionally in another script which also implements the callback handling.
The module is available here: https://gist.github.com/djbouche/5079561
Appreciate any feedback or suggestions!
Example (uses TweetBot module from https://gist.github.com/djbouche/5079739):
handler = callback.InfoHandler(sys.argv)
t = tweets.pop() #process next tweet on the list
#tweet, and send the list of remaining tweets down
else: #no more tweets
print 'Finished processing tweets!'
if name == "main" and not handler.handle():
#first entry point
f = open("tweets.txt","r") #read tweets from a file called 'tweets.txt'
a = f.read()
tweets = a.splitlines() #one line per tweet
tweets.reverse() #so we can pop them off
process_next(tweets) #start processing!
Any chance we could get a way to have an audio callback? I have no idea what the performance would be like on an iOS device, but it could be useful for playing around with real time audio synthesis :)
I'm imagining something like the below as a light wrapper around Core Audio / AudioQueue:
def audio_callback(buffer): #len(buffer) would be the number of interleaved frames
for i,v in enumerate(buffer):
buffer[i] = 0 #silence
return True # return True if this frame is not silent
au = Audio.audio(audio_callback,sample_rate=44100,channels=2,format=float)
au.start() #non-blocking, of course
(edit: after looking around I found this.. not sure if it is helpful to you or not: http://wiki.python.org/moin/MacPython/CoreAudio )
I made a really quick and dirty script for grabbing files from Gist..
When you run it, it will prompt you to enter a Gist URL (or you can just enter the ID of the Gist). It will automatically populate the prompt with the current clipboard contents.
Very simple, no fancy error checking or anything, but thought I would share it!