code: def create(self, task_name, clone_task=None):
          
  
          if not task_name or task_name.startswith('-'):
              raise ValueError('Invalid task name')
  
          try:
              task_dir = self._get_task_dir(task_name)
  
              if self.exists(task_dir):
                  raise errors.TaskExists(task_name)
  
              task_cfg = self.get_config_path(task_name)
  
              if clone_task:
                  if not self.exists(clone_task):
                      raise errors.TaskNotFound(clone_task)
  
                  # copy task directory
                  shutil.copytree(self._get_task_dir(clone_task), task_dir)
  
              else:
                  os.mkdir(task_dir)
  
                  # write default task configuration
                  shutil.copy(self._default_task_config, task_cfg)
  
              return True
  
          except OSError:
              shutil.rmtree(task_dir, ignore_errors=True)
              return False
docs: Creates a new task directory.
  
              `task_name`
                  Task name.
              `clone_task`
                  Existing task name to use as a template for new task.
  
              Returns boolean.
  
              * Raises ``Value`` if task name is invalid, ``TaskExists`` if task
                already exists, or ``TaskNotFound`` if task for `clone_from`
                doesn't exist.