class_docstr: Snapshot is an entity object to represent a version of the model. These snapshots
  are the building blocks upon which models can be shared and reproduced.
  
  Snapshots consist of 5 main components which are represented as well in the attributes
  listed below
  
  1) Source code
  2) Dependency environment
  3) Large files not included in source code
  4) Configurations of your model, features, data, etc
  5) Performance metrics that evaluate your model
  
  Note
  ----
  All attributes of the class in the ``Attributes`` section must be serializable by the DB
  
  Parameters
  ----------
  dictionary : dict
      id : str, optional
          the id of the entity
          (default is None; storage driver has not assigned an id yet)
      model_id : str
          the parent model id for the entity
      message : str
          long description of snapshot
      code_id : str
          code reference associated with the snapshot
      environment_id : str
          id for environment used to create snapshot
      file_collection_id : str
          file collection associated with the snapshot
      config : dict
          key, value pairs of configurations
      stats : dict
          key, value pairs of metrics and statistics
      task_id : str, optional
          task id associated with snapshot
          (default is None, means no task_id set)
      label : str, optional
          short description of snapshot
          (default is None, means no label set)
      visible : bool, optional
          True if visible to user via list command else False
          (default is True to show users unless otherwise specified)
      created_at : datetime.datetime, optional
          (default is datetime.utcnow(), at time of instantiation)
      updated_at : datetime.datetime, optional
          (default is same as created_at, at time of instantiation)
  
  Attributes
  ----------
  id : str or None
      the id of the entity
  model_id : str
      the parent model id for the entity
  message : str
      long description of snapshot
  code_id : str
      code reference associated with the snapshot
  environment_id : str
      id for environment used to create snapshot
  file_collection_id : str
      file collection associated with the snapshot
  config : dict
      key, value pairs of configurations
  stats : dict
      key, value pairs of metrics and statistics
  task_id : str or None
      task id associated with snapshot
  label : str or None
      short description of snapshot
  visible : bool
      True if visible to user via list command else False
  created_at : datetime.datetime
  updated_at : datetime.datetime
code: def save_stats(self, filepath):
      JSONStore(os.path.join(filepath, "stats.json"), self.stats)
      return
  
file_path: datmo/datmo/core/entity/snapshot.py
imports: import os
  from datetime import datetime
  from datmo.core.util.json_store import JSONStore
  from datmo.core.util.misc_functions import prettify_datetime, printable_object, format_table
label_desc: Use image node_id 6 for calling the Snapshot obj's underlying member method code with example usage: obj.save_stats(filepath) without return types