class_docstr: EnvironmentController inherits from BaseController and manages business logic related to the
  environment.
  
  Methods
  -------
  create(dictionary)
      Create an environment within the project
  build(id)
      Build the environment for use within the project
  list()
      List all environments within the project
  delete(id)
      Delete the specified environment from the project
class_docstr_tok: ["EnvironmentController","inherits","from","BaseController","and","manages","business","logic","related","to","the","environment",".","Methods","--","--","--","-","create","(","dictionary",")","Create","an","environment","within","the","project","build","(","id",")","Build","the","environment","for","use","within","the","project","list","(",")","List","all","environments","within","the","project","delete","(","id",")","Delete","the","specified","environment","from","the","project"]
docstr: Returns a boolean if the environment exists
  
  Parameters
  ----------
  environment_id : str
      environment id to check for
  environment_unique_hash : str
      unique hash for the environment to check for
  
  Returns
  -------
  bool
      True if exists else False
docstr_tok: ["Returns","a","boolean","if","the","environment","exists","Parameters","--","--","--","--","--","environment_id",":","str","environment","id","to","check","for","environment_unique_hash",":","str","unique","hash","for","the","environment","to","check","for","Returns","--","--","--","-","bool","True","if","exists","else","False"]
code: def exists(self, environment_id=None, environment_unique_hash=None):
      """Returns a boolean if the environment exists
  
      Parameters
      ----------
      environment_id : str
          environment id to check for
      environment_unique_hash : str
          unique hash for the environment to check for
  
      Returns
      -------
      bool
          True if exists else False
      """
      if environment_id:
          environment_objs = self.dal.environment.query(
              {"id": environment_id}
          )
      elif environment_unique_hash:
          environment_objs = self.dal.environment.query(
              {"unique_hash": environment_unique_hash}
          )
      else:
          raise ArgumentError()
      env_exists = False
      if environment_objs:
          env_exists = True
      return env_exists
  
imports: import os
  import shutil
  from datmo.core.controller.base import BaseController
  from datmo.core.controller.file.file_collection import FileCollectionController
  from datmo.core.entity.environment import Environment
  from datmo.core.util.i18n import get
  from datmo.core.util.validation import validate
  from datmo.core.util.spinner import Spinner
  from datmo.core.util.json_store import JSONStore
  from datmo.core.util.misc_functions import get_datmo_temp_path, list_all_filepaths
  from datmo.core.util.exceptions import PathDoesNotExist, RequiredArgumentMissing, TooManyArgumentsFound, EnvironmentNotInitialized, UnstagedChanges, ArgumentError, EnvironmentDoesNotExist, ProjectNotInitialized
label_desc: Use image node_id 15 for calling the EnvironmentController obj's underlying member method code with example usage: obj.exists(environment_id, environment_unique_hash) and returns: env_exists