docs: def pkey_get(clas,pool_or_cursor,*vals):
      "lookup by primary keys in order"
      pkey = clas.PKEY.split(',')
      if len(vals)!=len(pkey): raise ValueError("%i args != %i-len primary key for %s"%(len(vals),len(pkey),clas.TABLE))
      rows = list(clas.select(pool_or_cursor,**dict(zip(pkey,vals))))
      if not rows: raise Missing
      return set_options(pool_or_cursor,clas(*rows[0]))