[docs]classChipVendorMetric(BaseMetric):""" See what happens if we have chips from different vendors """def__init__(self,cols=None,**kwargs):ifcolsisNone:cols=[]super(ChipVendorMetric,self).__init__(col=cols,metric_dtype=float,units="1,2,3:v1,v2,both",**kwargs)def_chip_names2vendor_id(self,chip_name):""" given a list of chipnames, convert to 1 or 2, representing different vendors """vendors=[]forchipinchip_name:# Parse the chip_name string.ifint(chip[2])%2==0:vendors.append(1)else:vendors.append(2)returnvendors
[docs]defrun(self,data_slice,slice_point=None):if"chipNames"notinlist(slice_point.keys()):raiseValueError("No chipname info, need to set use_camera=True with a spatial slicer.")uvendor_i_ds=np.unique(self._chip_names2vendor_id(slice_point["chipNames"]))ifnp.size(uvendor_i_ds)==1:result=uvendor_i_dselse:result=3returnresult