code: def determine_drift(self):
          
          try:
              response = self._cloud_formation.detect_stack_drift(StackName=self._stack_name)
              drift_request_id = response.get('StackDriftDetectionId', None)
              if drift_request_id:
                  logging.info('drift_request_id: %s - polling', drift_request_id)
                  drift_calc_done = False
                  while not drift_calc_done:
                      time.sleep(self.nap_time)
                      response = self._cloud_formation.describe_stack_drift_detection_status(
                          StackDriftDetectionId=drift_request_id
                      )
                      current_state = response.get('DetectionStatus', None)
                      logging.info(
                          'describe_stack_drift_detection_status(): {}'.format(current_state)
                      )
                      drift_calc_done = current_state in CALC_DONE_STATES
                      drift_answer = response.get('StackDriftStatus', 'UNKNOWN')
  
                  logging.info('drift of {}: {}'.format(
                      self._stack_name,
                      drift_answer
                  ))
  
                  if drift_answer == 'DRIFTED':
                      if self._verbose:
                          self._print_drift_report()
                      return False
                  else:
                      return True
              else:
                  logging.warning('drift_request_id is None')
  
              return False
          except Exception as wtf:
              logging.error(wtf, exc_info=True)
              return False
docs: Determine the drift of the stack.
  
          Args:
              None
  
          Returns:
              Good or Bad; True or False