class_docstr: The NearestNeighborsModel represents rows of an SFrame in a structure that
  is used to quickly and efficiently find the nearest neighbors of a query
  point.
  
  This model cannot be constructed directly.  Instead, use
  :func:`turicreate.nearest_neighbors.create` to create an instance of this
  model. A detailed list of parameter options and code samples are available
  in the documentation for the create function.
class_docstr_tok: ["The","NearestNeighborsModel","represents","rows","of","an","SFrame","in","a","structure","that","is","used","to","quickly","and","efficiently","find","the","nearest","neighbors","of","a","query","point",".","This","model","can","not","be","constructed","directly",".","Instead",",","use",":","func",":","`","turicreate.nearest_neighbors.create","`","to","create","an","instance","of","this","model",".","A","detailed","list","of","parameter","options","and","code","samples","are","available","in","the","documentation","for","the","create","function","."]
docstr: Returns a structured description of the model, including (where
  relevant) the schema of the training data, description of the training
  data, training statistics, and model hyperparameters.
  
  Returns
  -------
  sections : list (of list of tuples)
      A list of summary sections.
        Each section is a list.
          Each item in a section list is a tuple of the form:
            ('<label>','<field>')
  section_titles: list
      A list of section titles.
        The order matches that of the 'sections' object.
docstr_tok: ["Returns","a","structured","description","of","the","model",",","including","(","where","relevant",")","the","schema","of","the","training","data",",","description","of","the","training","data",",","training","statistics",",","and","model","hyperparameters",".","Returns","--","--","--","-","sections",":","list","(","of","list","of","tuples",")","A","list","of","summary","sections",".","Each","section","is","a","list",".","Each","item","in","a","section","list","is","a","tuple","of","the","form",":","(","'","<","label",">","'",",","'","<","field",">","'",")","section_titles",":","list","A","list","of","section","titles",".","The","order","matches","that","of","the","'sections","'","object","."]
code: def _get_summary_struct(self):
      """
      Returns a structured description of the model, including (where
      relevant) the schema of the training data, description of the training
      data, training statistics, and model hyperparameters.
  
      Returns
      -------
      sections : list (of list of tuples)
          A list of summary sections.
            Each section is a list.
              Each item in a section list is a tuple of the form:
                ('<label>','<field>')
      section_titles: list
          A list of section titles.
            The order matches that of the 'sections' object.
      """
  
      model_fields = [
          ("Method", "method"),
          ("Number of distance components", "num_distance_components"),
          ("Number of examples", "num_examples"),
          ("Number of feature columns", "num_features"),
          ("Number of unpacked features", "num_unpacked_features"),
          ("Distance", "distance_for_summary_struct"),
          ("Total training time (seconds)", "training_time"),
      ]
  
      ball_tree_fields = [
          ("Tree depth", "tree_depth"),
          ("Leaf size", "leaf_size"),
      ]
  
      lsh_fields = [
          ("Number of hash tables", "num_tables"),
          (
              "Number of projections per table",
              "num_projections_per_table",
          ),
      ]
  
      sections = [model_fields]
      section_titles = ["Attributes"]
  
      if self.method == "ball_tree":
          sections.append(ball_tree_fields)
          section_titles.append("Ball Tree Attributes")
  
      if self.method == "lsh":
          sections.append(lsh_fields)
          section_titles.append("LSH Attributes")
  
      return (sections, section_titles)
  
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  import turicreate
  from turicreate.toolkits._model import Model
  from turicreate.data_structures.sgraph import SGraph
  import turicreate.toolkits._internal_utils
  from turicreate.toolkits._private_utils import _validate_row_label
  from turicreate.toolkits._private_utils import _validate_lists
  from turicreate.toolkits._private_utils import _robust_column_name
  from turicreate.toolkits._main import ToolkitError
  from turicreate.toolkits.distances._util import _convert_distance_names_to_functions
  from turicreate.toolkits.distances._util import _validate_composite_distance
  from turicreate.toolkits.distances._util import _scrub_composite_distance_features
  from turicreate.toolkits.distances._util import _get_composite_distance_features
  from turicreate._cython.cy_server import QuietProgress
  import array
  import copy
  import six
label_desc: Use image node_id 4 for calling the NearestNeighborsModel obj's underlying member method code with example usage: obj._get_summary_struct() and returns: sections,  section_titles