code: def _update_estimate_and_sampler(self, ell, ell_hat, weight, extra_info,
                                       **kwargs):
          
  
          stratum_idx = extra_info['stratum']
  
          if 'calc_rates' in kwargs:
              calc_rates = kwargs['calc_rates']
          else:
              calc_rates = True
  
          self._TP_st[stratum_idx,:] += ell_hat * ell * weight
          self._PP_st[stratum_idx,:] += ell_hat * weight
          self._P_st[stratum_idx,:] += ell * weight
  
          if calc_rates:
              self._P_rates = self._P_st/self.strata._n_sampled[:,np.newaxis]
              self._TP_rates = self._TP_st/self.strata._n_sampled[:,np.newaxis]
              self._PP_rates = self._PP_st/self.strata._n_sampled[:,np.newaxis]
  
          #: Update model estimate (with prior)
          self._estimate[self.t_], self._F_num, self._F_den = \
              self._calc_estimate(self._TP_rates, self._PP_rates, \
                                  self._P_rates, return_num_den=True)
docs: Update the estimate after querying the label for an item