code: def get_bucket(self, idx):
      feature_buckets = self.feat_bin_num
      cumulative_buckets = [0]
      for bucket in feature_buckets:
          cumulative_buckets.append(cumulative_buckets[-1] + bucket)
  
      for i in range(1, len(cumulative_buckets)):
          if idx < cumulative_buckets[i]:
              fid = i - 1
              bid = idx - cumulative_buckets[i - 1]
              return fid, bid
  
      raise ValueError("idx is out of range")
  
imports: import torch
  import numpy
  import logging
  from fate.arch.dataframe import DataFrame
  from fate.arch import Context
  from fate.arch.histogram import DistributedHistogram
label_desc: Use image node_id 2 for calling the SBTSplitter obj's underlying member method code with example usage: obj.get_bucket(idx) and returns: fid,  bid