@scj643 re: blocks, you can always add instance variables (functions are objects in python).
def myblk(blk, arg):
It would be nice to have a ObjCBlock as decorator:
def myfun(blk, someargs):
Also, you can have blocks that live as instance methods:
... def myblock(self,_blk):
... def __init__(self):
This can let you associate other objects with a particular block, to avoid the need for globals.