code: def profile_slope(self, kwargs_lens_list, lens_model_internal_bool=None, num_points=10):
          
          theta_E = self.effective_einstein_radius(kwargs_lens_list)
          x0 = kwargs_lens_list[0]['center_x']
          y0 = kwargs_lens_list[0]['center_y']
          x, y = util.points_on_circle(theta_E, num_points)
          dr = 0.01
          x_dr, y_dr = util.points_on_circle(theta_E + dr, num_points)
          if lens_model_internal_bool is None:
              lens_model_internal_bool = [True]*len(kwargs_lens_list)
  
          alpha_E_x_i, alpha_E_y_i = self._lensModel.alpha(x0 + x, y0 + y, kwargs_lens_list, k=lens_model_internal_bool)
          alpha_E_r = np.sqrt(alpha_E_x_i**2 + alpha_E_y_i**2)
          alpha_E_dr_x_i, alpha_E_dr_y_i = self._lensModel.alpha(x0 + x_dr, y0 + y_dr, kwargs_lens_list,
                                                                 k=lens_model_internal_bool)
          alpha_E_dr = np.sqrt(alpha_E_dr_x_i ** 2 + alpha_E_dr_y_i ** 2)
          slope = np.mean(np.log(alpha_E_dr / alpha_E_r) / np.log((theta_E + dr) / theta_E))
          gamma = -slope + 2
          return gamma
docs: computes the logarithmic power-law slope of a profile
  
          :param kwargs_lens_list: lens model keyword argument list
          :param lens_model_internal_bool: bool list, indicate which part of the model to consider
          :param num_points: number of estimates around the Einstein radius
          :return: