docs: def do_bestfit(self):
          """
          do bestfit using scipy.odr
          """
          self.check_important_variables()
          x = np.array(self.args["x"])
          y = np.array(self.args["y"])
          if self.args.get("use_RealData", True):
              realdata_kwargs = self.args.get("RealData_kwargs", {})
              data = RealData(x, y, **realdata_kwargs)
          else:
              data_kwargs = self.args.get("Data_kwargs", {})
              data = Data(x, y, **data_kwargs)
          model = self.args.get("Model", None)
          if model is None:
              if "func" not in self.args.keys():
                  raise KeyError("Need fitting function")
              model_kwargs = self.args.get("Model_kwargs", {})
              model = Model(self.args["func"], **model_kwargs)
          odr_kwargs = self.args.get("ODR_kwargs", {})
          odr = ODR(data, model, **odr_kwargs)
          self.output = odr.run()
          if self.args.get("pprint", False):
              self.output.pprint()
          self.fit_args = self.output.beta
          return self.fit_args