Here’s what should work soon-ish (though perhaps the API will slightly change):

import pyvo

import vohelper

l0 = 6.5625e-7
svc = pyvo.dal.tap.TAPService("http://dc.g-vo.org/tap")

cutouts = []
for rec in svc.run_sync(
    "SELECT califaid, obs_publisher_did, mime, em_min, em_max, redshift"
    " FROM califadr3.cubes"
    " JOIN califadr3.objects USING (califaid)"
    " WHERE setup='COMB' AND hubtyp='S d'"):
  lobs = l0*(1+rec["redshift"])
  if not rec["em_min"]<=lobs<=rec["em_max"]:
    continue
  processed = rec.processed(band=(lobs, lobs))
  with open(califaid+".fits", "w") as f:
    f.write(processed.read())