this is sort of an odd pattern, with having the caller fully manage the cache, and having it not be optional. i think there's probably a cleaner abstraction barrier you could do along the lines of a lighterweight version of this thing https://github.com/dimagi/casexml/blob/master/casexml/apps/case/xform.py#L17 (or you could just ditch the object cache entirely and dump everything in django's cache for 10 minutes or something). that said, doesn't bother me enough to warrant more cleanup work for a sort of one-off (for now) thing.