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: Stop the trace of running environment
  
  Parameters
  ----------
  run_id : str, optional
      stop environment with specific run id
      (default is None, which means it is not used)
  match_string : str, optional
      stop environment with a string to match the environment name
      (default is None, which means it is not used)
  all : bool, optional
      stop all environments
  
  Notes
  -----
      The user must provide only one of the above, if multiple are given
      or none are given the function will error
  
  Returns
  -------
  bool
      True if success
  
  Raises
  ------
  RequiredArgumentMissing
  TooManyArguments
docstr_tok: ["Stop","the","trace","of","running","environment","Parameters","--","--","--","--","--","run_id",":","str",",","optional","stop","environment","with","specific","run","id","(","default","is","None",",","which","means","it","is","not","used",")","match_string",":","str",",","optional","stop","environment","with","a","string","to","match","the","environment","name","(","default","is","None",",","which","means","it","is","not","used",")","all",":","bool",",","optional","stop","all","environments","Notes","--","--","-","The","user","must","provide","only","one","of","the","above",",","if","multiple","are","given","or","none","are","given","the","function","will","error","Returns","--","--","--","-","bool","True","if","success","Raises","--","--","--","RequiredArgumentMissing","TooManyArguments"]
code: def stop(self, run_id=None, match_string=None, all=False):
      """Stop the trace of running environment
  
      Parameters
      ----------
      run_id : str, optional
          stop environment with specific run id
          (default is None, which means it is not used)
      match_string : str, optional
          stop environment with a string to match the environment name
          (default is None, which means it is not used)
      all : bool, optional
          stop all environments
  
      Notes
      -----
          The user must provide only one of the above, if multiple are given
          or none are given the function will error
  
      Returns
      -------
      bool
          True if success
  
      Raises
      ------
      RequiredArgumentMissing
      TooManyArguments
      """
      self.environment_driver.init()
      if not (run_id or match_string or all):
          raise RequiredArgumentMissing()
      if sum(map(bool, [run_id, match_string, all])) > 1:
          raise TooManyArgumentsFound()
      stop_success = False
      if run_id:
          # Stop the instance(e.g. container) running using environment driver(e.g. docker)
          stop_success = self.environment_driver.stop(
              run_id, force=True
          )
      if match_string:
          # Stop all tasks matching the string given
          stop_success = (
              self.environment_driver.stop_remove_containers_by_term(
                  term=match_string, force=True
              )
          )
      if all:
          # Stop all tasks associated within the enclosed project
          all_match_string = "datmo-task-" + self.model.id
          stop_success = (
              self.environment_driver.stop_remove_containers_by_term(
                  term=all_match_string, force=True
              )
          )
      return stop_success
  
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 14 for calling the EnvironmentController obj's underlying member method code with example usage: obj.stop(run_id, match_string, all) and returns: stop_success