docs: def optics(cls, data, eps, minpts, ccore=False):
          """
          Constructor of OPTICS clustering.rst algorithm
  
          :param data: Input data that is presented as a list of points (objects), where each point is represented by list or tuple
          :param eps: Connectivity radius between points, points may be connected if distance between them less than the radius
          :param minpts: Minimum number of shared neighbors that is required for establishing links between points
          :param amount_clusters: Optional parameter where amount of clusters that should be allocated is specified.
                      In case of usage 'amount_clusters' connectivity radius can be greater than real, in other words, there is place for mistake
                      in connectivity radius usage.
          :param ccore: if True than DLL CCORE (C++ solution) will be used for solving the problem
          :return: the resulting clustering.rst object
          """
          data = cls.input_preprocess(data)
          model = optics(data, eps, minpts)
          return cls(model)