class_docstr: SnapshotController inherits from BaseController and manages business logic related to snapshots
  
  Attributes
  ----------
  code : datmo.core.controller.code.code.CodeController
  file_collection : datmo.core.controller.file.file_collection.FileCollectionController
  environment : datmo.core.controller.environment.environment.EnvironmentController
  
  Methods
  -------
  create(dictionary)
      Create a snapshot within the project
  checkout(id)
      Checkout to a specific snapshot within the project
  list(visible=None, sort_key=None, sort_order=None)
      List all snapshots present within the project based on given filters
  delete(id)
      Delete the snapshot specified from the project
docstr: Get snapshot object and return
  
  Parameters
  ----------
  snapshot_id : str
      id for the snapshot you would like to get
  
  Returns
  -------
  datmo.core.entity.snapshot.Snapshot
      core snapshot object
  
  Raises
  ------
  DoesNotExist
      snapshot does not exist
docstr_tok: ["Get","snapshot","object","and","return","Parameters","--","--","--","--","--","snapshot_id",":","str","id","for","the","snapshot","you","would","like","to","get","Returns","--","--","--","-","datmo.core.entity.snapshot.Snapshot","core","snapshot","object","Raises","--","--","--","DoesNotExist","snapshot","does","not","exist"]
code: def get(self, snapshot_id):
      """Get snapshot object and return
  
      Parameters
      ----------
      snapshot_id : str
          id for the snapshot you would like to get
  
      Returns
      -------
      datmo.core.entity.snapshot.Snapshot
          core snapshot object
  
      Raises
      ------
      DoesNotExist
          snapshot does not exist
      """
      try:
          return self.dal.snapshot.get_by_id(snapshot_id)
      except EntityNotFound:
          raise DoesNotExist()
  
imports: import os
  from datmo.core.controller.base import BaseController
  from datmo.core.controller.code.code import CodeController
  from datmo.core.controller.file.file_collection import FileCollectionController
  from datmo.core.controller.environment.environment import EnvironmentController
  from datmo.core.entity.snapshot import Snapshot
  from datmo.core.util.i18n import get
  from datmo.core.util.validation import validate
  from datmo.core.util.json_store import JSONStore
  from datmo.core.util.exceptions import FileIOError, RequiredArgumentMissing, ProjectNotInitialized, EntityNotFound, TaskNotComplete, DoesNotExist, UnstagedChanges
label_desc: Use image node_id 9 for calling the SnapshotController obj's underlying member method code with example usage: obj.get(snapshot_id) and returns: self