Allow opts.cachedir == None to disable cache